def resize_server(auth_id, novaUrl, server, new_flavor): print 'Resize {0} to flavor {1}'.format(server['name'], new_flavor) actionProps = { "resize": {"flavorRef": new_flavor} } novaUtils.createServerAction(novaUrl, auth_id, server['id'], actionProps)
def live_migrate(auth_id, novaUrl, server, host): actionProps = { "os-migrateLive": { "host": host, "block_migration": False, "disk_over_commit": False } } novaUtils.createServerAction(novaUrl, auth_id, server['id'], actionProps)
def capture_servers_sub(authTokenId, novaUrl, glanceUrl, curr_stopped_servers, cap_name_prefix, timeout=TIMEOUT, sleep_interval=SLEEP_INTERVAL): print('Capturing VM...') image_list = [] for server in curr_stopped_servers: if isinstance(server, svt_tester_base.VmTuple): server = {'id': server.id, 'name': server.name} cap_vsname = cap_name_prefix + server['name'] print 'Cap VS Name=', cap_vsname actionProps = {'createImage': {'name': cap_vsname, 'metadata': {}}} try: print 'Capturing server=', server['name'], server['id'] createServerActionResponse, \ createServerActionResponseBodyJSON = \ novaUtils.createServerAction(novaUrl, authTokenId, server['id'], actionProps) except HttpError, e: print 'HTTP Error: {0}'.format(e.body) continue image_id = '' for header, value in createServerActionResponse.getheaders(): if header == 'location': image_id = value.split('/') image_id = image_id[-1] print 'Captured image id = %s for server %s' % \ (image_id, server['name']) image_list.append({'image_id': image_id, 'server': server})
def migrate_server_1(auth_id, novaUrl, server_dict, host): actionProp = { 'migrate': {"host": host } } responseTuple = novaUtils.createServerAction(novaUrl, auth_id, server_dict['id'], actionProp)
def resize_server_new(auth_id, novaUrl, name, id, vcpu, ram, proc_units, disk): actionProps = { "resize": { "flavor": { "vcpus": vcpu, "ram": ram, "extra_specs": { "powervm:proc_units": proc_units }, "disk": disk } } } print("printing action props") print(actionProps) novaUtils.createServerAction(novaUrl, auth_id, id, actionProps)
def migrate_server(auth_id, novaUrl, server_dict): actionProp = { 'migrate': None } responseTuple = novaUtils.createServerAction(novaUrl, auth_id, server_dict['id'], actionProp) print "response=", responseTuple[0] return responseTuple
def finish_onboard(authid, novaUrl, serverid, os_distro, vm_boot_vol_ids_list, endianness): print("\n Entering the Utils.finish_onboard method....") print(" ]n os_distro is : ", os_distro) print(" \n vm_boot_vol_ids_list is : ", vm_boot_vol_ids_list) print(" \n endianness is : ", endianness) actionProp = { "finishOnboard": { "os_distro": os_distro, "boot_volume_ids": vm_boot_vol_ids_list, "endianness": endianness } } responseTuple = novaUtils.createServerAction(novaUrl, authid, serverid, actionProp) print("response=", responseTuple[0]) return responseTuple
def send_stop_server_request(authTokenId, novaUrl, server): actionProps = {'os-stop': None} response, body = novaUtils.createServerAction(novaUrl, authTokenId, server['id'], actionProps)
def force_delete_server(auth_id, novaUrl, server): actionProp = {"forceDelete": None} novaUtils.createServerAction(novaUrl, auth_id, server['id'], actionProp)
def capture_servers_sub(authTokenId, novaUrl, glanceUrl, curr_stopped_servers, cap_name_prefix, timeout=TIMEOUT, sleep_interval=SLEEP_INTERVAL): print('Capturing VM...') image_list = [] for server in curr_stopped_servers: if isinstance(server, svt_tester_base.VmTuple): server = {'id': server.id, 'name': server.name} cap_vsname = cap_name_prefix + server['name'] print('Cap VS Name=', cap_vsname) actionProps = {'createImage': {'name': cap_vsname, 'metadata': {}}} try: print('Capturing server=', server['name'], server['id']) createServerActionResponse, \ createServerActionResponseBodyJSON = \ novaUtils.createServerAction(novaUrl, authTokenId, server['id'], actionProps) except HttpError as e: print('HTTP Error: {0}'.format(e.body)) continue image_id = '' for header, value in createServerActionResponse.getheaders(): if header == 'location': image_id = value.split('/') image_id = image_id[-1] print('Captured image id = %s for server %s' % \ (image_id, server['name'])) image_list.append({'image_id': image_id, 'server': server}) print('Getting Image state...') runtime = 0 capture_list = [] capture_list.extend(image_list) completed_list = [] sys.stdout.write('Checking for active state for %d images ' % \ len(image_list)) sys.stdout.flush() while runtime <= timeout and capture_list: success_list = [] failed_list = [] sys.stdout.write('.') sys.stdout.flush() for image in capture_list: try: showImageResponse, showImageResponseBodyJSON = \ glanceUtils.showImage(glanceUrl, authTokenId, image['image_id']) except HttpError as e: print('HTTP Error: {0}'.format(e.body)) os._exit(1) imageState = showImageResponseBodyJSON['status'] if imageState == 'active': success_list.append(image) elif imageState == 'error': failed_list.append(image) for image in failed_list: capture_list.remove(image) for image in success_list: capture_list.remove(image) completed_list.append(image) if capture_list: time.sleep(SLEEP_INTERVAL) runtime = runtime + SLEEP_INTERVAL print('') if runtime > timeout: print('ERROR: All Image captures did not' + \ ' complete within expected timeframe.') print('%d of %d Captures completed.' % (len(completed_list), len(image_list))) print('') return completed_list