From: John Mulligan Date: Mon, 17 Mar 2025 19:35:07 +0000 (-0400) Subject: mgr/smb: add password conversion support to users/groups types X-Git-Tag: v20.3.0~184^2~8 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=90a90f14f1575b776df00d53251339e54a7862dc;p=ceph.git mgr/smb: add password conversion support to users/groups types Add the password conversion support for users and groups resource types. Signed-off-by: John Mulligan --- diff --git a/src/pybind/mgr/smb/resources.py b/src/pybind/mgr/smb/resources.py index 13e4165bd802..f342b53d6ba6 100644 --- a/src/pybind/mgr/smb/resources.py +++ b/src/pybind/mgr/smb/resources.py @@ -280,6 +280,20 @@ class UserGroupSettings(_RBase): users: List[Dict[str, str]] groups: List[Dict[str, str]] + def convert(self, operation: ConversionOp) -> Self: + def _convert_pw_key(dct: Dict[str, str]) -> Dict[str, str]: + pw = dct.get('password', None) + if pw is not None: + data = dict(dct) + data["password"] = _password_convert(pw, operation) + return data + return dct + + return self.__class__( + users=[_convert_pw_key(u) for u in self.users], + groups=self.groups, + ) + @resourcelib.component() class UserGroupSource(_RBase): @@ -517,6 +531,15 @@ class UsersAndGroups(_RBase): rc.on_construction_error(InvalidResourceError.wrap) return rc + def convert(self, operation: ConversionOp) -> Self: + values = None if not self.values else self.values.convert(operation) + return self.__class__( + users_groups_id=self.users_groups_id, + intent=self.intent, + values=values, + linked_to_cluster=self.linked_to_cluster, + ) + # SMBResource is a union of all valid top-level smb resource types. SMBResource = Union[