]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
mgr/orchstrator: Removed all type anotations incompatible to Python 2
authorSebastian Wagner <sebastian.wagner@suse.com>
Thu, 12 Sep 2019 13:31:34 +0000 (15:31 +0200)
committerSebastian Wagner <sebastian.wagner@suse.com>
Wed, 27 Nov 2019 12:38:20 +0000 (13:38 +0100)
* Reduce mypy's type checking capability
* Remove useful code documentation

Signed-off-by: Sebastian Wagner <sebastian.wagner@suse.com>
src/pybind/mgr/orchestrator.py
src/pybind/mgr/rook/module.py
src/pybind/mgr/ssh/module.py
src/pybind/mgr/test_orchestrator/module.py

index f335eec7f7b92241e46cfd273e1f9844f24f86ac..2ba4f1f538f5e8115e03647ac237538fa03e0382 100644 (file)
@@ -27,17 +27,10 @@ from mgr_util import format_bytes
 try:
     from ceph.deployment.drive_group import DriveGroupSpec
     from typing import TypeVar, Generic, List, Optional, Union, Tuple, Iterator, Callable, Any, Type
-
 except ImportError:
     pass
-    #T, G = object, object
 
-T = TypeVar('T')
-U = TypeVar('U')
-V = TypeVar('V')
-G = Generic[T]
-Promises = TypeVar('Promises', bound='_Promise')
-Completions = TypeVar('Completions', bound='Completion')
+logger = logging.getLogger(__name__)
 
 
 
@@ -160,7 +153,7 @@ def _no_result():
     return object()
 
 
-class _Promise(Generic[T]):
+class _Promise(object):
     """
     A completion may need multiple promises to be fulfilled. `_Promise` is one
     step.
@@ -177,12 +170,12 @@ class _Promise(Generic[T]):
     NO_RESULT = _no_result()  # type: None
 
     def __init__(self,
-                 _first_promise=None,  # type: Optional["_Promise[V]"]
-                 value=NO_RESULT,  # type: Optional[T]
-                 on_complete=None    # type: Optional[Callable[[T], Union[U, _Promise[U]]]]
+                 _first_promise=None,  # type: Optional["_Promise"]
+                 value=NO_RESULT,  # type: Optional
+                 on_complete=None    # type: Optional[Callable]
                  ):
         self._on_complete = on_complete
-        self._next_promise = None  # type: Optional[_Promise[U]]
+        self._next_promise = None  # type: Optional[_Promise]
 
         self._state = self.INITIALIZED
         self._exception = None  # type: Optional[Exception]
@@ -202,7 +195,7 @@ class _Promise(Generic[T]):
         )
 
     def then(self, on_complete):
-        # type: (Promises, Callable[[T], Union[U, _Promise[U]]]) -> Promises[U]
+        # type: (Any, Callable) -> Any
         """
         Call ``on_complete`` as soon as this promise is finalized.
         """
@@ -221,7 +214,7 @@ class _Promise(Generic[T]):
             return self._next_promise
 
     def _set_next_promise(self, next):
-        # type: (_Promise[U]) -> None
+        # type: (_Promise) -> None
         assert self is not next
         assert self._state is self.INITIALIZED
 
@@ -231,7 +224,6 @@ class _Promise(Generic[T]):
             p._first_promise = self._first_promise
 
     def finalize(self, value=NO_RESULT):
-        # type: (Optional[T]) -> None
         """
         Sets this promise to complete.
 
@@ -318,7 +310,7 @@ class ProgressReference(object):
     def __init__(self,
                  message,  # type: str
                  mgr,
-                 completion=None  # type: Optional[Callable[[], Completion[float]]]
+                 completion=None  # type: Optional[Callable[[], Completion]]
                 ):
         """
         ProgressReference can be used within Completions::
@@ -341,7 +333,7 @@ class ProgressReference(object):
         #: The completion can already have a result, before the write
         #: operation is effective. progress == 1 means, the services are
         #: created / removed.
-        self.completion = completion  # type: Optional[Callable[[], Completion[float]]]
+        self.completion = completion  # type: Optional[Callable[[], Completion]]
 
         #: if a orchestrator module can provide a more detailed
         #: progress information, it needs to also call ``progress.update()``.
@@ -400,7 +392,7 @@ class ProgressReference(object):
         self.progress = 1
 
 
-class Completion(_Promise[T]):
+class Completion(_Promise):
     """
     Combines multiple promises into one overall operation.
 
@@ -430,9 +422,9 @@ class Completion(_Promise[T]):
 
     """
     def __init__(self,
-                 _first_promise=None,  # type: Optional["Completion[V]"]
-                 value=_Promise.NO_RESULT,  # type: Optional[T]
-                 on_complete=None  # type: Optional[Callable[[T], Union[U, Completion[U]]]]
+                 _first_promise=None,  # type: Optional["Completion"]
+                 value=_Promise.NO_RESULT,  # type: Any
+                 on_complete=None  # type: Optional[Callable]
                  ):
         super(Completion, self).__init__(_first_promise, value, on_complete)
 
@@ -458,15 +450,15 @@ class Completion(_Promise[T]):
         return None
 
     @classmethod
-    def with_progress(cls,  # type: Completions[T]
+    def with_progress(cls,  # type: Any
                       message,  # type: str
                       mgr,
-                      _first_promise=None,  # type: Optional["Completions[V]"]
-                      value=_Promise.NO_RESULT,  # type: Optional[T]
-                      on_complete=None,  # type: Optional[Callable[[T], Union[U, Completions[U]]]]
-                      calc_percent=None  # type: Optional[Callable[[], Completions[float]]]
+                      _first_promise=None,  # type: Optional["Completions"]
+                      value=_Promise.NO_RESULT,  # type: Any
+                      on_complete=None,  # type: Optional[Callable]
+                      calc_percent=None  # type: Optional[Callable[[], Any]]
                       ):
-        # type: (...) -> Completions[T]
+        # type: (...) -> Any
 
         c = cls(
             _first_promise=_first_promise,
@@ -587,7 +579,7 @@ def raise_if_exception(c):
         raise e
 
 
-class TrivialReadCompletion(Completion[T]):
+class TrivialReadCompletion(Completion):
     """
     This is the trivial completion simply wrapping a result.
     """
@@ -732,7 +724,7 @@ class Orchestrator(object):
         raise NotImplementedError()
 
     def get_hosts(self):
-        # type: () -> Completion[List[InventoryNode]]
+        # type: () -> Completion
         """
         Report the hosts in the cluster.
 
@@ -757,7 +749,7 @@ class Orchestrator(object):
         return NotImplementedError()
 
     def get_inventory(self, node_filter=None, refresh=False):
-        # type: (InventoryFilter, bool) -> Completion[List[InventoryNode]]
+        # type: (InventoryFilter, bool) -> Completion
         """
         Returns something that was created by `ceph-volume inventory`.
 
@@ -766,7 +758,7 @@ class Orchestrator(object):
         raise NotImplementedError()
 
     def describe_service(self, service_type=None, service_id=None, node_name=None, refresh=False):
-        # type: (Optional[str], Optional[str], Optional[str], bool) -> Completion[List[ServiceDescription]]
+        # type: (Optional[str], Optional[str], Optional[str], bool) -> Completion
         """
         Describe a service (of any kind) that is already configured in
         the orchestrator.  For example, when viewing an OSD in the dashboard
@@ -942,7 +934,7 @@ class Orchestrator(object):
 
     @_hide_in_features
     def upgrade_status(self):
-        # type: () -> Completion[UpgradeStatusSpec]
+        # type: () -> Completion
         """
         If an upgrade is currently underway, report on where
         we are in the process, or if some error has occurred.
@@ -953,7 +945,7 @@ class Orchestrator(object):
 
     @_hide_in_features
     def upgrade_available(self):
-        # type: () -> Completion[List[str]]
+        # type: () -> Completion
         """
         Report on what versions are available to upgrade to
 
index b2092d167ef40c0160349e39cff769c44ed01268..c0384437f0a8fd62f3bfc21c0e20c229b817ec37 100644 (file)
@@ -10,9 +10,6 @@ try:
 except ImportError:
     pass  # just for type checking
 
-T = TypeVar('T')
-
-
 try:
     from kubernetes import client, config
     from kubernetes.client.rest import ApiException
@@ -36,13 +33,13 @@ import orchestrator
 from .rook_cluster import RookCluster
 
 
-class RookCompletion(orchestrator.Completion[T]):
+class RookCompletion(orchestrator.Completion):
     def evaluate(self):
         self._first_promise.finalize(None)
 
 
 def deferred_read(f):
-    # type: (Callable[..., T]) -> Callable[..., RookCompletion[T]]
+    # type: (Callable) -> Callable[..., RookCompletion]
     """
     Decorator to make RookOrchestrator methods return
     a completion object that executes themselves.
@@ -55,12 +52,12 @@ def deferred_read(f):
     return wrapper
 
 
-def write_completion(on_complete,  # type: Callable[[], T]
+def write_completion(on_complete,  # type: Callable
                      message,  # type: str
                      mgr,
-                     calc_percent=None  # type: Optional[Callable[[], RookCompletion[float]]]
+                     calc_percent=None  # type: Optional[Callable[[], RookCompletion]]
                      ):
-    # type: (...) -> RookCompletion[T]
+    # type: (...) -> RookCompletion
     return RookCompletion.with_progress(
         message=message,
         mgr=mgr,
index af42e778ad38de59b8275755f3b462c609802665..5dd0f66f7b88a8771c627dbd917a579d46336846 100644 (file)
@@ -9,7 +9,6 @@ try:
 except ImportError:
     pass  # just for type checking
 
-T = TypeVar('T')
 
 import six
 import os
@@ -71,10 +70,10 @@ except ImportError:
 #    multiple bootstrapping / initialization
 
 
-class AsyncCompletion(orchestrator.Completion[T]):
-    def __init__(self, *args, many=False, **kwargs):
-        self.__on_complete = None  # type: Callable[[T], Any]
-        self.many = many
+class AsyncCompletion(orchestrator.Completion):
+    def __init__(self, *args, **kwargs):
+        self.__on_complete = None  # type: Callable
+        self.many = kwargs.pop('many')
         super(AsyncCompletion, self).__init__(*args, **kwargs)
 
     def propagate_to_next(self):
@@ -89,7 +88,7 @@ class AsyncCompletion(orchestrator.Completion[T]):
 
     @property
     def _on_complete(self):
-        # type: () -> Optional[Callable[[T], Any]]
+        # type: () -> Optional[Callable]
         if self.__on_complete is None:
             return None
 
@@ -112,7 +111,7 @@ class AsyncCompletion(orchestrator.Completion[T]):
 
     @_on_complete.setter
     def _on_complete(self, inner):
-        # type: (Callable[[T], Any]) -> None
+        # type: (Callable) -> None
         self.__on_complete = inner
 
 
@@ -131,17 +130,17 @@ def ssh_completion(cls=AsyncCompletion, **c_kwargs):
 
 
 def async_completion(f):
-    # type: (Callable[..., T]) -> Callable[..., AsyncCompletion[T]]
+    # type: (Callable) -> Callable[..., AsyncCompletion]
     return ssh_completion()(f)
 
 
 def async_map_completion(f):
-    # type: (Callable[..., T]) -> Callable[..., AsyncCompletion[T]]
+    # type: (Callable) -> Callable[..., AsyncCompletion]
     return ssh_completion(many=True)(f)
 
 
 def trivial_completion(f):
-    # type: (Callable[..., T]) -> Callable[..., orchestrator.Completion[T]]
+    # type: (Callable) -> Callable[..., orchestrator.Completion]
     return ssh_completion(cls=orchestrator.Completion)(f)
 
 
index 43c6c44da21f792340dfc1f0277f7236bd113115..70118e8a4c54403db8e2d6fa7d7350d183223fcc 100644 (file)
@@ -15,16 +15,14 @@ from mgr_module import MgrModule
 
 import orchestrator
 
-T = TypeVar('T')
 
-
-class TestCompletion(orchestrator.Completion[T]):
+class TestCompletion(orchestrator.Completion):
     def evaluate(self):
         self._first_promise.finalize(None)
 
 
 def deferred_read(f):
-    # type: (Callable[..., T]) -> Callable[..., TestCompletion[T]]
+    # type: (Callable) -> Callable[..., TestCompletion]
     """
     Decorator to make methods return
     a completion object that executes themselves.
@@ -39,7 +37,7 @@ def deferred_read(f):
 
 def deferred_write(message):
     def inner(f):
-        # type: (Callable[..., T]) -> Callable[..., TestCompletion[T]]
+        # type: (Callable) -> Callable[..., TestCompletion]
 
         @functools.wraps(f)
         def wrapper(self, *args, **kwargs):