def restart_server_api(server_id): nodes, status_code = 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 mac_to_id(one_node_info["facts"]["macaddress"]) == server_id: ipmi_host = one_node_info["ipmi_hostname"] ipmi_username = one_node_info["ipmi_username"] ipmi_password = one_node_info["ipmi_password"] output = {} output["server_id"] = server_id output["status"] = str(restart_server(ipmi_host, ipmi_username, ipmi_password)) return json.dumps(output) output = {} output["server_id"] = server_id output["status"] = str(False) return json.dumps(output)
def __restart_servers(task_id, mac_table): servers_map = {} nodes, status_code = razor("/api/collections/nodes", "get") nodes = nodes['items'] is_sucessful = True for node in nodes: node_name = node["name"] one_node_info, status_code = razor("/api/collections/nodes/%s" % (node_name), "get") if one_node_info["ipmi"]: ipmi_infos = {} ipmi_infos["host"] = one_node_info["ipmi_hostname"] ipmi_infos["username"] = one_node_info["ipmi_username"] ipmi_infos["password"] = one_node_info["ipmi_password"] servers_map[mac_to_id(one_node_info["facts"]["macaddress"])] = ipmi_infos for node in mac_table: ipmi_infos = servers_map[node["server_id"]] is_sucessful = is_sucessful and restart_server(ipmi_infos["host"], ipmi_infos["username"], ipmi_infos["password"]) __log_status(task_id, status[6], is_sucessful)
def __restart_server(task_id, node_name): one_node_info, status_code = razor("/api/collections/nodes/%s" % (node_name), "get") if not one_node_info["ipmi"]: logger.error('Node: %s does not have IPMI info, can not be restarted' % node_name) is_sucessful = restart_server(one_node_info["ipmi_hostname"], one_node_info["ipmi_username"], one_node_info["ipmi_password"]) __log_status(task_id, "Restart_Server", is_sucessful)