Replace retcodes with 400; implement OSD status

This commit is contained in:
Joshua Boniface 2019-07-26 11:23:19 -04:00
parent 4cf3ade10a
commit 17b463afd4
3 changed files with 84 additions and 54 deletions

View File

@ -41,7 +41,7 @@ def node_list(limit=None):
if retflag:
retcode = 200
else:
retcode = 510
retcode = 400
pvc_common.stopZKConnection(zk_conn)
return flask.jsonify(retdata), retcode
@ -55,7 +55,7 @@ def node_secondary(node):
if retflag:
retcode = 200
else:
retcode = 510
retcode = 400
pvc_common.stopZKConnection(zk_conn)
output = {
@ -72,7 +72,7 @@ def node_primary(node):
if retflag:
retcode = 200
else:
retcode = 510
retcode = 400
pvc_common.stopZKConnection(zk_conn)
output = {
@ -89,7 +89,7 @@ def node_flush(node):
if retflag:
retcode = 200
else:
retcode = 510
retcode = 400
pvc_common.stopZKConnection(zk_conn)
output = {
@ -106,7 +106,7 @@ def node_ready(node):
if retflag:
retcode = 200
else:
retcode = 510
retcode = 400
pvc_common.stopZKConnection(zk_conn)
output = {
@ -139,7 +139,7 @@ def vm_list(node=None, state=None, limit=None, is_fuzzy=True):
'message': 'VM not found.'
}
else:
retcode = 510
retcode = 400
pvc_common.stopZKConnection(zk_conn)
return flask.jsonify(retdata), retcode
@ -160,7 +160,7 @@ def vm_define(name, xml, node, selector):
if retflag:
retcode = 200
else:
retcode = 510
retcode = 400
pvc_common.stopZKConnection(zk_conn)
output = {
@ -177,7 +177,7 @@ def vm_modify(name, restart, xml):
if retflag:
retcode = 200
else:
retcode = 510
retcode = 400
pvc_common.stopZKConnection(zk_conn)
output = {
@ -194,7 +194,7 @@ def vm_undefine(name):
if retflag:
retcode = 200
else:
retcode = 510
retcode = 400
pvc_common.stopZKConnection(zk_conn)
output = {
@ -211,7 +211,7 @@ def vm_remove(name):
if retflag:
retcode = 200
else:
retcode = 510
retcode = 400
pvc_common.stopZKConnection(zk_conn)
output = {
@ -228,7 +228,7 @@ def vm_start(name):
if retflag:
retcode = 200
else:
retcode = 510
retcode = 400
pvc_common.stopZKConnection(zk_conn)
output = {
@ -245,7 +245,7 @@ def vm_restart(name):
if retflag:
retcode = 200
else:
retcode = 510
retcode = 400
pvc_common.stopZKConnection(zk_conn)
output = {
@ -262,7 +262,7 @@ def vm_shutdown(name):
if retflag:
retcode = 200
else:
retcode = 510
retcode = 400
pvc_common.stopZKConnection(zk_conn)
output = {
@ -279,7 +279,7 @@ def vm_stop(name):
if retflag:
retcode = 200
else:
retcode = 510
retcode = 400
pvc_common.stopZKConnection(zk_conn)
output = {
@ -296,7 +296,7 @@ def vm_move(name, node, selector):
if retflag:
retcode = 200
else:
retcode = 510
retcode = 400
pvc_common.stopZKConnection(zk_conn)
output = {
@ -313,7 +313,7 @@ def vm_migrate(name, node, selector, flag_force):
if retflag:
retcode = 200
else:
retcode = 510
retcode = 400
pvc_common.stopZKConnection(zk_conn)
output = {
@ -330,7 +330,7 @@ def vm_unmigrate(name):
if retflag:
retcode = 200
else:
retcode = 510
retcode = 400
pvc_common.stopZKConnection(zk_conn)
output = {
@ -350,7 +350,7 @@ def net_list(limit=None):
if retflag:
retcode = 200
else:
retcode = 510
retcode = 400
pvc_common.stopZKConnection(zk_conn)
return flask.jsonify(retdata), retcode
@ -368,7 +368,7 @@ def net_add(vni, description, nettype, domain,
if retflag:
retcode = 200
else:
retcode = 510
retcode = 400
pvc_common.stopZKConnection(zk_conn)
output = {
@ -390,7 +390,7 @@ def net_modify(vni, description, domain,
if retflag:
retcode = 200
else:
retcode = 510
retcode = 400
pvc_common.stopZKConnection(zk_conn)
output = {
@ -407,7 +407,7 @@ def net_remove(network):
if retflag:
retcode = 200
else:
retcode = 510
retcode = 400
pvc_common.stopZKConnection(zk_conn)
output = {
@ -424,7 +424,7 @@ def net_dhcp_list(network, limit=None, static=False):
if retflag:
retcode = 200
else:
retcode = 510
retcode = 400
pvc_common.stopZKConnection(zk_conn)
return flask.jsonify(retdata), retcode
@ -438,7 +438,7 @@ def net_dhcp_add(network, ipaddress, macaddress, hostname):
if retflag:
retcode = 200
else:
retcode = 510
retcode = 400
pvc_common.stopZKConnection(zk_conn)
output = {
@ -455,7 +455,7 @@ def net_dhcp_remove(network, macaddress):
if retflag:
retcode = 200
else:
retcode = 510
retcode = 400
pvc_common.stopZKConnection(zk_conn)
output = {
@ -472,7 +472,7 @@ def net_acl_list(network, limit=None, direction=None):
if retflag:
retcode = 200
else:
retcode = 510
retcode = 400
pvc_common.stopZKConnection(zk_conn)
output = {
@ -489,7 +489,7 @@ def net_acl_add(network, direction, description, rule, order):
if retflag:
retcode = 200
else:
retcode = 510
retcode = 400
pvc_common.stopZKConnection(zk_conn)
output = {
@ -506,7 +506,7 @@ def net_acl_remove(network, direction, description):
if retflag:
retcode = 200
else:
retcode = 510
retcode = 400
pvc_common.stopZKConnection(zk_conn)
output = {
@ -526,7 +526,7 @@ def ceph_status():
if retflag:
retcode = 200
else:
retcode = 510
retcode = 400
pvc_common.stopZKConnection(zk_conn)
return flask.jsonify(retdata), retcode
@ -540,7 +540,7 @@ def ceph_radosdf():
if retflag:
retcode = 200
else:
retcode = 510
retcode = 400
pvc_common.stopZKConnection(zk_conn)
return flask.jsonify(retdata), retcode
@ -554,11 +554,24 @@ def ceph_osd_list(limit=None):
if retflag:
retcode = 200
else:
retcode = 510
retcode = 400
pvc_common.stopZKConnection(zk_conn)
return flask.jsonify(retdata), retcode
def ceph_osd_state(osd):
zk_conn = pvc_common.startZKConnection(config['coordinators'])
retflag, retdata = pvc_ceph.get_list_osd(zk_conn, osd)
if retflag:
retcode = 200
else:
retcode = 400
in_state = retdata['stats']['in']
up_state = retdata['stats']['up']
return flask.jsonify([{ "id": osd, "in": in_state, "up": up_state }]), retcode
def ceph_osd_add(node, device, weight):
"""
Add a Ceph OSD to the PVC Ceph storage cluster.
@ -568,7 +581,7 @@ def ceph_osd_add(node, device, weight):
if retflag:
retcode = 200
else:
retcode = 510
retcode = 400
pvc_common.stopZKConnection(zk_conn)
output = {
@ -585,7 +598,7 @@ def ceph_osd_remove(osd_id):
if retflag:
retcode = 200
else:
retcode = 510
retcode = 400
pvc_common.stopZKConnection(zk_conn)
output = {
@ -602,7 +615,7 @@ def ceph_osd_in(osd_id):
if retflag:
retcode = 200
else:
retcode = 510
retcode = 400
pvc_common.stopZKConnection(zk_conn)
output = {
@ -619,7 +632,7 @@ def ceph_osd_out(osd_id):
if retflag:
retcode = 200
else:
retcode = 510
retcode = 400
pvc_common.stopZKConnection(zk_conn)
output = {
@ -636,7 +649,7 @@ def ceph_osd_set(option):
if retflag:
retcode = 200
else:
retcode = 510
retcode = 400
pvc_common.stopZKConnection(zk_conn)
output = {
@ -653,7 +666,7 @@ def ceph_osd_unset(option):
if retflag:
retcode = 200
else:
retcode = 510
retcode = 400
pvc_common.stopZKConnection(zk_conn)
output = {
@ -670,7 +683,7 @@ def ceph_pool_list(limit=None):
if retflag:
retcode = 200
else:
retcode = 510
retcode = 400
pvc_common.stopZKConnection(zk_conn)
return flask.jsonify(retdata), retcode
@ -684,7 +697,7 @@ def ceph_pool_add(name, pgs):
if retflag:
retcode = 200
else:
retcode = 510
retcode = 400
pvc_common.stopZKConnection(zk_conn)
output = {
@ -701,7 +714,7 @@ def ceph_pool_remove(name):
if retflag:
retcode = 200
else:
retcode = 510
retcode = 400
pvc_common.stopZKConnection(zk_conn)
output = {
@ -718,7 +731,7 @@ def ceph_volume_list(pool=None, limit=None):
if retflag:
retcode = 200
else:
retcode = 510
retcode = 400
pvc_common.stopZKConnection(zk_conn)
return flask.jsonify(retdata), retcode
@ -732,7 +745,7 @@ def ceph_volume_add(pool, name, size):
if retflag:
retcode = 200
else:
retcode = 510
retcode = 400
pvc_common.stopZKConnection(zk_conn)
output = {
@ -749,7 +762,7 @@ def ceph_volume_remove(pool, name):
if retflag:
retcode = 200
else:
retcode = 510
retcode = 400
pvc_common.stopZKConnection(zk_conn)
output = {
@ -766,7 +779,7 @@ def ceph_volume_snapshot_list(pool=None, volume=None, limit=None):
if retflag:
retcode = 200
else:
retcode = 510
retcode = 400
pvc_common.stopZKConnection(zk_conn)
return flask.jsonify(retdata), retcode
@ -781,7 +794,7 @@ def ceph_volume_snapshot_add(pool, volume, name):
if retflag:
retcode = 200
else:
retcode = 510
retcode = 400
pvc_common.stopZKConnection(zk_conn)
output = {
@ -798,7 +811,7 @@ def ceph_volume_snapshot_remove(pool, volume, name):
if retflag:
retcode = 200
else:
retcode = 510
retcode = 400
pvc_common.stopZKConnection(zk_conn)
output = {

View File

@ -622,12 +622,9 @@ def api_ceph_status():
def api_ceph_radosdf():
return pvcapi.ceph_radosdf()
@api.route('/api/v1/storage/ceph/cluster-option', methods=['GET', 'POST'])
@api.route('/api/v1/storage/ceph/cluster-option', methods=['POST'])
@authenticator
def api_ceph_cluster_option():
if flask.request.method == 'GET':
pass
if flask.request.method == 'POST':
# Get action
if 'action' in flask.request.values:
@ -698,7 +695,7 @@ def api_ceph_osd_element(osd):
@authenticator
def api_ceph_osd_state(osd):
if flask.request.method == 'GET':
pass
return pvcapi.ceph_osd_state(osd)
if flask.request.method == 'POST':
if 'state' in flask.request.values:
@ -794,13 +791,17 @@ def api_ceph_volume_root():
return pvcapi.ceph_volume_add(pool, volume, size)
@api.route('/api/v1/storage/ceph/volume/<pool>/<volume>', methods=['GET', 'DELETE'])
@api.route('/api/v1/storage/ceph/volume/<pool>/<volume>', methods=['GET', 'PUT', 'DELETE'])
@authenticator
def api_ceph_volume_element(pool, volume):
if flask.request.method == 'GET':
# Same as specifying /volume?limit=VOLUME
return pvcapi.ceph_volume_list(pool, volume)
if flask.request.method == 'PUT':
# TODO: #44
flask.abort(501)
if flask.request.method == 'DELETE':
return pvcapi.ceph_volume_remove(pool, volume)
@ -850,13 +851,17 @@ def api_ceph_volume_snapshot_root():
return pvcapi.ceph_volume_snapshot_add(pool, volume, snapshot)
@api.route('/api/v1/storage/ceph/volume/snapshot/<pool>/<volume>/<snapshot>', methods=['GET', 'DELETE'])
@api.route('/api/v1/storage/ceph/volume/snapshot/<pool>/<volume>/<snapshot>', methods=['GET', 'PUT', 'DELETE'])
@authenticator
def api_ceph_volume_snapshot_element(pool, volume, snapshot):
if flask.request.method == 'GET':
# Same as specifying /snapshot?limit=VOLUME
return pvcapi.ceph_volume_snapshot_list(pool, volume, snapshot)
if flask.request.method == 'PUT':
# TODO: #44
flask.abort(501)
if flask.request.method == 'DELETE':
return pvcapi.ceph_volume_snapshot_remove(pool, volume, snapshot)

View File

@ -386,6 +386,8 @@ Return a JSON document containing information about the current Ceph cluster sta
#### `/api/v1/storage/ceph/status`
* Methods: `GET`
###### `GET`
* Mandatory values: N/A
* Optional values: N/A
@ -393,13 +395,17 @@ This endpoint is an alias for `/api/v1/storage/ceph`.
#### `/api/v1/storage/ceph/df`
* Methods: `GET`
###### `GET`
* Mandatory values: N/A
* Optional values: N/A
Return a JSON document containing information about the current Ceph cluster utilization. The JSON element `ceph_data` contains the raw output of a `rados df` command.
#### `/api/v1/storage/ceph/cluster-option`
* Methods: `GET`, `POST`
* Methods: `POST`
###### `POST`
* Mandatory values: `action`, `option`
* Optional values: N/A
@ -504,7 +510,7 @@ Return a JSON document containing information about all Ceph RBD volumes in the
Add a new Ceph RBD volume `<volume>` to Ceph RBD pool `<pool>`. `size` must be a valid size, in bytes or a single-character metric prefix of bytes, e.g. `1073741824` (1GB), `4096M`, or `20G`.
#### `/api/v1/storage/ceph/volume/<pool>/<volume>`
* Methods: `GET`, `DELETE`
* Methods: `GET`, `PUT`, `DELETE`
###### `GET`
* Mandatory values: N/A
@ -512,6 +518,12 @@ Add a new Ceph RBD volume `<volume>` to Ceph RBD pool `<pool>`. `size` must be a
Return a JSON document containing information about Ceph RBD volume `<volume>` in Ceph RBD pool `<pool>`. The output is identical to `/api/v1/storage/ceph/volume?pool=<pool>&limit=<volume>` without fuzzy regex matching.
###### `PUT`
* Mandatory values: N/A
* Optional values: `name`, `size`
Change the configuration of the volume `<volume>`. If `name` is specified, rename the volume to the specified name. If `size` is specified, resize the volume to the specified size (see `POST /api/v1/storage/ceph/volume` for restrictions).
###### `DELETE`
* Mandatory values: N/A
* Optional values: N/A