Implement Ceph volume resize and rename in clients

[1/2] Implements #44
This commit is contained in:
2019-07-26 14:24:22 -04:00
parent 6b41f6556c
commit d5f263bdd6
5 changed files with 152 additions and 2 deletions

View File

@ -803,6 +803,40 @@ def ceph_volume_add(pool, name, size):
}
return flask.jsonify(output), retcode
def ceph_volume_resize(pool, name, size):
"""
Resize an existing Ceph RBD volume in the PVC Ceph storage cluster.
"""
zk_conn = pvc_common.startZKConnection(config['coordinators'])
retflag, retdata = pvc_ceph.resize_volume(zk_conn, pool, name, size)
if retflag:
retcode = 200
else:
retcode = 400
pvc_common.stopZKConnection(zk_conn)
output = {
'message': retdata.replace('\"', '\'')
}
return flask.jsonify(output), retcode
def ceph_volume_rename(pool, name, new_name):
"""
Rename a Ceph RBD volume in the PVC Ceph storage cluster.
"""
zk_conn = pvc_common.startZKConnection(config['coordinators'])
retflag, retdata = pvc_ceph.rename_volume(zk_conn, pool, name, new_name)
if retflag:
retcode = 200
else:
retcode = 400
pvc_common.stopZKConnection(zk_conn)
output = {
'message': retdata.replace('\"', '\'')
}
return flask.jsonify(output), retcode
def ceph_volume_remove(pool, name):
"""
Remove a Ceph RBD volume to the PVC Ceph storage cluster.

View File

@ -799,8 +799,19 @@ def api_ceph_volume_element(pool, volume):
return pvcapi.ceph_volume_list(pool, volume)
if flask.request.method == 'PUT':
# TODO: #44
flask.abort(501)
if 'size' in flask.request.values:
size = flask.request.values['size']
if 'name' in flask.request.values:
name = flask.request.values['name']
if size and not name:
return pvcapi.ceph_volume_resize(pool, volume, size)
if name and not size:
return pvcapi.ceph_volume_rename(pool, volume, name)
return flask.jsonify({"message":"ERROR: No name or size specified, or both specified; not changing anything."}), 400
if flask.request.method == 'DELETE':
return pvcapi.ceph_volume_remove(pool, volume)