Ejemplo n.º 1
0
def api_node_get_vncinfo(nodeid):
    status = "success"
    answ = {"data": {}}
    try:
        nodeinfo = cloud_api_main.get_node_db_for_output(nodeid)
        if nodeinfo["state"] == "UNKNOWN":
            raise cloud_api_main.NoSuchObjectException("underlying nebula node probably doesn't exist ")
        if cloud_api_main.get_node_state(nodeid, selector="lcm_state") != "RUNNING":
            raise cloud_api_main.WrongStateForActionException("that node isn't running")
        internal = cloud_api_main.info_node_nebula(nodeinfo["internal_id"])
        info = {"host": internal["HISTORY_RECORDS"]["HISTORY"]["HOSTNAME"],
                "port": internal["TEMPLATE"]["GRAPHICS"]["PORT"],
                "password": internal["TEMPLATE"]["GRAPHICS"]["PASSWD"]}

        answ["data"]["vncinfo"] = info
    except (cloud_api_main.PrivilegeException, cloud_api_main.NoSuchObjectException) as e:
        status = "fail"
        answ["message"] = repr(e)
        answ["data"]["description"] = cloud_api_main.get_user_problem_msg()
    except cloud_api_main.GeneralAPIError as e:
        status = "fail"
        answ["message"] = repr(e)
        answ["data"]["description"] =  cloud_api_main.get_user_problem_msg()
    except Exception as e:
        status = "error"
        answ["message"] = repr(e)
        answ["data"]["description"] = cloud_api_main.get_user_problem_msg()

    answ["status"] = status

    return make_response(jsonify(answ))
Ejemplo n.º 2
0
def api_node_get(nodeid):
    status = "success"
    answ = {"data": {}}
    try:
        data = cloud_api_main.get_node_db_for_output(nodeid)
        answ["data"]["node"] = data
        answ["data"]["node"]["tags"] = cloud_api_main.get_tags_node(nodeid)
    except cloud_api_main.PrivilegeException as e:
        status = "fail"
        cloud_api_main.debug_log_print(e)
        answ["message"] = repr(e)
        answ["data"]["description"] = cloud_api_main.tdata.extended_error_log + " you are neither owner nor admin of this node"
    except cloud_api_main.NoSuchObjectException as e:
        status = "fail"
        cloud_api_main.debug_log_print(e)
        answ["message"] = repr(e)
        answ["data"]["description"] = cloud_api_main.tdata.extended_error_log + " no such node id exists"
    except BaseException as e:
        status = "error"
        cloud_api_main.debug_log_print(e)
        answ["message"] = repr(e)
        answ["data"]["description"] = cloud_api_main.tdata.extended_error_log

    answ["status"] = status

    return make_response(jsonify(answ))
Ejemplo n.º 3
0
def api_node_get(nodeid):
    status = "success"
    answ = {"data": {}}
    try:
        data = cloud_api_main.get_node_db_for_output(nodeid)
        answ["data"]["node"] = data
        answ["data"]["node"]["tags"] = cloud_api_main.get_tags_node(nodeid)
    except cloud_api_main.PrivilegeException as e:
        status = "fail"
        cloud_api_main.debug_log_print(e)
        answ["message"] = repr(e)
        answ["data"][
            "description"] = cloud_api_main.tdata.extended_error_log + " you are neither owner nor admin of this node"
    except cloud_api_main.NoSuchObjectException as e:
        status = "fail"
        cloud_api_main.debug_log_print(e)
        answ["message"] = repr(e)
        answ["data"][
            "description"] = cloud_api_main.tdata.extended_error_log + " no such node id exists"
    except BaseException as e:
        status = "error"
        cloud_api_main.debug_log_print(e)
        answ["message"] = repr(e)
        answ["data"]["description"] = cloud_api_main.tdata.extended_error_log

    answ["status"] = status

    return make_response(jsonify(answ))
Ejemplo n.º 4
0
def api_node_create():
    status = "success"
    answ = {"data": {}}
    cloud_api_main.debug_log_print("Create node", request.data)

    try:
        reqdata = json.loads(request.data)
        templname = reqdata.pop("templatename")
        dbid = cloud_api_main.create_node(templname, **reqdata)
        answ["data"]["node"] = cloud_api_main.get_node_db_for_output(dbid)
    except cloud_api_main.GeneralAPIError as e:
        status = "fail"
        answ["message"] = repr(e)
        answ["data"]["description"] =  cloud_api_main.get_user_problem_msg()
    except Exception as e:
        status = "error"
        answ["message"] = repr(e)
        answ["data"]["description"] = cloud_api_main.get_user_problem_msg()

    answ["status"] = status

    return make_response(jsonify(answ))
Ejemplo n.º 5
0
def api_node_create():
    status = "success"
    answ = {"data": {}}
    cloud_api_main.debug_log_print("Create node", request.data)

    try:
        reqdata = json.loads(request.data)
        templname = reqdata.pop("templatename")
        dbid = cloud_api_main.create_node(templname, **reqdata)
        answ["data"]["node"] = cloud_api_main.get_node_db_for_output(dbid)
    except cloud_api_main.GeneralAPIError as e:
        status = "fail"
        answ["message"] = repr(e)
        answ["data"]["description"] = cloud_api_main.get_user_problem_msg()
    except Exception as e:
        status = "error"
        answ["message"] = repr(e)
        answ["data"]["description"] = cloud_api_main.get_user_problem_msg()

    answ["status"] = status

    return make_response(jsonify(answ))
Ejemplo n.º 6
0
def api_node_get_vncinfo(nodeid):
    status = "success"
    answ = {"data": {}}
    try:
        nodeinfo = cloud_api_main.get_node_db_for_output(nodeid)
        if nodeinfo["state"] == "UNKNOWN":
            raise cloud_api_main.NoSuchObjectException(
                "underlying nebula node probably doesn't exist ")
        if cloud_api_main.get_node_state(nodeid,
                                         selector="lcm_state") != "RUNNING":
            raise cloud_api_main.WrongStateForActionException(
                "that node isn't running")
        internal = cloud_api_main.info_node_nebula(nodeinfo["internal_id"])
        info = {
            "host": internal["HISTORY_RECORDS"]["HISTORY"]["HOSTNAME"],
            "port": internal["TEMPLATE"]["GRAPHICS"]["PORT"],
            "password": internal["TEMPLATE"]["GRAPHICS"]["PASSWD"]
        }

        answ["data"]["vncinfo"] = info
    except (cloud_api_main.PrivilegeException,
            cloud_api_main.NoSuchObjectException) as e:
        status = "fail"
        answ["message"] = repr(e)
        answ["data"]["description"] = cloud_api_main.get_user_problem_msg()
    except cloud_api_main.GeneralAPIError as e:
        status = "fail"
        answ["message"] = repr(e)
        answ["data"]["description"] = cloud_api_main.get_user_problem_msg()
    except Exception as e:
        status = "error"
        answ["message"] = repr(e)
        answ["data"]["description"] = cloud_api_main.get_user_problem_msg()

    answ["status"] = status

    return make_response(jsonify(answ))