]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mgr/orch: use PlacementSpec.from_strings() for all CLI commands
authorSage Weil <sage@redhat.com>
Thu, 27 Feb 2020 19:32:24 +0000 (13:32 -0600)
committerSage Weil <sage@redhat.com>
Sun, 1 Mar 2020 20:19:35 +0000 (14:19 -0600)
Signed-off-by: Sage Weil <sage@redhat.com>
src/pybind/mgr/orchestrator/module.py

index d8c85c11dc8e224b817a104ac29e4251f31da69b..6f9dfc11dca3427502ba046210b7896ab9424405 100644 (file)
@@ -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 <json_file>
-  ceph orch rgw add <realm_name> <zone_name>
+  ceph orch daemon rgw add -i <json_file>
+  ceph orch daemon rgw add <realm_name> <zone_name>
         """
         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])