From: John Mulligan Date: Mon, 15 Jul 2024 19:22:43 +0000 (-0400) Subject: mgr/smb: add function to parse rados psuedo-uri values X-Git-Tag: testing/wip-vshankar-testing-20240826.122843-debug~13^2~10 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=6c36f61b227baecbf59d1ff1bdaf2bed15c7d933;p=ceph-ci.git mgr/smb: add function to parse rados psuedo-uri values Signed-off-by: John Mulligan --- diff --git a/src/pybind/mgr/smb/rados_store.py b/src/pybind/mgr/smb/rados_store.py index 1e739088e7e..8896350ee41 100644 --- a/src/pybind/mgr/smb/rados_store.py +++ b/src/pybind/mgr/smb/rados_store.py @@ -273,3 +273,19 @@ def _init_pool(mgr: 'MgrModule', pool: str) -> None: 'app': 'smb', } ) + + +def parse_uri(uri: str) -> Tuple[str, str, str]: + """Parse a rados-like uri into pool, namespace, and object values. + Namespace may be an empty string. + """ + if uri.startswith('rados://'): + parts = uri.removeprefix('rados://').split('/') + if len(parts) == 3: + return tuple(parts) # type: ignore + if len(parts) == 2: + return parts[0], '', parts[1] + raise ValueError('invalid rados uri: {uri!r}') + elif uri.startswith('rados:'): + raise ValueError('not a supported rados uri: {uri!r}') + raise ValueError('not a rados uri: {uri!r}')