mirror of
https://github.com/ceph/ceph
synced 2025-02-20 17:37:29 +00:00
Merge PR #33851 into master
* refs/pull/33851/head: mgr/orch: allow list daemons by service_name Reviewed-by: Sebastian Wagner <swagner@suse.com>
This commit is contained in:
commit
8eb550c8dd
@ -1908,7 +1908,7 @@ class CephadmOrchestrator(orchestrator.Orchestrator, MgrModule):
|
||||
return [s for n, s in sm.items()]
|
||||
|
||||
@trivial_completion
|
||||
def list_daemons(self, daemon_type=None, daemon_id=None,
|
||||
def list_daemons(self, service_name=None, daemon_type=None, daemon_id=None,
|
||||
host=None, refresh=False):
|
||||
if refresh:
|
||||
# ugly sync path, FIXME someday perhaps?
|
||||
@ -1922,9 +1922,11 @@ class CephadmOrchestrator(orchestrator.Orchestrator, MgrModule):
|
||||
if host and h != host:
|
||||
continue
|
||||
for name, dd in dm.items():
|
||||
if daemon_type and daemon_type != dd.daemon_type:
|
||||
if daemon_type is not None and daemon_type != dd.daemon_type:
|
||||
continue
|
||||
if daemon_id and daemon_id != dd.daemon_id:
|
||||
if daemon_id is not None and daemon_id != dd.daemon_id:
|
||||
continue
|
||||
if service_name is not None and service_name != dd.service_name():
|
||||
continue
|
||||
result.append(dd)
|
||||
return result
|
||||
|
@ -837,8 +837,8 @@ class Orchestrator(object):
|
||||
"""
|
||||
raise NotImplementedError()
|
||||
|
||||
def list_daemons(self, daemon_type=None, daemon_id=None, host=None, refresh=False):
|
||||
# type: (Optional[str], Optional[str], Optional[str], bool) -> Completion
|
||||
def list_daemons(self, service_name=None, daemon_type=None, daemon_id=None, host=None, refresh=False):
|
||||
# type: (Optional[str], Optional[str], Optional[str], Optional[str], bool) -> Completion
|
||||
"""
|
||||
Describe a daemon (of any kind) that is already configured in
|
||||
the orchestrator.
|
||||
|
@ -377,13 +377,15 @@ class OrchestratorCli(OrchestratorClientMixin, MgrModule):
|
||||
@_cli_read_command(
|
||||
'orch ps',
|
||||
"name=hostname,type=CephString,req=false "
|
||||
"name=service_name,type=CephString,req=false "
|
||||
"name=daemon_type,type=CephString,req=false "
|
||||
"name=daemon_id,type=CephString,req=false "
|
||||
"name=format,type=CephChoices,strings=json|plain,req=false "
|
||||
"name=refresh,type=CephBool,req=false",
|
||||
'List daemons known to orchestrator')
|
||||
def _list_daemons(self, hostname=None, daemon_type=None, daemon_id=None, format='plain', refresh=False):
|
||||
completion = self.list_daemons(daemon_type,
|
||||
def _list_daemons(self, hostname=None, service_name=None, daemon_type=None, daemon_id=None, format='plain', refresh=False):
|
||||
completion = self.list_daemons(service_name,
|
||||
daemon_type,
|
||||
daemon_id=daemon_id,
|
||||
host=hostname,
|
||||
refresh=refresh)
|
||||
|
@ -358,11 +358,11 @@ class RookOrchestrator(MgrModule, orchestrator.Orchestrator):
|
||||
return [v for k, v in spec.items()]
|
||||
|
||||
@deferred_read
|
||||
def list_daemons(self, daemon_type=None, daemon_id=None, host=None,
|
||||
def list_daemons(self, service_name=None, daemon_type=None, daemon_id=None, host=None,
|
||||
refresh=False):
|
||||
return self._list_daemons(daemon_type, daemon_id, host, refresh)
|
||||
|
||||
def _list_daemons(self, daemon_type=None, daemon_id=None, host=None,
|
||||
def _list_daemons(self, service_name=None, daemon_type=None, daemon_id=None, host=None,
|
||||
refresh=False):
|
||||
pods = self.rook_cluster.describe_pods(daemon_type, daemon_id, host)
|
||||
self.log.debug('pods %s' % pods)
|
||||
@ -390,8 +390,9 @@ class RookOrchestrator(MgrModule, orchestrator.Orchestrator):
|
||||
# Unknown type -- skip it
|
||||
continue
|
||||
|
||||
if service_name is not None and service_name != sd.service_name():
|
||||
continue
|
||||
sd.container_image_name = p['container_image_name']
|
||||
|
||||
sd.created = p['created']
|
||||
sd.last_configured = p['created']
|
||||
sd.last_deployed = p['created']
|
||||
|
@ -220,7 +220,7 @@ class TestOrchestrator(MgrModule, orchestrator.Orchestrator):
|
||||
return list(filter(_filter_func, services))
|
||||
|
||||
@deferred_read
|
||||
def list_daemons(self, daemon_type=None, daemon_id=None, host=None, refresh=False):
|
||||
def list_daemons(self, service_name=None, daemon_type=None, daemon_id=None, host=None, refresh=False):
|
||||
"""
|
||||
There is no guarantee which daemons are returned by describe_service, except that
|
||||
it returns the mgr we're running in.
|
||||
@ -232,6 +232,8 @@ class TestOrchestrator(MgrModule, orchestrator.Orchestrator):
|
||||
daemons = self._daemons if self._daemons else self._get_ceph_daemons()
|
||||
|
||||
def _filter_func(d):
|
||||
if service_name is not None and service_name != d.service_name():
|
||||
return False
|
||||
if daemon_type is not None and daemon_type != d.daemon_type:
|
||||
return False
|
||||
if daemon_id is not None and daemon_id != d.daemon_id:
|
||||
|
Loading…
Reference in New Issue
Block a user