From: Sage Weil Date: Wed, 10 Mar 2021 13:28:20 +0000 (-0500) Subject: mgr/cephadm/schedule: remove Scheduler abstraction (for now at least) X-Git-Tag: v16.2.0~106^2~31 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=8dd6a13b91a4b160c351aa623a24aca8684a24bc;p=ceph.git mgr/cephadm/schedule: remove Scheduler abstraction (for now at least) It no longer does anything except slice the array. Signed-off-by: Sage Weil (cherry picked from commit 36ef062c942df711afb55b188f4113195c59a499) --- diff --git a/src/pybind/mgr/cephadm/schedule.py b/src/pybind/mgr/cephadm/schedule.py index 6f33856f9ce..923eebebf92 100644 --- a/src/pybind/mgr/cephadm/schedule.py +++ b/src/pybind/mgr/cephadm/schedule.py @@ -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