def api_status_all(): try_ipydb = get_ipydb(request, True) if try_ipydb['status'] != 200: return return_json(None, try_ipydb['error'], try_ipydb['status']) ipydb = try_ipydb['data'] all_vm = ipydb.list() if not all_vm: response = return_json(None, 'Internal Server Error: no data available', 500) # return list of VM objs from DB elif request.method == 'GET': response = return_json(all_vm) # update 'status' of VM objs in DB from nova-pool elif request.method == 'PUT': ncfg = dict(cfg.items('nova-pool')) nova = Nova({'username': ncfg["user"], 'password': ncfg["password"]}, ncfg["tenant"], ncfg["auth_url"]) if nova.error: return return_json(None, nova.error['error'], nova.error['status']) data = nova.server() if data['status'] == 200: updated = [] servers = dict([(x['id'], x) for x in data['data']]) for vm in all_vm: if vm['id'] in servers: new = ipydb.update(vm['id'], status=servers[vm['id']]['status']) else: new = ipydb.update(vm['id'], status='UNKNOWN') updated.append(new) response = return_json(updated) else: response = return_json(all_vm) ipydb.exit() return response
def api_status_all(): try_ipydb = get_ipydb(request, True) if try_ipydb['status'] != 200: return return_json(None, try_ipydb['error'], try_ipydb['status']) ipydb = try_ipydb['data'] all_vm = ipydb.list() if not all_vm: response = return_json(None, 'Internal Server Error: no data available', 500) # return list of VM objs from DB elif request.method == 'GET': response = return_json(all_vm) # update 'status' of VM objs in DB from nova-pool elif request.method == 'PUT': ncfg = dict(cfg.items('nova-pool')) nova = Nova({ 'username': ncfg["user"], 'password': ncfg["password"] }, ncfg["tenant"], ncfg["auth_url"]) if nova.error: return return_json(None, nova.error['error'], nova.error['status']) data = nova.server() if data['status'] == 200: updated = [] servers = dict([(x['id'], x) for x in data['data']]) for vm in all_vm: if vm['id'] in servers: new = ipydb.update(vm['id'], status=servers[vm['id']]['status']) else: new = ipydb.update(vm['id'], status='UNKNOWN') updated.append(new) response = return_json(updated) else: response = return_json(all_vm) ipydb.exit() return response