def POST(self, Compute): creds = json.loads(web.data()) name = creds.get('Compute').get('name') tenant_id = creds.get('Compute').get('tenant_id') username = creds.get('Compute').get('username') password = creds.get('Compute').get('password') count = creds.get('Compute').get('count') os = creds.get('Compute').get('image') flavor = creds.get('Compute').get('flavor') send_auth = creds.get('Compute').get('auth_key') token = creds.get('Compute').get('token') if token is None: conn = driver.libcloud_driver_token(None, None, tenant_id, token) else: conn = driver.libcloud_driver_password(username, password, tenant_id) compute_nodes = compute.ComputeNodes(conn) image_nodes = image.ComputeImages(conn) nodes = compute_nodes.get_nodes() imageList = image_nodes.get_images() sizeList = image_nodes.get_sizes() send_size = image_nodes.get_size(flavor) send_image = image_nodes.get_image(os) i = 0 w = worker.WorkerQueue() w.start() while i < int(count): w.send(compute_nodes.create_node(name, send_image, send_size, send_auth)) i += 1 w.close()
def PUT(self, Compute): creds = json.loads(web.data()) node_search = creds.get('Compute').get('node') tenant_id = creds.get('Compute').get('tenant_id') username = creds.get('Compute').get('username') password = creds.get('Compute').get('password') token = creds.get('Compute').get('token') if token is None: conn = driver.libcloud_driver_token(None, None, tenant_id, token) else: conn = driver.libcloud_driver_password(username, password, tenant_id) compute_nodes = compute.ComputeNodes(conn) nodes = compute_nodes.get_nodes() node = compute_nodes.get_node(node_search) w = worker.WorkerQueue() w.start() i = 0 while i < len(nodes): if node_search == nodes[i].name: w.send(compute_nodes.reboot_node(nodes[i])) elif node_search == nodes[i].uuid: w.send(compute_nodes.reboot_node(nodes[i])) elif node_search in nodes[i].private_ips: w.send(compute_nodes.reboot_node(nodes[i])) elif node_search in nodes[i].public_ips: w.send(compute_nodes.reboot_node(nodes[i])) i += 1 w.close()
def GET(self, tenant_id=''): i=0 nodes = [] auth_token = web.ctx.get('environ').get('HTTP_X_AUTH_TOKEN', None) auth_tenant_id = web.ctx.get('environ').get('HTTP_X_AUTH_TENANT_ID', None) conn = driver.libcloud_driver_token(None, None, auth_tenant_id, auth_token) compute_nodes = compute.ComputeNodes(conn) node = compute_nodes.get_nodes() while i < len(node): nodes.append(self.format_node(node[i])) i += 1 if conn is None: return web.unauthorized() body = json.dumps(nodes, indent=4) web.header("Content-Type", "application/json") return body