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"
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)