]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mgr/smb: add password conversion support to users/groups types
authorJohn Mulligan <jmulligan@redhat.com>
Mon, 17 Mar 2025 19:35:07 +0000 (15:35 -0400)
committerJohn Mulligan <jmulligan@redhat.com>
Tue, 1 Apr 2025 12:02:39 +0000 (08:02 -0400)
Add the password conversion support for users and groups resource types.

Signed-off-by: John Mulligan <jmulligan@redhat.com>
src/pybind/mgr/smb/resources.py

index 13e4165bd802269fecac6061ce44c999d4fcffd6..f342b53d6ba6b3ba4f184ed6dac60d90d8d6317d 100644 (file)
@@ -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[