Planet Ceph

Aggregated news from external sources

March 13, 2019

Run ceph CLI commands from Python

“mon_command” is a way to run ceph CLI commands via the librados Python API.

Which commands can I run?

https://github.com/ceph/ceph/blob/master/src/mon/MonCommands.h
https://github.com/ceph/ceph/blob/master/src/mgr/MgrCommands.h

Do you have a sample Python script?

#!/usr/bin/python3
import json
import rados

def run_command(cluster_handle, cmd):
return cluster_handle.mon_command(json.dumps(cmd), b'', timeout=5)

cluster = rados.Rados(conffile='/etc/ceph/ceph.conf')
cluster.connect()
print(run_command(cluster, {"prefix": "osd safe-to-destroy", "ids": ["2"], "format": "json"}))
print(run_command(cluster, {"prefix": "osd ok-to-stop", "ids": ["2"], "format": "json"}))

Source: Nathan Cutler (Run ceph CLI commands from Python)

Careers