From 056a7d798a0666beed4599e7ee4bff5d41c297c0 Mon Sep 17 00:00:00 2001 From: AlanCoding Date: Thu, 7 Apr 2016 17:37:33 -0400 Subject: [PATCH] prompt-for vars in API browser box smart behavior --- awx/api/serializers.py | 9 ++++++--- awx/api/views.py | 14 +++++++++++++- 2 files changed, 19 insertions(+), 4 deletions(-) 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):