From: Sebastian Wagner Date: Fri, 5 Feb 2021 23:57:24 +0000 (+0100) Subject: mgr/orch: remove a bunch of duplicated code X-Git-Tag: v17.1.0~2936^2~1 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=5a49f253e11d7a907ebc48202173f60da42f3c9c;p=ceph.git mgr/orch: remove a bunch of duplicated code We only need to call self.apply() Signed-off-by: Sebastian Wagner --- diff --git a/src/pybind/mgr/orchestrator/module.py b/src/pybind/mgr/orchestrator/module.py index aeaf203305faa..761993e3920ab 100644 --- a/src/pybind/mgr/orchestrator/module.py +++ b/src/pybind/mgr/orchestrator/module.py @@ -1,7 +1,7 @@ import enum import errno import json -from typing import List, Set, Optional, Iterator, cast, Dict, Any, Union +from typing import List, Set, Optional, Iterator, cast, Dict, Any, Union, Sequence import re import datetime @@ -20,7 +20,8 @@ from ._interface import OrchestratorClientMixin, DeviceLightLoc, _cli_read_comma raise_if_exception, _cli_write_command, TrivialReadCompletion, OrchestratorError, \ NoOrchestrator, OrchestratorValidationError, NFSServiceSpec, \ RGWSpec, InventoryFilter, InventoryHost, HostSpec, CLICommandMeta, \ - ServiceDescription, DaemonDescription, IscsiServiceSpec, json_to_generic_spec + ServiceDescription, DaemonDescription, IscsiServiceSpec, json_to_generic_spec, \ + GenericSpec def nice_delta(now: datetime.datetime, t: Optional[datetime.datetime], suffix: str = '') -> str: @@ -326,10 +327,8 @@ class OrchestratorCli(OrchestratorClientMixin, MgrModule, """Add a host""" _status = 'maintenance' if maintenance else '' s = HostSpec(hostname=hostname, addr=addr, labels=labels, status=_status) - completion = self.add_host(s) - self._orchestrator_wait([completion]) - raise_if_exception(completion) - return HandleCommandResult(stdout=completion.result_str()) + + return self._apply_misc([s], False, Format.plain) @_cli_write_command('orch host rm') def _remove_host(self, hostname: str) -> HandleCommandResult: @@ -758,20 +757,7 @@ Examples: spec.preview_only = True dg_specs.append(spec) - completion = self.apply(dg_specs) - self._orchestrator_wait([completion]) - raise_if_exception(completion) - out = completion.result_str() - if dry_run: - completion = self.plan(dg_specs) - self._orchestrator_wait([completion]) - raise_if_exception(completion) - data = completion.result - if format == Format.plain: - out = generate_preview_tables(data, True) - else: - out = to_format(data, format, many=True, cls=None) - return HandleCommandResult(stdout=out) + return self._apply_misc(dg_specs, dry_run, format) if all_available_devices: if unmanaged is None: @@ -785,20 +771,7 @@ Examples: preview_only=dry_run ) ] - # This acts weird when abstracted to a function - completion = self.apply(dg_specs) - self._orchestrator_wait([completion]) - raise_if_exception(completion) - out = completion.result_str() - if dry_run: - completion = self.plan(dg_specs) - self._orchestrator_wait([completion]) - data = completion.result - if format == Format.plain: - out = generate_preview_tables(data, True) - else: - out = to_format(data, format, many=True, cls=None) - return HandleCommandResult(stdout=out) + return self._apply_misc(dg_specs, dry_run, format) return HandleCommandResult(-errno.EINVAL, stderr=usage) @@ -1081,13 +1054,13 @@ Usage: return HandleCommandResult(stdout=completion.result_str()) @_cli_write_command('orch apply') - def _apply_misc(self, - service_type: Optional[ServiceType] = None, - placement: Optional[str] = None, - dry_run: bool = False, - format: Format = Format.plain, - unmanaged: bool = False, - inbuf: Optional[str] = None) -> HandleCommandResult: + def apply_misc(self, + service_type: Optional[ServiceType] = None, + placement: Optional[str] = None, + dry_run: bool = False, + format: Format = Format.plain, + unmanaged: bool = False, + inbuf: Optional[str] = None) -> HandleCommandResult: """Update the size or placement for a service or apply a large yaml spec""" usage = """Usage: ceph orch apply -i [--dry-run] @@ -1109,7 +1082,9 @@ Usage: raise OrchestratorValidationError(usage) specs = [ServiceSpec(service_type.value, placement=placementspec, unmanaged=unmanaged, preview_only=dry_run)] + return self._apply_misc(specs, dry_run, format) + def _apply_misc(self, specs: Sequence[GenericSpec], dry_run: bool, format: Format) -> HandleCommandResult: completion = self.apply(specs) self._orchestrator_wait([completion]) raise_if_exception(completion) @@ -1143,21 +1118,7 @@ Usage: placement=PlacementSpec.from_string(placement), unmanaged=unmanaged, preview_only=dry_run) - - completion = self.apply_mds(spec) - self._orchestrator_wait([completion]) - raise_if_exception(completion) - out = completion.result_str() - if dry_run: - completion_plan = self.plan([spec]) - self._orchestrator_wait([completion_plan]) - raise_if_exception(completion_plan) - data = completion_plan.result - if format == Format.plain: - out = preview_table_services(data) - else: - out = to_format(data, format, many=True, cls=None) - return HandleCommandResult(stdout=out) + return self._apply_misc([spec], dry_run, format) @_cli_write_command('orch apply rgw') def _apply_rgw(self, @@ -1186,20 +1147,7 @@ Usage: preview_only=dry_run ) - completion = self.apply_rgw(spec) - self._orchestrator_wait([completion]) - raise_if_exception(completion) - out = completion.result_str() - if dry_run: - completion_plan = self.plan([spec]) - self._orchestrator_wait([completion_plan]) - raise_if_exception(completion_plan) - data = completion_plan.result - if format == Format.plain: - out = preview_table_services(data) - else: - out = to_format(data, format, many=True, cls=None) - return HandleCommandResult(stdout=out) + return self._apply_misc([spec], dry_run, format) @_cli_write_command('orch apply nfs') def _apply_nfs(self, @@ -1224,20 +1172,7 @@ Usage: preview_only=dry_run ) - completion = self.apply_nfs(spec) - self._orchestrator_wait([completion]) - raise_if_exception(completion) - out = completion.result_str() - if dry_run: - completion_plan = self.plan([spec]) - self._orchestrator_wait([completion_plan]) - raise_if_exception(completion_plan) - data = completion_plan.result - if format == Format.plain: - out = preview_table_services(data) - else: - out = to_format(data, format, many=True, cls=None) - return HandleCommandResult(stdout=out) + return self._apply_misc([spec], dry_run, format) @_cli_write_command('orch apply iscsi') def _apply_iscsi(self, @@ -1265,20 +1200,7 @@ Usage: preview_only=dry_run ) - completion = self.apply_iscsi(spec) - self._orchestrator_wait([completion]) - raise_if_exception(completion) - out = completion.result_str() - if dry_run: - completion_plan = self.plan([spec]) - self._orchestrator_wait([completion_plan]) - raise_if_exception(completion_plan) - data = completion_plan.result - if format == Format.plain: - out = preview_table_services(data) - else: - out = to_format(data, format, many=True, cls=None) - return HandleCommandResult(stdout=out) + return self._apply_misc([spec], dry_run, format) @_cli_write_command('orch set backend') def _set_backend(self, module_name: Optional[str] = None) -> HandleCommandResult: