mirror of
https://github.com/ansible/awx.git
synced 2026-05-12 20:07:37 -02:30
Fixing serializers per review
Removing try/except around instance_groups Removing redefined execution_environment Reordering labels/creds/igs/ee/etc Removing special treatment for EEs when doing setattrs Adding help_text to execution environments Adding EE serializer on JobCreateScheduleSerializer
This commit is contained in:
committed by
Alan Rominger
parent
ffe970aee5
commit
a528a78e0e
@@ -3068,11 +3068,7 @@ class JobSerializer(UnifiedJobSerializer, JobOptionsSerializer):
|
|||||||
res['project_update'] = self.reverse('api:project_update_detail', kwargs={'pk': obj.project_update.pk})
|
res['project_update'] = self.reverse('api:project_update_detail', kwargs={'pk': obj.project_update.pk})
|
||||||
except ObjectDoesNotExist:
|
except ObjectDoesNotExist:
|
||||||
pass
|
pass
|
||||||
try:
|
res['instance_groups'] = self.reverse('api:job_instance_group_list', kwargs={'pk': obj.pk})
|
||||||
if obj.instance_groups:
|
|
||||||
res['instance_groups'] = self.reverse('api:job_instance_group_list', kwargs={'pk': obj.pk})
|
|
||||||
except ObjectDoesNotExist:
|
|
||||||
pass
|
|
||||||
res['relaunch'] = self.reverse('api:job_relaunch', kwargs={'pk': obj.pk})
|
res['relaunch'] = self.reverse('api:job_relaunch', kwargs={'pk': obj.pk})
|
||||||
return res
|
return res
|
||||||
|
|
||||||
@@ -3224,6 +3220,8 @@ class JobCreateScheduleSerializer(LabelsListMixin, BaseSerializer):
|
|||||||
ret = config.prompts_dict(display=True)
|
ret = config.prompts_dict(display=True)
|
||||||
if 'inventory' in ret:
|
if 'inventory' in ret:
|
||||||
ret['inventory'] = self._summarize('inventory', ret['inventory'])
|
ret['inventory'] = self._summarize('inventory', ret['inventory'])
|
||||||
|
if 'execution_environment' in ret:
|
||||||
|
ret['execution_environment'] = self._summarize('execution_environment', ret['execution_environment'])
|
||||||
if 'credentials' in ret:
|
if 'credentials' in ret:
|
||||||
all_creds = [self._summarize('credential', cred) for cred in ret['credentials']]
|
all_creds = [self._summarize('credential', cred) for cred in ret['credentials']]
|
||||||
ret['credentials'] = all_creds
|
ret['credentials'] = all_creds
|
||||||
@@ -3636,7 +3634,6 @@ class LaunchConfigurationBaseSerializer(BaseSerializer):
|
|||||||
skip_tags = serializers.CharField(allow_blank=True, allow_null=True, required=False, default=None)
|
skip_tags = serializers.CharField(allow_blank=True, allow_null=True, required=False, default=None)
|
||||||
diff_mode = serializers.BooleanField(required=False, allow_null=True, default=None)
|
diff_mode = serializers.BooleanField(required=False, allow_null=True, default=None)
|
||||||
verbosity = serializers.ChoiceField(allow_null=True, required=False, default=None, choices=VERBOSITY_CHOICES)
|
verbosity = serializers.ChoiceField(allow_null=True, required=False, default=None, choices=VERBOSITY_CHOICES)
|
||||||
execution_environment = serializers.PrimaryKeyRelatedField(queryset=ExecutionEnvironment.objects.all(), required=False, allow_null=True, default=None)
|
|
||||||
forks = serializers.IntegerField(required=False, allow_null=True, default=None)
|
forks = serializers.IntegerField(required=False, allow_null=True, default=None)
|
||||||
job_slice_count = serializers.IntegerField(required=False, allow_null=True, default=None)
|
job_slice_count = serializers.IntegerField(required=False, allow_null=True, default=None)
|
||||||
timeout = serializers.IntegerField(required=False, allow_null=True, default=None)
|
timeout = serializers.IntegerField(required=False, allow_null=True, default=None)
|
||||||
@@ -3665,11 +3662,11 @@ class LaunchConfigurationBaseSerializer(BaseSerializer):
|
|||||||
res = super(LaunchConfigurationBaseSerializer, self).get_related(obj)
|
res = super(LaunchConfigurationBaseSerializer, self).get_related(obj)
|
||||||
if obj.inventory_id:
|
if obj.inventory_id:
|
||||||
res['inventory'] = self.reverse('api:inventory_detail', kwargs={'pk': obj.inventory_id})
|
res['inventory'] = self.reverse('api:inventory_detail', kwargs={'pk': obj.inventory_id})
|
||||||
res['credentials'] = self.reverse('api:{}_credentials_list'.format(get_type_for_model(self.Meta.model)), kwargs={'pk': obj.pk})
|
|
||||||
res['labels'] = self.reverse('api:{}_labels_list'.format(get_type_for_model(self.Meta.model)), kwargs={'pk': obj.pk})
|
|
||||||
res['instance_groups'] = self.reverse('api:{}_instance_groups_list'.format(get_type_for_model(self.Meta.model)), kwargs={'pk': obj.pk})
|
|
||||||
if obj.execution_environment_id:
|
if obj.execution_environment_id:
|
||||||
res['execution_environment'] = self.reverse('api:execution_environment_detail', kwargs={'pk': obj.execution_environment_id})
|
res['execution_environment'] = self.reverse('api:execution_environment_detail', kwargs={'pk': obj.execution_environment_id})
|
||||||
|
res['labels'] = self.reverse('api:{}_labels_list'.format(get_type_for_model(self.Meta.model)), kwargs={'pk': obj.pk})
|
||||||
|
res['credentials'] = self.reverse('api:{}_credentials_list'.format(get_type_for_model(self.Meta.model)), kwargs={'pk': obj.pk})
|
||||||
|
res['instance_groups'] = self.reverse('api:{}_instance_groups_list'.format(get_type_for_model(self.Meta.model)), kwargs={'pk': obj.pk})
|
||||||
return res
|
return res
|
||||||
|
|
||||||
def _build_mock_obj(self, attrs):
|
def _build_mock_obj(self, attrs):
|
||||||
@@ -3679,11 +3676,7 @@ class LaunchConfigurationBaseSerializer(BaseSerializer):
|
|||||||
setattr(mock_obj, field.name, getattr(self.instance, field.name))
|
setattr(mock_obj, field.name, getattr(self.instance, field.name))
|
||||||
field_names = set(field.name for field in self.Meta.model._meta.fields)
|
field_names = set(field.name for field in self.Meta.model._meta.fields)
|
||||||
for field_name, value in list(attrs.items()):
|
for field_name, value in list(attrs.items()):
|
||||||
if field_name == 'execution_environment':
|
setattr(mock_obj, field_name, value)
|
||||||
if value:
|
|
||||||
setattr(mock_obj, field_name, value)
|
|
||||||
else:
|
|
||||||
setattr(mock_obj, field_name, value)
|
|
||||||
if field_name not in field_names:
|
if field_name not in field_names:
|
||||||
attrs.pop(field_name)
|
attrs.pop(field_name)
|
||||||
return mock_obj
|
return mock_obj
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
# Generated by Django 3.2.13 on 2022-09-13 14:04
|
# Generated by Django 3.2.13 on 2022-09-15 14:07
|
||||||
|
|
||||||
import awx.main.fields
|
import awx.main.fields
|
||||||
import awx.main.utils.polymorphic
|
import awx.main.utils.polymorphic
|
||||||
@@ -19,6 +19,7 @@ class Migration(migrations.Migration):
|
|||||||
field=models.ForeignKey(
|
field=models.ForeignKey(
|
||||||
blank=True,
|
blank=True,
|
||||||
default=None,
|
default=None,
|
||||||
|
help_text='The container image to be used for execution.',
|
||||||
null=True,
|
null=True,
|
||||||
on_delete=awx.main.utils.polymorphic.SET_NULL,
|
on_delete=awx.main.utils.polymorphic.SET_NULL,
|
||||||
related_name='joblaunchconfig_as_prompt',
|
related_name='joblaunchconfig_as_prompt',
|
||||||
@@ -66,6 +67,7 @@ class Migration(migrations.Migration):
|
|||||||
field=models.ForeignKey(
|
field=models.ForeignKey(
|
||||||
blank=True,
|
blank=True,
|
||||||
default=None,
|
default=None,
|
||||||
|
help_text='The container image to be used for execution.',
|
||||||
null=True,
|
null=True,
|
||||||
on_delete=awx.main.utils.polymorphic.SET_NULL,
|
on_delete=awx.main.utils.polymorphic.SET_NULL,
|
||||||
related_name='schedule_as_prompt',
|
related_name='schedule_as_prompt',
|
||||||
@@ -83,6 +85,7 @@ class Migration(migrations.Migration):
|
|||||||
field=models.ForeignKey(
|
field=models.ForeignKey(
|
||||||
blank=True,
|
blank=True,
|
||||||
default=None,
|
default=None,
|
||||||
|
help_text='The container image to be used for execution.',
|
||||||
null=True,
|
null=True,
|
||||||
on_delete=awx.main.utils.polymorphic.SET_NULL,
|
on_delete=awx.main.utils.polymorphic.SET_NULL,
|
||||||
related_name='workflowjobnode_as_prompt',
|
related_name='workflowjobnode_as_prompt',
|
||||||
@@ -115,6 +118,7 @@ class Migration(migrations.Migration):
|
|||||||
field=models.ForeignKey(
|
field=models.ForeignKey(
|
||||||
blank=True,
|
blank=True,
|
||||||
default=None,
|
default=None,
|
||||||
|
help_text='The container image to be used for execution.',
|
||||||
null=True,
|
null=True,
|
||||||
on_delete=awx.main.utils.polymorphic.SET_NULL,
|
on_delete=awx.main.utils.polymorphic.SET_NULL,
|
||||||
related_name='workflowjobtemplatenode_as_prompt',
|
related_name='workflowjobtemplatenode_as_prompt',
|
||||||
|
|||||||
@@ -1021,7 +1021,13 @@ class LaunchTimeConfig(LaunchTimeConfigBase):
|
|||||||
credentials = models.ManyToManyField('Credential', related_name='%(class)ss')
|
credentials = models.ManyToManyField('Credential', related_name='%(class)ss')
|
||||||
labels = models.ManyToManyField('Label', related_name='%(class)s_labels')
|
labels = models.ManyToManyField('Label', related_name='%(class)s_labels')
|
||||||
execution_environment = models.ForeignKey(
|
execution_environment = models.ForeignKey(
|
||||||
'ExecutionEnvironment', null=True, blank=True, default=None, on_delete=polymorphic.SET_NULL, related_name='%(class)s_as_prompt'
|
'ExecutionEnvironment',
|
||||||
|
null=True,
|
||||||
|
blank=True,
|
||||||
|
default=None,
|
||||||
|
on_delete=polymorphic.SET_NULL,
|
||||||
|
related_name='%(class)s_as_prompt',
|
||||||
|
help_text="The container image to be used for execution.",
|
||||||
)
|
)
|
||||||
|
|
||||||
@property
|
@property
|
||||||
|
|||||||
Reference in New Issue
Block a user