diff --git a/awx/api/serializers.py b/awx/api/serializers.py index 54959f4f1a..01cbb51485 100644 --- a/awx/api/serializers.py +++ b/awx/api/serializers.py @@ -3097,9 +3097,10 @@ class JobLaunchSerializer(BaseSerializer): def get_defaults(self, obj): ask_for_vars_dict = obj._ask_for_vars_dict() + ask_for_vars_dict['vault_credential'] = False defaults_dict = {} for field in ask_for_vars_dict: - if field in ('inventory', 'credential'): + if field in ('inventory', 'credential', 'vault_credential'): defaults_dict[field] = dict( name=getattrd(obj, '%s.name' % field, None), id=getattrd(obj, '%s.pk' % field, None)) diff --git a/awx/main/models/jobs.py b/awx/main/models/jobs.py index f4ae545f2e..6e16646de1 100644 --- a/awx/main/models/jobs.py +++ b/awx/main/models/jobs.py @@ -213,10 +213,12 @@ class JobOptions(BaseModel): @property def passwords_needed_to_start(self): '''Return list of password field names needed to start the job.''' + needed = [] if self.credential: - return self.credential.passwords_needed - else: - return [] + needed.extend(self.credential.passwords_needed) + if self.vault_credential: + needed.extend(self.vault_credential.passwords_needed) + return needed class JobTemplate(UnifiedJobTemplate, JobOptions, SurveyJobTemplateMixin, ResourceMixin):