]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mgr/cephadm/schedule: remove Scheduler abstraction (for now at least)
authorSage Weil <sage@newdream.net>
Wed, 10 Mar 2021 13:28:20 +0000 (08:28 -0500)
committerSage Weil <sage@newdream.net>
Tue, 16 Mar 2021 12:56:18 +0000 (07:56 -0500)
It no longer does anything except slice the array.

Signed-off-by: Sage Weil <sage@newdream.net>
(cherry picked from commit 36ef062c942df711afb55b188f4113195c59a499)

src/pybind/mgr/cephadm/schedule.py

index 6f33856f9ce512f8b94c705d329bc10d0df3ad04..923eebebf929d73917a6bdc21cc2f43371e023ab 100644 (file)
@@ -11,42 +11,6 @@ logger = logging.getLogger(__name__)
 T = TypeVar('T')
 
 
-class BaseScheduler(object):
-    """
-    Base Scheduler Interface
-
-    * requires a ServiceSpec
-
-    `place(host_pool)` needs to return a List[HostPlacementSpec, ..]
-    """
-
-    def __init__(self, spec):
-        # type: (ServiceSpec) -> None
-        self.spec = spec
-
-    def place(self, host_pool, count=None):
-        # type: (List[T], Optional[int]) -> List[T]
-        raise NotImplementedError
-
-
-class SimpleScheduler(BaseScheduler):
-    """
-    The most simple way to pick/schedule a set of hosts.
-    1) Shuffle the provided host_pool
-    2) Select from list up to :count
-    """
-
-    def __init__(self, spec: ServiceSpec):
-        super(SimpleScheduler, self).__init__(spec)
-
-    def place(self, host_pool, count=None):
-        # type: (List[T], Optional[int]) -> List[T]
-        if not host_pool:
-            return []
-        host_pool = [x for x in host_pool]
-        return host_pool[:count]
-
-
 class HostAssignment(object):
 
     def __init__(self,
@@ -54,12 +18,10 @@ class HostAssignment(object):
                  hosts: List[orchestrator.HostSpec],
                  daemons: List[orchestrator.DaemonDescription],
                  filter_new_host=None,  # type: Optional[Callable[[str],bool]]
-                 scheduler=None,  # type: Optional[BaseScheduler]
                  allow_colo: bool = False,
                  ):
         assert spec
         self.spec = spec  # type: ServiceSpec
-        self.scheduler = scheduler if scheduler else SimpleScheduler(self.spec)
         self.hosts: List[orchestrator.HostSpec] = hosts
         self.filter_new_host = filter_new_host
         self.service_name = spec.service_name()
@@ -184,7 +146,7 @@ class HostAssignment(object):
             return existing_slots, [], to_remove
 
         # ask the scheduler to select additional slots
-        to_add = self.scheduler.place(others, need)
+        to_add = others[:need]
         logger.debug('Combine hosts with existing daemons %s + new hosts %s' % (
             existing, to_add))
         return existing_slots + to_add, to_add, to_remove