diff --git a/awx/api/serializers.py b/awx/api/serializers.py index dc0f04cfc4..eb9fd89e8c 100644 --- a/awx/api/serializers.py +++ b/awx/api/serializers.py @@ -2119,9 +2119,12 @@ class JobLaunchSerializer(BaseSerializer): 'ask_tags_on_launch', 'ask_job_type_on_launch', 'ask_inventory_on_launch') extra_kwargs = { - 'credential': { - 'write_only': True, - }, + 'credential': {'write_only': True,}, + 'limit': {'write_only': True,}, + 'job_tags': {'write_only': True,}, + 'skip_tags': {'write_only': True,}, + 'job_type': {'write_only': True,}, + 'inventory': {'write_only': True,} } def get_credential_needed_to_start(self, obj): diff --git a/awx/api/views.py b/awx/api/views.py index 02ecf1ef4b..b04454918d 100644 --- a/awx/api/views.py +++ b/awx/api/views.py @@ -2092,7 +2092,19 @@ class JobTemplateLaunch(RetrieveAPIView, GenericAPIView): data['credential'] = None for v in obj.variables_needed_to_start: extra_vars.setdefault(v, u'') - data['extra_vars'] = extra_vars + ask_for_field_dict = dict( + extra_vars=obj.ask_variables_on_launch, + limit=obj.ask_limit_on_launch, + job_tags=obj.ask_tags_on_launch, + skip_tags=obj.ask_tags_on_launch, + job_type=obj.ask_job_type_on_launch, + inventory=obj.ask_inventory_on_launch + ) + for field in ask_for_field_dict: + if not ask_for_field_dict[field]: + data.pop(field, None) + elif field == 'extra_vars': + data[field] = extra_vars return data def post(self, request, *args, **kwargs):