Esempio n. 1
0
def api_node_tags_add(nodeid):
    status = "success"
    answ = {"data": {}}
    cloud_api_main.debug_log_print("Add tags", request.data)

    try:
        cloud_api_main.check_user_privilege_node(nodeid)
        added = []
        reqdata = json.loads(request.data)
        tags = reqdata["tags"]
        alltags = cloud_api_main.get_tags()
        if isinstance(tags, basestring):
            tags = [tags]
        tags = set(tags)
        for t in tags:
            if t not in alltags:
                cloud_api_main.create_tag(t)
            cloud_api_main.add_tag_node(t, nodeid)
        answ["data"]["tags"] = list(tags)
    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 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))
Esempio n. 2
0
def api_node_tags_add(nodeid):
    status = "success"
    answ = {"data": {}}
    cloud_api_main.debug_log_print("Add tags", request.data)

    try:
        cloud_api_main.check_user_privilege_node(nodeid)
        added = []
        reqdata = json.loads(request.data)
        tags = reqdata["tags"]
        alltags = cloud_api_main.get_tags()
        if isinstance(tags, basestring):
            tags = [tags]
        tags = set(tags)
        for t in tags:
            if t not in alltags:
                cloud_api_main.create_tag(t)
            cloud_api_main.add_tag_node(t, nodeid)
        answ["data"]["tags"] = list(tags)
    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 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))
Esempio n. 3
0
def api_tags_list():
    status = "success"
    answ = {"data": {}}

    try:
        data = cloud_api_main.get_tags()
        answ["data"]["tags"] = data
    except BaseException as e:
        status = "error"
        answ["message"] = repr(e)
        answ["data"]["description"] = cloud_api_main.tdata.extended_error_log

    answ["status"] = status

    return make_response(jsonify(answ))
Esempio n. 4
0
def api_tags_list():
    status = "success"
    answ = {"data": {}}

    try:
        data = cloud_api_main.get_tags()
        answ["data"]["tags"] = data
    except BaseException as e:
        status = "error"
        answ["message"] = repr(e)
        answ["data"]["description"] = cloud_api_main.tdata.extended_error_log

    answ["status"] = status

    return make_response(jsonify(answ))
Esempio n. 5
0
def api_node_tags_change(nodeid):
    status = "success"
    answ = {"data": {}}

    try:
        cloud_api_main.debug_log_print("Change tags", request.data)

        cloud_api_main.check_user_privilege_node(nodeid)

        reqdata = json.loads(request.data)
        tags = reqdata["tags"]
        if isinstance(tags, basestring):
            tags = [tags]
        tags = set(tags)
        tags.add(cloud_api_main.tdata.ownertag)

        alltags = cloud_api_main.get_tags()
        currtags = set(cloud_api_main.get_tags_node(nodeid))

        to_remove = currtags.difference(tags).intersection(alltags)
        to_add = tags.difference(currtags)

        for t in to_add:
            if t not in alltags:
                cloud_api_main.create_tag(t)
            cloud_api_main.add_tag_node(t, nodeid)
        cloud_api_main.remove_tag_node(to_remove, nodeid)

        answ["data"]["tags"] = cloud_api_main.get_tags_node(nodeid)
    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 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))
Esempio n. 6
0
def api_node_tags_change(nodeid):
    status = "success"
    answ = {"data": {}}

    try:
        cloud_api_main.debug_log_print("Change tags", request.data)

        cloud_api_main.check_user_privilege_node(nodeid)

        reqdata = json.loads(request.data)
        tags = reqdata["tags"]
        if isinstance(tags, basestring):
            tags = [tags]
        tags = set(tags)
        tags.add(cloud_api_main.tdata.ownertag)

        alltags = cloud_api_main.get_tags()
        currtags = set(cloud_api_main.get_tags_node(nodeid))

        to_remove = currtags.difference(tags).intersection(alltags)
        to_add = tags.difference(currtags)

        for t in to_add:
            if t not in alltags:
                cloud_api_main.create_tag(t)
            cloud_api_main.add_tag_node(t, nodeid)
        cloud_api_main.remove_tag_node(to_remove, nodeid)

        answ["data"]["tags"] = cloud_api_main.get_tags_node(nodeid)
    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 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))