mirror of
https://github.com/ansible/awx.git
synced 2026-05-17 22:37:41 -02:30
cache dynamic input fields
Query dynamic input fields once on attribute access and then cache it for future use.
This commit is contained in:
@@ -284,10 +284,6 @@ class Credential(PasswordFieldsModel, CommonModelNameNotUnique, ResourceMixin):
|
|||||||
'admin_role',
|
'admin_role',
|
||||||
])
|
])
|
||||||
|
|
||||||
def __init__(self, *args, **kwargs):
|
|
||||||
super(Credential, self).__init__(*args, **kwargs)
|
|
||||||
self.dynamic_input_fields = self._get_dynamic_input_field_names()
|
|
||||||
|
|
||||||
def __getattr__(self, item):
|
def __getattr__(self, item):
|
||||||
if item != 'inputs':
|
if item != 'inputs':
|
||||||
if item in V1Credential.FIELDS:
|
if item in V1Credential.FIELDS:
|
||||||
@@ -377,6 +373,14 @@ class Credential(PasswordFieldsModel, CommonModelNameNotUnique, ResourceMixin):
|
|||||||
needed.append('vault_password')
|
needed.append('vault_password')
|
||||||
return needed
|
return needed
|
||||||
|
|
||||||
|
@property
|
||||||
|
def dynamic_input_fields(self):
|
||||||
|
dynamic_input_fields = getattr(self, '_dynamic_input_fields', None)
|
||||||
|
if dynamic_input_fields is None:
|
||||||
|
self._dynamic_input_fields = self._get_dynamic_input_field_names()
|
||||||
|
return self._dynamic_input_fields
|
||||||
|
return dynamic_input_fields
|
||||||
|
|
||||||
def _password_field_allows_ask(self, field):
|
def _password_field_allows_ask(self, field):
|
||||||
return field in self.credential_type.askable_fields
|
return field in self.credential_type.askable_fields
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user