Add OSD add and OSD remove commands

This commit is contained in:
Joshua Boniface 2018-10-28 22:15:25 -04:00
parent 3025772e6d
commit 7f18c99172
2 changed files with 52 additions and 1 deletions

View File

@ -938,6 +938,41 @@ def ceph_osd():
""" """
pass pass
###############################################################################
# pvc ceph osd add
###############################################################################
@click.command(name='add', short_help='Add new OSD.')
@click.argument(
'node'
)
@click.argument(
'device'
)
def ceph_osd_add(node, device):
"""
Add a new Ceph OSD on node NODE with block device DEVICE to the cluster.
"""
zk_conn = pvc_common.startZKConnection(zk_host)
retcode, retmsg = pvc_ceph.add_osd(zk_conn, node, device)
cleanup(retcode, retmsg, zk_conn)
###############################################################################
# pvc ceph osd remove
###############################################################################
@click.command(name='remove', short_help='Remove OSD.')
@click.argument(
'osdid'
)
def ceph_osd_remove(node, device):
"""
Remove a Ceph OSD with ID OSDID from the cluster.
"""
zk_conn = pvc_common.startZKConnection(zk_host)
retcode, retmsg = pvc_ceph.remove_osd(zk_conn, osdid)
cleanup(retcode, retmsg, zk_conn)
############################################################################### ###############################################################################
# pvc ceph pool # pvc ceph pool
############################################################################### ###############################################################################
@ -1077,7 +1112,7 @@ net_acl.add_command(net_acl_add)
net_acl.add_command(net_acl_remove) net_acl.add_command(net_acl_remove)
net_acl.add_command(net_acl_list) net_acl.add_command(net_acl_list)
#ceph_osd.add_command(ceph_osd_add) ceph_osd.add_command(ceph_osd_add)
#ceph_osd.add_command(ceph_osd_remove) #ceph_osd.add_command(ceph_osd_remove)
#ceph_osd.add_command(ceph_osd_in) #ceph_osd.add_command(ceph_osd_in)
#ceph_osd.add_command(ceph_osd_out) #ceph_osd.add_command(ceph_osd_out)

View File

@ -53,3 +53,19 @@ def get_status(zk_conn):
click.echo(status_data) click.echo(status_data)
click.echo('') click.echo('')
return True, '' return True, ''
def add_osd(zk_conn, node, device):
if not common.verifyNode(zk_conn, node):
return False, 'ERROR: No node named "{}" is present in the cluster.'.format(node)
# Tell the cluster to create a new OSD for the host
new_osd_string = 'new {},{}'.format(node, device)
zkhandler.writedata(zk_conn, {'/ceph/osd_cmd': new_osd_string})
click.echo('Created new OSD with block device {} on node {}.'.format(device, node))
return True, ''
def remove_osd(zk_conn, osd_id):
remove_osd_string = 'remove {}'.format(osd_id)
zkhandler.writedata(zk_conn, {'/ceph/osd_cmd': remove_osd_string})
click.echo('Remove OSD {} from the cluster.'.format(osd_id))
return True, ''