Treat instance_groups prompt as template-less

This commit is contained in:
Alan Rominger
2022-09-20 11:04:37 -04:00
parent 23f4f7bb00
commit 61093b2532
7 changed files with 15 additions and 50 deletions

View File

@@ -4139,12 +4139,12 @@ class JobLaunchSerializer(BaseSerializer):
skip_tags = serializers.CharField(required=False, write_only=True, allow_blank=True)
limit = serializers.CharField(required=False, write_only=True, allow_blank=True)
verbosity = serializers.ChoiceField(required=False, choices=VERBOSITY_CHOICES, write_only=True)
execution_environment = serializers.PrimaryKeyRelatedField(queryset=ExecutionEnvironment.objects.all(), required=False)
labels = serializers.PrimaryKeyRelatedField(many=True, queryset=Label.objects.all(), required=False)
execution_environment = serializers.PrimaryKeyRelatedField(queryset=ExecutionEnvironment.objects.all(), required=False, write_only=True)
labels = serializers.PrimaryKeyRelatedField(many=True, queryset=Label.objects.all(), required=False, write_only=True)
forks = serializers.IntegerField(required=False, write_only=True, min_value=0, default=1)
job_slice_count = serializers.IntegerField(required=False, write_only=True, min_value=0, default=0)
timeout = serializers.IntegerField(required=False, write_only=True, default=0)
instance_groups = serializers.PrimaryKeyRelatedField(many=True, queryset=InstanceGroup.objects.all(), required=False)
instance_groups = serializers.PrimaryKeyRelatedField(many=True, queryset=InstanceGroup.objects.all(), required=False, write_only=True)
class Meta:
model = JobTemplate
@@ -4243,9 +4243,7 @@ class JobLaunchSerializer(BaseSerializer):
label_dict = {'id': label.id, 'name': label.name}
defaults_dict.setdefault(field_name, []).append(label_dict)
elif field_name == 'instance_groups':
for instance_group in obj.instance_groups.all():
ig_dict = {'id': instance_group.id, 'name': instance_group.name}
defaults_dict.setdefault(field_name, []).append(ig_dict)
defaults_dict[field_name] = []
else:
defaults_dict[field_name] = getattr(obj, field_name)
return defaults_dict

View File

@@ -2398,6 +2398,9 @@ class JobTemplateLaunch(RetrieveAPIView):
elif isinstance(getattr(obj.__class__, field).field, ForeignKey):
data[field] = getattrd(obj, "%s.%s" % (field, 'id'), None)
elif isinstance(getattr(obj.__class__, field).field, ManyToManyField):
if field == 'instance_groups':
data[field] = []
continue
data[field] = [item.id for item in getattr(obj, field).all()]
else:
data[field] = getattr(obj, field)