]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
mgr/{prometheus,telemetry}: appease mypy
authorKefu Chai <kchai@redhat.com>
Tue, 23 Feb 2021 03:50:48 +0000 (11:50 +0800)
committerKefu Chai <kchai@redhat.com>
Thu, 25 Feb 2021 07:54:12 +0000 (15:54 +0800)
update to adapt the type annotation of MgrModule.list_servers()

Signed-off-by: Kefu Chai <kchai@redhat.com>
src/pybind/mgr/prometheus/module.py
src/pybind/mgr/telemetry/module.py

index f84389861233f9bf90b5697ef7a6e84492c6ad99..e83f9191b1180602bbd15545c310f7e028ae6b1c 100644 (file)
@@ -9,12 +9,12 @@ import re
 import socket
 import threading
 import time
-from mgr_module import MgrModule, MgrStandbyModule, PG_STATES, Option
+from mgr_module import MgrModule, MgrStandbyModule, PG_STATES, Option, ServiceInfoT
 from mgr_util import get_default_addr, profile_method
 from rbd import RBD
 from collections import namedtuple
 try:
-    from typing import DefaultDict, Optional, Dict, Any, Set, cast
+    from typing import DefaultDict, Optional, Dict, Any, List, Set, cast
 except ImportError:
     pass
 
@@ -691,7 +691,7 @@ class Module(MgrModule):
         for server in self.list_servers():
             version = server.get('ceph_version', '')
             host = server.get('hostname', '')
-            for service in server.get('services', []):
+            for service in cast(List[ServiceInfoT], server.get('services', [])):
                 ret.update({(service['id'], service['type']): (host, version)})
         return ret
 
@@ -1185,7 +1185,7 @@ class Module(MgrModule):
         targets = []
         for server in servers:
             hostname = server.get('hostname', '')
-            for service in server.get('services', []):
+            for service in cast(List[ServiceInfoT], server.get('services', [])):
                 if service['type'] != 'mgr':
                     continue
                 id_ = service['id']
index 70330a961f4da5cb14e0e48b4413f96aa469fc88..2c58fa89fd8b65423529db09b4983d39d4b79f1f 100644 (file)
@@ -15,9 +15,9 @@ import time
 from datetime import datetime, timedelta
 from threading import Event
 from collections import defaultdict
-from typing import cast, Any, DefaultDict, Dict, List, Optional, Tuple, TypeVar, TYPE_CHECKING
+from typing import cast, Any, DefaultDict, Dict, List, Optional, Tuple, TypeVar, TYPE_CHECKING, Union
 
-from mgr_module import CLICommand, CLIReadCommand, MgrModule, Option, OptionValue, Union
+from mgr_module import CLICommand, CLIReadCommand, MgrModule, Option, OptionValue, ServiceInfoT
 
 
 ALL_CHANNELS = ['basic', 'ident', 'crash', 'device']
@@ -586,10 +586,11 @@ class Module(MgrModule):
                 'num': len([h for h in servers if h['hostname']]),
             }
             for t in ['mon', 'mds', 'osd', 'mgr']:
-                hosts['num_with_' + t] = len(
-                    [h for h in servers
-                     if len([s for s in h['services'] if s['type'] == t])]
-                )
+                nr_services = sum(1 for host in servers if
+                                  any(service for service in cast(List[ServiceInfoT],
+                                                                  host['services'])
+                                      if service['type'] == t))
+                hosts['num_with_' + t] = nr_services
             report['hosts'] = hosts
 
             report['usage'] = {