def baremetal_server_list():
    servers = {}
    server_num = 0
    IPMI_num = 0
    started_num = 0
    shutdown_num = 0
    server_list = []
    mac_ip_dic = scan_macs()
    nodes, status_code = razor("/api/collections/nodes", "get")
    nodes = nodes["items"]
    for node in nodes:
        one_server = {}

        node_name = node["name"]
        logger.info("Querying node: %s" % node_name)

        one_node_info, status_code = razor("/api/collections/nodes/%s" % (node_name), "get")
        one_server["id"] = mac_to_id(one_node_info["facts"]["macaddress"])
        
        one_server["is_ipmi"] = one_node_info.get("ipmi", False)
        if one_server["is_ipmi"]:
            IPMI_num += 1

        one_server['node_name'] = node_name
        one_server["current_role"] = __get_current_role(one_node_info)
        one_server["current_deployment"] = __get_current_deployment(one_node_info)
        one_server["networks"] = __get_node_networks(one_node_info)
        one_server["status"] = __check_if_install(node_name) and check_server_status(one_node_info) or 'Installing'
        one_server["hostname"] = __get_node_hostname(one_node_info)
        one_server["ip_address"] = mac_ip_dic.get(one_node_info["facts"]["macaddress"], 'Unknown')

        if one_server["status"] == "Started":
            started_num += 1
        elif one_server["status"] == "Shutdown":
            shutdown_num += 1

        server_list.append(one_server)
        server_num += 1

    servers["server_num"] = server_num
    servers["IPMI_num"] = IPMI_num
    servers["Started"] = started_num
    servers["shutdown"] = shutdown_num
    servers["server_list"] = server_list

    return json.dumps(servers)
def server_status(server_id):
    nodes, status_code = razor("/api/collections/nodes", "get")
    nodes = nodes["items"]
    for node in nodes:
        one_server = {}

        node_name = node["name"]
        logger.info("Querying node: %s" % 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:
            status = {}
            status["server_id"] = server_id
            status["status"] = check_server_status(one_node_info)
            return json.dumps(status)

    return make_response("Cannot find the server!", 404)