From: Joseph Sawaya Date: Wed, 30 Jun 2021 20:51:21 +0000 (-0400) Subject: mgr/rook: fix typing errors related to storage_class_name and device ls X-Git-Tag: v17.1.0~1144^2~7 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=cc50e8ddff1412e6216d69cf5e459c6373294e00;p=ceph.git mgr/rook: fix typing errors related to storage_class_name and device ls This commit fixes a couple of typing issues related to the updating of the storage_class_name module option and the get_discovered_devices function called when a user does ceph orch device ls. Signed-off-by: Joseph Sawaya --- diff --git a/src/pybind/mgr/rook/module.py b/src/pybind/mgr/rook/module.py index 8778086d2ece..f947bec9b0cb 100644 --- a/src/pybind/mgr/rook/module.py +++ b/src/pybind/mgr/rook/module.py @@ -127,8 +127,8 @@ class RookOrchestrator(MgrModule, orchestrator.Orchestrator): self.get_module_option(opt['name'])) # type: ignore self.log.debug(' mgr option %s = %s', opt['name'], getattr(self, opt['name'])) # type: ignore - - self._rook_cluster.storage_class_name = self.storage_class_name + assert isinstance(self.storage_class_name, str) + self.rook_cluster.storage_class_name = self.storage_class_name def shutdown(self) -> None: self._shutdown.set() diff --git a/src/pybind/mgr/rook/rook_cluster.py b/src/pybind/mgr/rook/rook_cluster.py index 86dae8aabfd1..fd6c7dd5ac00 100644 --- a/src/pybind/mgr/rook/rook_cluster.py +++ b/src/pybind/mgr/rook/rook_cluster.py @@ -280,7 +280,6 @@ class RookCluster(object): log.exception("Failed to fetch device metadata") raise - nodename_to_devices = {} lso_devices = {} for i in lso_discovery_results: drives = i['status']['discoveredDevices'] @@ -288,7 +287,7 @@ class RookCluster(object): lso_devices[drive['deviceID'].split('/')[-1]] = drive pvs_in_sc = [i for i in self.pvs.items if i.spec.storage_class_name == self.storage_class_name] - def convert_size(size_str: str): + def convert_size(size_str: str) -> int: units = ("", "Ki", "Mi", "Gi", "Ti", "Pi", "Ei") unit = size_str[-2:] try: @@ -300,6 +299,7 @@ class RookCluster(object): size = coeff * (2 ** (10 * factor)) return size + nodename_to_devices: Dict[str, Any] = {} for i in pvs_in_sc: if (not i.metadata.annotations) or ('storage.openshift.com/device-id' not in i.metadata.annotations) or (i.metadata.annotations['storage.openshift.com/device-id'] not in lso_devices): size = convert_size(i.spec.capacity['storage'])