diff options
author | Chris Meyers <chris.meyers.fsu@gmail.com> | 2024-11-15 16:14:03 +0100 |
---|---|---|
committer | Chris Meyers <chrismeyersfsu@users.noreply.github.com> | 2024-12-10 19:02:09 +0100 |
commit | 4b85e7e25a9abb7c4bf841935e89462944cb427c (patch) | |
tree | 2b8780af65426d3129fcbc4434937dee88ecaa13 | |
parent | Fix missing exception catch in `create_partition` (#15691) (diff) | |
download | awx-4b85e7e25a9abb7c4bf841935e89462944cb427c.tar.xz awx-4b85e7e25a9abb7c4bf841935e89462944cb427c.zip |
Adopt post_injectors change from awx-plugins
-rw-r--r-- | awx/main/models/credential.py | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/awx/main/models/credential.py b/awx/main/models/credential.py index 44f310716d..6c1231ffaf 100644 --- a/awx/main/models/credential.py +++ b/awx/main/models/credential.py @@ -438,6 +438,7 @@ class CredentialType(CommonModelNameNotUnique): default=dict, help_text=_('Enter injectors using either JSON or YAML syntax. Refer to the documentation for example syntax.'), ) + post_injectors = None @classmethod def from_db(cls, db, field_names, values): @@ -446,6 +447,7 @@ class CredentialType(CommonModelNameNotUnique): native = ManagedCredentialType.registry[instance.namespace] instance.inputs = native.inputs instance.injectors = native.injectors + instance.post_injectors = native.post_injectors return instance def get_absolute_url(self, request=None): @@ -547,6 +549,7 @@ class CredentialType(CommonModelNameNotUnique): @classmethod def load_plugin(cls, ns, plugin): + # TODO: User "side-loaded" credential post_injectors isn't supported ManagedCredentialType(namespace=ns, name=plugin.name, kind='external', inputs=plugin.inputs) def inject_credential(self, credential, env, safe_env, args, private_data_dir): @@ -575,9 +578,9 @@ class CredentialType(CommonModelNameNotUnique): files) """ if not self.injectors: - if self.managed and credential.credential_type.namespace in dir(builtin_injectors): + if self.managed and credential.credential_type.post_injectors: injected_env = {} - getattr(builtin_injectors, credential.credential_type.namespace)(credential, injected_env, private_data_dir) + credential.credential_type.post_injectors(credential, injected_env, private_data_dir) env.update(injected_env) safe_env.update(build_safe_env(injected_env)) return @@ -686,6 +689,7 @@ class ManagedCredentialType(SimpleNamespace): for k in ('inputs', 'injectors'): if k not in kwargs: kwargs[k] = {} + kwargs.setdefault('post_injectors', None) super(ManagedCredentialType, self).__init__(namespace=namespace, **kwargs) if namespace in ManagedCredentialType.registry: raise ValueError( |