def __create_metadata_to_nodes(deployment_id, mac_table, deployment_parameters): tor_gateway = deployment_parameters['tor_gateway'] tor_netmask = deployment_parameters['tor_netmask'] tor_dns = deployment_parameters['tor_dns'] servers_map = {} nodes, status_info = razor("/api/collections/nodes", "get") nodes = nodes["items"] for node in nodes: node_name = node["name"] one_node_info, status_code = razor("/api/collections/nodes/%s" % (node_name), "get") servers_map[mac_to_id(one_node_info["facts"]["macaddress"])] = node_name for to_deploy_node in mac_table: node_name = servers_map[to_deploy_node["server_id"]] id_mac = to_deploy_node["server_id"].upper() host_name, status = node_assigner("/deployment/%s/register" % deployment_id, "post", pay_load = {"mac_address":id_mac}) nics = to_deploy_node["nics"] ip_dic = {} for nic in nics: ip, status = node_assigner("/deployment/%s/ippool/allocate" % deployment_id, "post", pay_load = {"mac_address":nic['mac_address']}) ip_dic[nic['mac_address']] = ip['ip'] headers = {'content-type': 'application/json'} metadata = {'deployment_name': deployment_id, 'id_macaddress': id_mac, 'to_allocate_hostname': host_name["role"], 'to_allocate_ip': ip_dic, 'tor_netmask': tor_netmask, 'tor_gateway': tor_gateway, 'tor_dns': tor_dns} for key in metadata: request_data = {"node": node_name, "key": key, "value": metadata[key]} razor("/api/commands/update-node-metadata", "post", pay_load=json.dumps(request_data), headers=headers)
def del_openstack_deployment(deployment_id): delete_task(deployment_id) headers = {'content-type': 'application/json'} command = {} command["name"] = "openstack-" + deployment_id + "-policy" text, status_code = razor("/api/commands/delete-policy", "post", pay_load=json.dumps(command), headers=headers) command = {} command["name"] = "openstack-" + deployment_id + "-tag" text, status_code = razor("/api/commands/delete-tag", "post", pay_load=json.dumps(command), headers=headers) text, status_code = node_assigner("/deployment/%s" % deployment_id, "delete") text, status_code = process_controller("/openstack/deployments/%s" % deployment_id, "delete") nodes, status_info = razor("/api/collections/nodes", "get") nodes = nodes["items"] for node in nodes: node_name = node["name"] one_node_info, status_code = razor("/api/collections/nodes/%s" % (node_name), "get") if "metadata" in one_node_info and "deployment_name" in one_node_info["metadata"].keys() and one_node_info["metadata"]["deployment_name"] == deployment_id: command = {} command["node"] = one_node_info["name"] command["key"] = "deployment_name" text, status_code = razor("/api/commands/remove-node-metadata", "post", pay_load=json.dumps(command), headers=headers) command["key"] = "id_macaddress" text, status_code = razor("/api/commands/remove-node-metadata", "post", pay_load=json.dumps(command), headers=headers) command["key"] = "to_allocate_hostname" text, status_code = razor("/api/commands/remove-node-metadata", "post", pay_load=json.dumps(command), headers=headers) command["key"] = "to_allocate_ip" text, status_code = razor("/api/commands/remove-node-metadata", "post", pay_load=json.dumps(command), headers=headers) return "Deleted"
def __create_node_assigner_roles(task_id, deployment_id, mac_table): logger.info("Creating Roles in Role-Assigner: %s" % deployment_id) roles = set() for one_row in mac_table: roles.add(one_row["role"]) all_successful = True for role in roles: logger.debug("Adding role to Role-Assigner: %s" % role) text, status_code = node_assigner("/deployment/%s/roles" % deployment_id, "post", pay_load = {"role_name":role}) all_successful = all_successful and status_code == 201 __log_status(task_id, status[2], all_successful)
def __apply_ips(task_id, deployment_id, mac_table): #Now disabled is_sucessful = True for node in mac_table: command = {} command["start_ip"] = node["allocated_ip"] command["end_ip"] = node["allocated_ip"] text, status_code = node_assigner("/deployment/%s/ippool" % deployment_id, "post", pay_load=command) if status_code < 200 or status_code > 299: is_sucessful = False break command = {} command["mac_address"] = node["mac_address"] command["ip_address"] = node["allocated_ip"] text, status_code = node_assigner("/deployment/%s/ippool/link" % deployment_id, "post", pay_load=command) if status_code < 200 or status_code > 299: is_sucessful = False break __log_status(task_id, status[2], is_sucessful)
def __append_nodes_to_node_assigner_deployment(task_id, deployment_id, mac_table): logger.info("Append in Role-Assigner: %s" % deployment_id) text, status_code = node_assigner("/deployment/%s/mac-table" % deployment_id, "put", pay_load=json.dumps({'mac_table': mac_table})) __log_status(task_id, status[3], status_code) return text
def __create_node_assigner_deployment(task_id, deployment_id): logger.info("Creating deployment in Role-Assigner: %s" % deployment_id) text, status_code = node_assigner("/deployment", "post", pay_load = {"deployment_name":deployment_id, "strategy":"mac_bind"}) __log_status(task_id, status[1], status_code) return text
def __create_mac_table(task_id, deployment_id, mac_table): logger.info("Creating MAC Table: %s" % deployment_id) text, status_code = node_assigner("/deployment/%s/mac-table" % deployment_id, "post", pay_load=json.dumps({'mac_table': mac_table})) __log_status(task_id, status[3], status_code)