From 18ba56964fc905d33e003b6e916432f53bd66b05 Mon Sep 17 00:00:00 2001 From: Aaron Tan Date: Thu, 4 May 2017 14:32:08 -0400 Subject: [PATCH] Add prompt for verbosity. --- awx/api/serializers.py | 13 +++++++------ awx/main/migrations/0038_v320_release.py | 7 +++++++ awx/main/models/jobs.py | 11 +++++++++++ .../tests/functional/api/test_job_runtime_params.py | 2 ++ awx/main/tests/functional/test_rbac_job_start.py | 4 ++-- awx/main/tests/unit/models/test_workflow_unit.py | 1 + 6 files changed, 30 insertions(+), 8 deletions(-) diff --git a/awx/api/serializers.py b/awx/api/serializers.py index a353f67aca..bcc7c7289b 100644 --- a/awx/api/serializers.py +++ b/awx/api/serializers.py @@ -2256,8 +2256,8 @@ class JobTemplateSerializer(JobTemplateMixin, UnifiedJobTemplateSerializer, JobO class Meta: model = JobTemplate - fields = ('*', 'host_config_key', 'ask_variables_on_launch', 'ask_limit_on_launch', - 'ask_tags_on_launch', 'ask_skip_tags_on_launch', 'ask_job_type_on_launch', 'ask_inventory_on_launch', + fields = ('*', 'host_config_key', 'ask_variables_on_launch', 'ask_limit_on_launch', 'ask_tags_on_launch', + 'ask_skip_tags_on_launch', 'ask_job_type_on_launch', 'ask_verbosity_on_launch', 'ask_inventory_on_launch', 'ask_credential_on_launch', 'survey_enabled', 'become_enabled', 'allow_simultaneous') def get_related(self, obj): @@ -2317,6 +2317,7 @@ class JobSerializer(UnifiedJobSerializer, JobOptionsSerializer): ask_skip_tags_on_launch = serializers.ReadOnlyField() ask_tags_on_launch = serializers.ReadOnlyField() ask_job_type_on_launch = serializers.ReadOnlyField() + ask_verbosity_on_launch = serializers.ReadOnlyField() ask_inventory_on_launch = serializers.ReadOnlyField() ask_credential_on_launch = serializers.ReadOnlyField() artifacts = serializers.SerializerMethodField() @@ -2325,8 +2326,8 @@ class JobSerializer(UnifiedJobSerializer, JobOptionsSerializer): model = Job fields = ('*', 'job_template', 'passwords_needed_to_start', 'ask_variables_on_launch', 'ask_limit_on_launch', 'ask_tags_on_launch', 'ask_skip_tags_on_launch', - 'ask_job_type_on_launch', 'ask_inventory_on_launch', 'ask_credential_on_launch', - 'allow_simultaneous', 'artifacts', 'scm_revision',) + 'ask_job_type_on_launch', 'ask_verbosity_on_launch', 'ask_inventory_on_launch', + 'ask_credential_on_launch', 'allow_simultaneous', 'artifacts', 'scm_revision',) def get_related(self, obj): res = super(JobSerializer, self).get_related(obj) @@ -2929,13 +2930,13 @@ class JobLaunchSerializer(BaseSerializer): 'extra_vars', 'limit', 'job_tags', 'skip_tags', 'job_type', 'inventory', 'credential', 'ask_variables_on_launch', 'ask_tags_on_launch', 'ask_skip_tags_on_launch', 'ask_job_type_on_launch', 'ask_limit_on_launch', - 'ask_inventory_on_launch', 'ask_credential_on_launch', + 'ask_verbosity_on_launch', 'ask_inventory_on_launch', 'ask_credential_on_launch', 'survey_enabled', 'variables_needed_to_start', 'credential_needed_to_start', 'inventory_needed_to_start', 'job_template_data', 'defaults') read_only_fields = ( 'ask_variables_on_launch', 'ask_limit_on_launch', 'ask_tags_on_launch', - 'ask_skip_tags_on_launch', 'ask_job_type_on_launch', + 'ask_skip_tags_on_launch', 'ask_job_type_on_launch', 'ask_verbosity_on_launch', 'ask_inventory_on_launch', 'ask_credential_on_launch') extra_kwargs = { 'credential': {'write_only': True,}, diff --git a/awx/main/migrations/0038_v320_release.py b/awx/main/migrations/0038_v320_release.py index 3abf394adf..3ffcd98c81 100644 --- a/awx/main/migrations/0038_v320_release.py +++ b/awx/main/migrations/0038_v320_release.py @@ -153,6 +153,13 @@ class Migration(migrations.Migration): field=models.PositiveIntegerField(default=1, blank=True, choices=[(0, b'0 (WARNING)'), (1, b'1 (INFO)'), (2, b'2 (DEBUG)')]), ), + # Job Templates + migrations.AddField( + model_name='jobtemplate', + name='ask_verbosity_on_launch', + field=models.BooleanField(default=False), + ), + # Workflows migrations.AddField( model_name='workflowjob', diff --git a/awx/main/models/jobs.py b/awx/main/models/jobs.py index 40f4c22e9a..66804c7dc2 100644 --- a/awx/main/models/jobs.py +++ b/awx/main/models/jobs.py @@ -257,6 +257,10 @@ class JobTemplate(UnifiedJobTemplate, JobOptions, SurveyJobTemplateMixin, Resour blank=True, default=False, ) + ask_verbosity_on_launch = models.BooleanField( + blank=True, + default=False, + ) ask_inventory_on_launch = models.BooleanField( blank=True, default=False, @@ -363,6 +367,7 @@ class JobTemplate(UnifiedJobTemplate, JobOptions, SurveyJobTemplateMixin, Resour job_tags=self.ask_tags_on_launch, skip_tags=self.ask_skip_tags_on_launch, job_type=self.ask_job_type_on_launch, + verbosity=self.ask_verbosity_on_launch, inventory=self.ask_inventory_on_launch, credential=self.ask_credential_on_launch ) @@ -548,6 +553,12 @@ class Job(UnifiedJob, JobOptions, SurveyJobMixin, JobNotificationMixin): return self.job_template.ask_job_type_on_launch return False + @property + def ask_verbosity_on_launch(self): + if self.job_template is not None: + return self.job_template.ask_verbosity_on_launch + return False + @property def ask_inventory_on_launch(self): if self.job_template is not None: diff --git a/awx/main/tests/functional/api/test_job_runtime_params.py b/awx/main/tests/functional/api/test_job_runtime_params.py index bf12977b1b..600f7da086 100644 --- a/awx/main/tests/functional/api/test_job_runtime_params.py +++ b/awx/main/tests/functional/api/test_job_runtime_params.py @@ -52,6 +52,7 @@ def job_template_prompts(project, inventory, machine_credential): ask_inventory_on_launch=on_off, ask_limit_on_launch=on_off, ask_credential_on_launch=on_off, + ask_verbosity_on_launch=on_off, ) return rf @@ -71,6 +72,7 @@ def job_template_prompts_null(project): ask_inventory_on_launch=True, ask_limit_on_launch=True, ask_credential_on_launch=True, + ask_verbosity_on_launch=True, ) diff --git a/awx/main/tests/functional/test_rbac_job_start.py b/awx/main/tests/functional/test_rbac_job_start.py index fcb82572c5..7c84240542 100644 --- a/awx/main/tests/functional/test_rbac_job_start.py +++ b/awx/main/tests/functional/test_rbac_job_start.py @@ -55,8 +55,8 @@ class TestJobRelaunchAccess: jt = JobTemplate.objects.create( name='test-job-template-prompts', credential=machine_credential, inventory=inventory, ask_tags_on_launch=True, ask_variables_on_launch=True, ask_skip_tags_on_launch=True, - ask_limit_on_launch=True, ask_job_type_on_launch=True, ask_inventory_on_launch=True, - ask_credential_on_launch=True) + ask_limit_on_launch=True, ask_job_type_on_launch=True, ask_verbosity_on_launch=True, + ask_inventory_on_launch=True, ask_credential_on_launch=True) new_cred = Credential.objects.create( name='new-cred', credential_type=credentialtype_ssh, diff --git a/awx/main/tests/unit/models/test_workflow_unit.py b/awx/main/tests/unit/models/test_workflow_unit.py index 59d19e943e..adee9b7ae7 100644 --- a/awx/main/tests/unit/models/test_workflow_unit.py +++ b/awx/main/tests/unit/models/test_workflow_unit.py @@ -105,6 +105,7 @@ def jt_ask(job_template_factory): jt.ask_skip_tags_on_launch = True jt.ask_limit_on_launch = True jt.ask_tags_on_launch = True + jt.ask_verbosity_on_launch = True return jt