fix: Account tempale cannot push params (#13571)

Co-authored-by: feng <1304903146@qq.com>
pull/13572/head
fit2bot 2024-07-02 16:12:27 +08:00 committed by GitHub
parent d42acc3848
commit a8973330fe
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 9 additions and 4 deletions

View File

@ -83,7 +83,7 @@ class AccountCreateUpdateSerializerMixin(serializers.Serializer):
def get_template_attr_for_account(template):
# Set initial data from template
field_names = [
'name', 'username', 'secret',
'name', 'username', 'secret', 'push_params',
'secret_type', 'privileged', 'is_active'
]
@ -92,7 +92,10 @@ class AccountCreateUpdateSerializerMixin(serializers.Serializer):
value = getattr(template, name, None)
if value is None:
continue
attrs[name] = value
if name == 'push_params':
attrs['params'] = value
else:
attrs[name] = value
attrs['secret'] = template.get_secret()
return attrs
@ -227,7 +230,7 @@ class AccountSerializer(AccountCreateUpdateSerializerMixin, BaseAccountSerialize
fields = BaseAccountSerializer.Meta.fields + [
'su_from', 'asset', 'version',
'source', 'source_id', 'connectivity',
] + list(set(AccountCreateUpdateSerializerMixin.Meta.fields) - {'params'})
] + AccountCreateUpdateSerializerMixin.Meta.fields
read_only_fields = BaseAccountSerializer.Meta.read_only_fields + [
'connectivity'
]

View File

@ -323,7 +323,9 @@ class AssetSerializer(BulkOrgResourceModelSerializer, ResourceLabelsMixin, Writa
template_id = data.get('template', None)
if template_id:
template = AccountTemplate.objects.get(id=template_id)
if template and template.su_from:
template.push_params = data.pop('push_params', {})
data['params'] = template.push_params
if template.su_from:
su_from_name_username_secret_type_map[template.name] = (
template.su_from.username, template.su_from.secret_type
)