]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
pybind/mgr/cephadm/inventory: cast variable to expected type
authorKefu Chai <kchai@redhat.com>
Tue, 19 Jan 2021 17:24:01 +0000 (01:24 +0800)
committerKefu Chai <kchai@redhat.com>
Tue, 26 Jan 2021 10:02:24 +0000 (18:02 +0800)
to silence mypy warnings like:

cephadm/module.py:55: note: In module imported here,
cephadm/__init__.py:6: note: ... from here:
cephadm/inventory.py: note: In member "load" of class "SpecStore":
cephadm/inventory.py:130: error: Invalid index type "str" for "str"; expected type "Union[int, slice]"
cephadm/inventory.py:131: error: Invalid index type "str" for "str"; expected type "Union[int, slice]"

Signed-off-by: Kefu Chai <kchai@redhat.com>
src/pybind/mgr/cephadm/inventory.py

index 3283957372a7330a48da670e563eb3271691fce1..1b51547c6c996333517ca6a0772b8658b64e0279 100644 (file)
@@ -2,7 +2,7 @@ import datetime
 from copy import copy
 import json
 import logging
-from typing import TYPE_CHECKING, Dict, List, Iterator, Optional, Any, Tuple, Set
+from typing import cast, TYPE_CHECKING, Dict, List, Iterator, Optional, Any, Tuple, Set
 
 import orchestrator
 from ceph.deployment import inventory
@@ -126,9 +126,9 @@ class SpecStore():
         for k, v in self.mgr.get_store_prefix(SPEC_STORE_PREFIX).items():
             service_name = k[len(SPEC_STORE_PREFIX):]
             try:
-                v = json.loads(v)
-                spec = ServiceSpec.from_json(v['spec'])
-                created = str_to_datetime(v['created'])
+                j = cast(Dict[str, dict], json.loads(v))
+                spec = ServiceSpec.from_json(j['spec'])
+                created = str_to_datetime(cast(str, j['created']))
                 self.specs[service_name] = spec
                 self.spec_created[service_name] = created
                 self.mgr.log.debug('SpecStore: loaded spec for %s' % (