def add_and_verify_roles_on_nodes(self, *args, **kwargs):
        """
        Add Roles and Verify to Nodes
        [Args]
            (list) nodes: name of pcc nodes
            (list) roles: name of roles
        [Returns]
            (dict) Response: Add Node Role response (includes any errors)
        """
        self._load_kwargs(kwargs)
        print("kwargs:-" + str(kwargs))
        banner("PCC.Add and Verify Roles On Nodes")

        conn = BuiltIn().get_variable_value("${PCC_CONN}")

        payload = None
        tmp_id = None

        for node in eval(str(self.nodes)):
            role_ids = []
            response = pcc.get_nodes(conn)
            for data in get_response_data(response):
                self.Id = data['Id']
                self.Host = data['Host']
                if str(data['Name']).lower() == str(node).lower():
                    for role in eval(str(self.roles)):
                        tmp_id = easy.get_node_role_id_by_name(conn, str(role))
                        print("Role-Id:-" + str(role) + "-" + str(tmp_id))
                        role_ids.append(tmp_id)
                    trace("role_ids : {}".format(role_ids))
                    if "scopeId" not in kwargs:
                        trace("Node id is :{}".format(str(data['Id'])))
                        get_node_response = pcc.get_node_by_id(
                            conn, str(data['Id']))
                        trace("get_node_response: {}".format(
                            str(get_node_response)))
                        self.scopeId = int(
                            get_node_response['Result']['Data']["scopeId"])
                    payload = {
                        "Id": self.Id,
                        "Host": self.Host,
                        "roles": role_ids,
                        "scopeId": self.scopeId
                    }
                    print("Payload:-" + str(payload))
                    api_response = pcc.modify_node(conn, payload)
                    print("API Response:-" + str(api_response))
                    if api_response['Result']['status'] == 200:
                        continue
                    else:
                        return api_response

        return "OK"
Пример #2
0
 def get_node_role_id(self, *args, **kwargs):
     """
     Get Node Role Id
     [Args]
         (str) Name
     [Returns]
         (int) Id: Node Role Id if there is one, 
             None: If not found
     """
     self._load_kwargs(kwargs)
     banner("PCC.Get Node Role Id [Name=%s]" % self.Name)
     conn = BuiltIn().get_variable_value("${PCC_CONN}")
     return easy.get_node_role_id_by_name(conn=conn, Name=self.Name)
    def delete_and_verify_roles_on_nodes(self, *args, **kwargs):
        """
        Delete Roles and Verify to Nodes
        [Args]
            (list) nodes: name of pcc nodes
            (list) roles: name of roles
        [Returns]
            (dict) Response: Add Node Role response (includes any errors)
        """
        self._load_kwargs(kwargs)
        print("kwargs:-" + str(kwargs))
        banner("PCC.Delete and Verify Roles On Nodes")

        conn = BuiltIn().get_variable_value("${PCC_CONN}")

        payload = None
        tmp_id = None
        response_code_list = []
        for node in eval(str(self.nodes)):
            print(
                "*****************  On node from user: {} ********************"
                .format(node))
            response = pcc.get_nodes(conn)
            for data in get_response_data(response):
                self.Id = data['Id']
                role_ids = data['roles']
                print(
                    "***************** node from pcc: {} ********************".
                    format(data['Name'].lower()))
                if str(data['Name']).lower() == str(node).lower():

                    print("Role_Ids_On_Node:-" + str(role_ids))
                    if role_ids:
                        for role in eval(str(self.roles)):
                            tmp_id = easy.get_node_role_id_by_name(
                                conn, str(role))
                            print("Role-Id to Remove:-" + str(role) + "-" +
                                  str(tmp_id))
                            if tmp_id in eval(str(role_ids)):
                                role_ids.remove(tmp_id)
                        if "scopeId" not in kwargs:
                            trace("Node id is :{}".format(str(data['Id'])))
                            get_node_response = pcc.get_node_by_id(
                                conn, str(data['Id']))
                            trace("get_node_response: {}".format(
                                str(get_node_response)))
                            self.scopeId = int(
                                get_node_response['Result']['Data']["scopeId"])
                        payload = {
                            "Id": self.Id,
                            "roles": role_ids,
                            "scopeId": self.scopeId
                        }
                        print("Payload:-" + str(payload))
                        api_response = pcc.modify_node(conn, payload)
                        print("API Response:-" + str(api_response))
                        if api_response['StatusCode'] == 200:
                            print("Required roles deleted for {}".format(node))
                            response_code_list.append(
                                str(api_response['StatusCode']))
                            continue
                        else:
                            return api_response
                    else:
                        print("No roles present of node: {}".format(node))
        result = len(response_code_list) > 0 and all(
            elem == "200" for elem in response_code_list)
        if result:
            return "OK"
        else:
            return "Error in removing node roles: {}".format(
                response_code_list)