mirror of
https://github.com/ansible/awx.git
synced 2026-04-06 18:49:21 -02:30
Adopt post_injectors change from awx-plugins
This commit is contained in:
committed by
Chris Meyers
parent
325b6d3997
commit
4b85e7e25a
@@ -438,6 +438,7 @@ class CredentialType(CommonModelNameNotUnique):
|
|||||||
default=dict,
|
default=dict,
|
||||||
help_text=_('Enter injectors using either JSON or YAML syntax. Refer to the documentation for example syntax.'),
|
help_text=_('Enter injectors using either JSON or YAML syntax. Refer to the documentation for example syntax.'),
|
||||||
)
|
)
|
||||||
|
post_injectors = None
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def from_db(cls, db, field_names, values):
|
def from_db(cls, db, field_names, values):
|
||||||
@@ -446,6 +447,7 @@ class CredentialType(CommonModelNameNotUnique):
|
|||||||
native = ManagedCredentialType.registry[instance.namespace]
|
native = ManagedCredentialType.registry[instance.namespace]
|
||||||
instance.inputs = native.inputs
|
instance.inputs = native.inputs
|
||||||
instance.injectors = native.injectors
|
instance.injectors = native.injectors
|
||||||
|
instance.post_injectors = native.post_injectors
|
||||||
return instance
|
return instance
|
||||||
|
|
||||||
def get_absolute_url(self, request=None):
|
def get_absolute_url(self, request=None):
|
||||||
@@ -547,6 +549,7 @@ class CredentialType(CommonModelNameNotUnique):
|
|||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def load_plugin(cls, ns, plugin):
|
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)
|
ManagedCredentialType(namespace=ns, name=plugin.name, kind='external', inputs=plugin.inputs)
|
||||||
|
|
||||||
def inject_credential(self, credential, env, safe_env, args, private_data_dir):
|
def inject_credential(self, credential, env, safe_env, args, private_data_dir):
|
||||||
@@ -575,9 +578,9 @@ class CredentialType(CommonModelNameNotUnique):
|
|||||||
files)
|
files)
|
||||||
"""
|
"""
|
||||||
if not self.injectors:
|
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 = {}
|
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)
|
env.update(injected_env)
|
||||||
safe_env.update(build_safe_env(injected_env))
|
safe_env.update(build_safe_env(injected_env))
|
||||||
return
|
return
|
||||||
@@ -686,6 +689,7 @@ class ManagedCredentialType(SimpleNamespace):
|
|||||||
for k in ('inputs', 'injectors'):
|
for k in ('inputs', 'injectors'):
|
||||||
if k not in kwargs:
|
if k not in kwargs:
|
||||||
kwargs[k] = {}
|
kwargs[k] = {}
|
||||||
|
kwargs.setdefault('post_injectors', None)
|
||||||
super(ManagedCredentialType, self).__init__(namespace=namespace, **kwargs)
|
super(ManagedCredentialType, self).__init__(namespace=namespace, **kwargs)
|
||||||
if namespace in ManagedCredentialType.registry:
|
if namespace in ManagedCredentialType.registry:
|
||||||
raise ValueError(
|
raise ValueError(
|
||||||
|
|||||||
Reference in New Issue
Block a user