import errno
import json
+from prettytable import PrettyTable
+
try:
from typing import Dict, List
except ImportError:
orchestrator.raise_if_exception(completion)
services = completion.result
+ def ukn(s):
+ return '<unknown>' if s is None else s
# Sort the list for display
- services.sort(key=lambda s: (s.service_type, s.nodename, s.service_instance))
+ services.sort(key=lambda s: (ukn(s.service_type), ukn(s.nodename), ukn(s.service_instance)))
if len(services) == 0:
return HandleCommandResult(stdout="No services reported")
data = [s.to_json() for s in services]
return HandleCommandResult(stdout=json.dumps(data))
else:
- lines = []
+ table = PrettyTable(
+ ['type', 'id', 'host', 'container', 'version', 'status', 'description'],
+ border=False)
for s in services:
- if s.service == None:
+ if s.service is None:
service_id = s.service_instance
else:
service_id = "{0}.{1}".format(s.service, s.service_instance)
-
- lines.append("{0} {1} {2} {3} {4} {5}".format(
+ status = {
+ -1: 'error',
+ 0: 'stopped',
+ 1: 'running',
+ None: '<unknown>'
+ }[s.status]
+
+ table.add_row((
s.service_type,
service_id,
- s.nodename,
- s.container_id,
- s.version,
- s.rados_config_location))
+ ukn(s.nodename),
+ ukn(s.container_id),
+ ukn(s.version),
+ status,
+ ukn(s.status_desc)))
- return HandleCommandResult(stdout="\n".join(lines))
+ return HandleCommandResult(stdout=table.get_string())
@_write_cli('orchestrator osd create',
"name=svc_arg,type=CephString,req=false",
sd.nodename = p['nodename']
sd.container_id = p['name']
sd.service_type = p['labels']['app'].replace('rook-ceph-', '')
+ status = {
+ 'Pending': -1,
+ 'Running': 1,
+ 'Succeeded': 0,
+ 'Failed': -1,
+ 'Unknown': -1,
+ }[p['phase']]
+ sd.status = status
+ sd.status_desc = p['phase']
if sd.service_type == "osd":
sd.service_instance = "%s" % p['labels']["ceph-osd-id"]
pods_summary.append({
"name": d['metadata']['name'],
"nodename": d['spec']['node_name'],
- "labels": d['metadata']['labels']
+ "labels": d['metadata']['labels'],
+ 'phase': d['status']['phase']
})
return pods_summary