mirror of
https://github.com/ansible/awx.git
synced 2026-05-08 09:57:35 -02:30
Merge pull request #6940 from ryanpetrello/fix-6900
don't auto-coerce boolean-like extra_vars for credential injection
This commit is contained in:
@@ -30,7 +30,7 @@ from awx.main.models.rbac import (
|
|||||||
ROLE_SINGLETON_SYSTEM_ADMINISTRATOR,
|
ROLE_SINGLETON_SYSTEM_ADMINISTRATOR,
|
||||||
ROLE_SINGLETON_SYSTEM_AUDITOR,
|
ROLE_SINGLETON_SYSTEM_AUDITOR,
|
||||||
)
|
)
|
||||||
from awx.main.utils import encrypt_field, to_python_boolean
|
from awx.main.utils import encrypt_field
|
||||||
|
|
||||||
__all__ = ['Credential', 'CredentialType', 'V1Credential']
|
__all__ = ['Credential', 'CredentialType', 'V1Credential']
|
||||||
|
|
||||||
@@ -576,13 +576,6 @@ class CredentialType(CommonModelNameNotUnique):
|
|||||||
extra_vars[var_name] = Template(tmpl).render(**namespace)
|
extra_vars[var_name] = Template(tmpl).render(**namespace)
|
||||||
safe_extra_vars[var_name] = Template(tmpl).render(**safe_namespace)
|
safe_extra_vars[var_name] = Template(tmpl).render(**safe_namespace)
|
||||||
|
|
||||||
# If the template renders to a stringified Boolean, they've _probably_
|
|
||||||
# set up an extra_var injection with a boolean field; extra_vars supports JSON,
|
|
||||||
# so give them the actual boolean type they want
|
|
||||||
for v in (extra_vars, safe_extra_vars):
|
|
||||||
if v[var_name] in ('True', 'False'):
|
|
||||||
v[var_name] = to_python_boolean(v[var_name])
|
|
||||||
|
|
||||||
if extra_vars:
|
if extra_vars:
|
||||||
args.extend(['-e', json.dumps(extra_vars)])
|
args.extend(['-e', json.dumps(extra_vars)])
|
||||||
|
|
||||||
|
|||||||
@@ -915,7 +915,7 @@ class TestJobCredentials(TestJobExecution):
|
|||||||
assert self.run_pexpect.call_count == 1
|
assert self.run_pexpect.call_count == 1
|
||||||
call_args, _ = self.run_pexpect.call_args_list[0]
|
call_args, _ = self.run_pexpect.call_args_list[0]
|
||||||
args, cwd, env, stdout = call_args
|
args, cwd, env, stdout = call_args
|
||||||
assert '-e {"turbo_button": true}' in ' '.join(args)
|
assert '-e {"turbo_button": "True"}' in ' '.join(args)
|
||||||
|
|
||||||
def test_custom_environment_injectors_with_complicated_boolean_template(self):
|
def test_custom_environment_injectors_with_complicated_boolean_template(self):
|
||||||
some_cloud = CredentialType(
|
some_cloud = CredentialType(
|
||||||
|
|||||||
Reference in New Issue
Block a user