From: Sage Weil Date: Thu, 27 Feb 2020 19:32:24 +0000 (-0600) Subject: mgr/orch: use PlacementSpec.from_strings() for all CLI commands X-Git-Tag: v15.1.1~170^2~4 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=7de93c1253b18e9d86e85d33efe0314a5880f58d;p=ceph.git mgr/orch: use PlacementSpec.from_strings() for all CLI commands Signed-off-by: Sage Weil --- diff --git a/src/pybind/mgr/orchestrator/module.py b/src/pybind/mgr/orchestrator/module.py index d8c85c11dc8..6f9dfc11dca 100644 --- a/src/pybind/mgr/orchestrator/module.py +++ b/src/pybind/mgr/orchestrator/module.py @@ -498,15 +498,10 @@ Usage: @_cli_write_command( 'orch daemon add mon', - "name=num,type=CephInt,req=false " - "name=hosts,type=CephString,n=N,req=false " - "name=label,type=CephString,req=false", + 'name=placement,type=CephString,n=N,req=false', 'Start monitor daemon(s)') - def _daemon_add_mon(self, num=None, hosts=[], label=None): - if not num and not hosts and not label: - # Improve Error message. Point to parse_host_spec examples - raise OrchestratorValidationError("Mons need a placement spec. (num, host, network, name(opt))") - placement = PlacementSpec(label=label, count=num, hosts=hosts) + def _daemon_add_mon(self, placement=None): + placement = PlacementSpec.from_strings(placement) placement.validate() spec = ServiceSpec('mon', placement=placement) @@ -518,13 +513,13 @@ Usage: @_cli_write_command( 'orch daemon add mgr', - "name=num,type=CephInt,req=false " - "name=hosts,type=CephString,n=N,req=false", + 'name=placement,type=CephString,n=N,req=false', 'Start rbd-mirror daemon(s)') - def _daemon_add_mgr(self, num=None, hosts=None): + def _daemon_add_mgr(self, placement=None): spec = ServiceSpec( 'mgr', - placement=PlacementSpec(hosts=hosts, count=num)) + placement=PlacementSpec.from_strings(placement), + ) completion = self.add_mgr(spec) self._orchestrator_wait([completion]) raise_if_exception(completion) @@ -541,13 +536,13 @@ Usage: @_cli_write_command( 'orch daemon add rbd-mirror', - "name=num,type=CephInt,req=false " - "name=hosts,type=CephString,n=N,req=false", + 'name=placement,type=CephString,n=N,req=false', 'Start rbd-mirror daemon(s)') - def _rbd_mirror_add(self, num=None, hosts=None): + def _rbd_mirror_add(self, placement=None): spec = ServiceSpec( 'rbd-mirror', - placement=PlacementSpec(hosts=hosts, count=num)) + placement=PlacementSpec.from_strings(placement), + ) completion = self.add_rbd_mirror(spec) self._orchestrator_wait([completion]) raise_if_exception(completion) @@ -555,14 +550,14 @@ Usage: @_cli_write_command( 'orch daemon add mds', - "name=fs_name,type=CephString " - "name=num,type=CephInt,req=false " - "name=hosts,type=CephString,n=N,req=false", + 'name=fs_name,type=CephString ' + 'name=placement,type=CephString,n=N,req=false', 'Start MDS daemon(s)') - def _mds_add(self, fs_name, num=None, hosts=None): + def _mds_add(self, fs_name, placement=None): spec = ServiceSpec( 'mds', fs_name, - placement=PlacementSpec(hosts=hosts, count=num)) + placement=PlacementSpec.from_strings(placement), + ) completion = self.add_mds(spec) self._orchestrator_wait([completion]) raise_if_exception(completion) @@ -572,14 +567,13 @@ Usage: 'orch daemon add rgw', 'name=realm_name,type=CephString ' 'name=zone_name,type=CephString ' - 'name=num,type=CephInt,req=false ' - "name=hosts,type=CephString,n=N,req=false", + 'name=placement,type=CephString,n=N,req=false', 'Start RGW daemon(s)') - def _rgw_add(self, realm_name, zone_name, num=1, hosts=None, inbuf=None): + def _rgw_add(self, realm_name, zone_name, placement=None, inbuf=None): usage = """ Usage: - ceph orch rgw add -i - ceph orch rgw add + ceph orch daemon rgw add -i + ceph orch daemon rgw add """ if inbuf: try: @@ -590,7 +584,8 @@ Usage: rgw_spec = RGWSpec( rgw_realm=realm_name, rgw_zone=zone_name, - placement=PlacementSpec(hosts=hosts, count=num)) + placement=PlacementSpec.from_strings(placement), + ) completion = self.add_rgw(rgw_spec) self._orchestrator_wait([completion]) @@ -602,16 +597,14 @@ Usage: "name=svc_arg,type=CephString " "name=pool,type=CephString " "name=namespace,type=CephString,req=false " - 'name=num,type=CephInt,req=false ' - 'name=hosts,type=CephString,n=N,req=false ' - 'name=label,type=CephString,req=false', + 'name=placement,type=CephString,n=N,req=false', 'Start NFS daemon(s)') - def _nfs_add(self, svc_arg, pool, namespace=None, num=None, label=None, hosts=[]): + def _nfs_add(self, svc_arg, pool, namespace=None, placement=None): spec = NFSServiceSpec( svc_arg, pool=pool, namespace=namespace, - placement=PlacementSpec(label=label, hosts=hosts, count=num), + placement=PlacementSpec.from_strings(placement), ) spec.validate_add() completion = self.add_nfs(spec) @@ -621,15 +614,12 @@ Usage: @_cli_write_command( 'orch daemon add prometheus', - 'name=num,type=CephInt,req=false ' - 'name=hosts,type=CephString,n=N,req=false ' - 'name=label,type=CephString,req=false', + 'name=placement,type=CephString,n=N,req=false', 'Add prometheus daemon(s)') - def _daemon_add_prometheus(self, num=None, label=None, hosts=[]): - # type: (Optional[int], Optional[str], List[str]) -> HandleCommandResult + def _daemon_add_prometheus(self, placement=None): spec = ServiceSpec( 'prometheus', - placement=PlacementSpec(label=label, hosts=hosts, count=num), + placement=PlacementSpec.from_strings(placement), ) completion = self.add_prometheus(spec) self._orchestrator_wait([completion]) @@ -637,15 +627,12 @@ Usage: @_cli_write_command( 'orch daemon add node-exporter', - 'name=num,type=CephInt,req=false ' - 'name=hosts,type=CephString,n=N,req=false ' - 'name=label,type=CephString,req=false', + 'name=placement,type=CephString,n=N,req=false', 'Add node-exporter daemon(s)') - def _daemon_add_node_exporter(self, num=None, label=None, hosts=[]): - # type: (Optional[int], Optional[str], List[str]) -> HandleCommandResult + def _daemon_add_node_exporter(self, placement=None): spec = ServiceSpec( 'node-exporter', - placement=PlacementSpec(label=label, hosts=hosts, count=num), + placement=PlacementSpec.from_strings(placement), ) completion = self.add_node_exporter(spec) self._orchestrator_wait([completion]) @@ -653,15 +640,13 @@ Usage: @_cli_write_command( 'orch daemon add grafana', - 'name=num,type=CephInt,req=false ' - 'name=hosts,type=CephString,n=N,req=false ' - 'name=label,type=CephString,req=false', + 'name=placement,type=CephString,n=N,req=false', 'Add grafana daemon(s)') - def _daemon_add_grafana(self, num=None, label=None, hosts=[]): - # type: (Optional[int], Optional[str], List[str]) -> HandleCommandResult + def _daemon_add_grafana(self, placement=None): + # type: (Optional[List[str]]) -> HandleCommandResult spec = ServiceSpec( 'grafana', - placement=PlacementSpec(label=label, hosts=hosts, count=num), + placement=PlacementSpec.from_strings(placement), ) completion = self.add_grafana(spec) self._orchestrator_wait([completion]) @@ -669,15 +654,13 @@ Usage: @_cli_write_command( 'orch daemon add alertmanager', - 'name=num,type=CephInt,req=false ' - 'name=hosts,type=CephString,n=N,req=false ' - 'name=label,type=CephString,req=false', + 'name=placement,type=CephString,n=N,req=false', 'Add alertmanager daemon(s)') - def _daemon_add_alertmanager(self, num=None, label=None, hosts=[]): - # type: (Optional[int], Optional[str], List[str]) -> HandleCommandResult + def _daemon_add_alertmanager(self, placement=None): + # type: (Optional[List[str]]) -> HandleCommandResult spec = ServiceSpec( 'alertmanager', - placement=PlacementSpec(label=label, hosts=hosts, count=num), + placement=PlacementSpec.from_strings(placement), ) completion = self.add_alertmanager(spec) self._orchestrator_wait([completion]) @@ -746,13 +729,10 @@ Usage: @_cli_write_command( 'orch apply mgr', - "name=num,type=CephInt,req=false " - "name=hosts,type=CephString,n=N,req=false " - "name=label,type=CephString,req=false", + 'name=placement,type=CephString,n=N,req=false', 'Update the size or placement of managers') - def _apply_mgr(self, num=None, hosts=[], label=None): - placement = PlacementSpec( - label=label, count=num, hosts=hosts) + def _apply_mgr(self, placement=None): + placement = PlacementSpec.from_strings(placement) placement.validate() spec = ServiceSpec('mgr', placement=placement) @@ -764,15 +744,10 @@ Usage: @_cli_write_command( 'orch apply mon', - "name=num,type=CephInt,req=false " - "name=hosts,type=CephString,n=N,req=false " - "name=label,type=CephString,req=false", + 'name=placement,type=CephString,n=N,req=false', 'Update the number of monitor instances') - def _apply_mon(self, num=None, hosts=[], label=None): - if not num and not hosts and not label: - # Improve Error message. Point to parse_host_spec examples - raise OrchestratorValidationError("Mons need a placement spec. (num, host, network, name(opt))") - placement = PlacementSpec(label=label, count=num, hosts=hosts) + def _apply_mon(self, placement=None): + placement = PlacementSpec.from_strings(placement) placement.validate() spec = ServiceSpec('mon', placement=placement) @@ -784,13 +759,11 @@ Usage: @_cli_write_command( 'orch apply mds', - "name=fs_name,type=CephString " - "name=num,type=CephInt,req=false " - "name=hosts,type=CephString,n=N,req=false " - "name=label,type=CephString,req=false", + 'name=fs_name,type=CephString ' + 'name=placement,type=CephString,n=N,req=false', 'Update the number of MDS instances for the given fs_name') - def _apply_mds(self, fs_name, num=None, label=None, hosts=[]): - placement = PlacementSpec(label=label, count=num, hosts=hosts) + def _apply_mds(self, fs_name, placement=None): + placement = PlacementSpec.from_strings(placement) placement.validate() spec = ServiceSpec( 'mds', fs_name, @@ -802,14 +775,13 @@ Usage: @_cli_write_command( 'orch apply rbd-mirror', - "name=num,type=CephInt,req=false " - "name=hosts,type=CephString,n=N,req=false " - "name=label,type=CephString,req=false", + 'name=placement,type=CephString,n=N,req=false', 'Update the number of rbd-mirror instances') - def _apply_rbd_mirror(self, num, label=None, hosts=[]): + def _apply_rbd_mirror(self, placement=None): spec = ServiceSpec( 'rbd-mirror', - placement=PlacementSpec(hosts=hosts, count=num, label=label)) + placement=PlacementSpec.from_strings(placement), + ) completion = self.apply_rbd_mirror(spec) self._orchestrator_wait([completion]) raise_if_exception(completion) @@ -819,15 +791,14 @@ Usage: 'orch apply rgw', 'name=realm_name,type=CephString ' 'name=zone_name,type=CephString ' - 'name=num,type=CephInt,req=false ' - 'name=hosts,type=CephString,n=N,req=false ' - 'name=label,type=CephString,req=false', + 'name=placement,type=CephString,n=N,req=false', 'Update the number of RGW instances for the given zone') - def _apply_rgw(self, zone_name, realm_name, num=None, label=None, hosts=[]): + def _apply_rgw(self, zone_name, realm_name, placement=None): spec = RGWSpec( rgw_realm=realm_name, rgw_zone=zone_name, - placement=PlacementSpec(hosts=hosts, label=label, count=num)) + placement=PlacementSpec.from_strings(placement), + ) completion = self.apply_rgw(spec) self._orchestrator_wait([completion]) raise_if_exception(completion) @@ -836,15 +807,12 @@ Usage: @_cli_write_command( 'orch apply nfs', "name=svc_id,type=CephString " - 'name=num,type=CephInt,req=false ' - 'name=hosts,type=CephString,n=N,req=false ' - 'name=label,type=CephString,req=false', + 'name=placement,type=CephString,n=N,req=false', 'Scale an NFS service') - def _apply_nfs(self, svc_id, num=None, label=None, hosts=[]): - # type: (str, Optional[int], Optional[str], List[str]) -> HandleCommandResult + def _apply_nfs(self, svc_id, placement=None): spec = NFSServiceSpec( svc_id, - placement=PlacementSpec(label=label, hosts=hosts, count=num), + placement=PlacementSpec.from_strings(placement), ) completion = self.apply_nfs(spec) self._orchestrator_wait([completion]) @@ -852,15 +820,12 @@ Usage: @_cli_write_command( 'orch apply prometheus', - 'name=num,type=CephInt,req=false ' - 'name=hosts,type=CephString,n=N,req=false ' - 'name=label,type=CephString,req=false', + 'name=placement,type=CephString,n=N,req=false', 'Scale prometheus service') - def _apply_prometheus(self, num=None, label=None, hosts=[]): - # type: (Optional[int], Optional[str], List[str]) -> HandleCommandResult + def _apply_prometheus(self, placement=None): spec = ServiceSpec( 'prometheus', - placement=PlacementSpec(label=label, hosts=hosts, count=num), + placement=PlacementSpec.from_strings(placement), ) completion = self.apply_prometheus(spec) self._orchestrator_wait([completion]) @@ -868,15 +833,12 @@ Usage: @_cli_write_command( 'orch apply node-exporter', - 'name=num,type=CephInt,req=false ' - 'name=hosts,type=CephString,n=N,req=false ' - 'name=label,type=CephString,req=false', + 'name=placement,type=CephString,n=N,req=false', 'Update node_exporter service') - def _apply_node_exporter(self, num=None, label=None, hosts=[]): - # type: (Optional[int], Optional[str], List[str]) -> HandleCommandResult + def _apply_node_exporter(self, placement=None): spec = ServiceSpec( 'node-exporter', - placement=PlacementSpec(label=label, hosts=hosts, count=num), + placement=PlacementSpec.from_strings(placement), ) completion = self.apply_node_exporter(spec) self._orchestrator_wait([completion])