def Setup(tc): tc.desc = ''' Test : SWM QoS Config test Opcode : Verify ''' #get node names naples_nodes = api.GetNaplesNodes() if len(naples_nodes) == 0: api.Logger.error("No naples node found") return api.types.status.ERROR tc.node_name = naples_nodes[0].Name() tc.cmd_cookies = [] # setup ncsi naples_nodes = api.GetNaplesNodes() if len(naples_nodes) == 0: api.Logger.error("No naples node found") return api.types.status.ERROR test_node = naples_nodes[0] cimc_info = test_node.GetCimcInfo() if not cimc_info: api.Logger.error("CimcInfo is None, exiting") return api.types.status.ERROR try: check_set_ncsi(cimc_info) except: api.Logger.error(traceback.format_exc()) return api.types.status.ERROR return api.types.status.SUCCESS
def Setup(tc): tc.mounted = False tc.RF = None naples_nodes = api.GetNaplesNodes() if len(naples_nodes) == 0: api.Logger.error("No naples node found, exiting...") return api.types.status.ERROR tc.test_node = naples_nodes[0] tc.node_name = tc.test_node.Name() cimc_info = tc.test_node.GetCimcInfo() if not cimc_info: api.Logger.error("CimcInfo is None, exiting") return api.types.status.ERROR tc.ilo_ip = cimc_info.GetIp() tc.ilo_ncsi_ip = cimc_info.GetNcsiIp() try: check_set_ncsi(cimc_info) # Create a Redfish client object tc.RF = get_redfish_obj(cimc_info, mode="ncsi") # Mount vmedia if mount_vmedia(tc.RF, VMEDIA_PATH) != api.types.status.SUCCESS: api.Logger.error("Mounting vmedia unsuccessful") return api.types.status.ERROR api.Logger.info("Vmedia mount success") time.sleep(10) tc.mounted = True except: api.Logger.error(traceback.format_exc()) return api.types.status.ERROR return api.types.status.SUCCESS
def Setup(tc): naples_nodes = api.GetNaplesNodes() if len(naples_nodes) == 0: api.Logger.error("No naples node found") return api.types.status.ERROR tc.test_node = naples_nodes[0] tc.node_name = tc.test_node.Name() cimc_info = tc.test_node.GetCimcInfo() if not cimc_info: api.Logger.error("CimcInfo is None, exiting") return api.types.status.ERROR tc.ilo_ip = cimc_info.GetIp() tc.ilo_ncsi_ip = cimc_info.GetNcsiIp() tc.cimc_info = cimc_info if ping(tc.ilo_ip, 2) == api.types.status.SUCCESS: tc.initial_mode = "dedicated" elif ping(tc.ilo_ncsi_ip, 2) == api.types.status.SUCCESS: tc.initial_mode = "ncsi" else: api.Logger.error('ILO unreachable') return api.types.status.FAILURE # Tune linux settings tuneLinux() workload_pairs = api.GetRemoteWorkloadPairs() if not workload_pairs: api.Logger.error('No workload pairs found') return api.types.status.ERROR tc.wl_pair = workload_pairs[0] return api.types.status.SUCCESS
def Setup(tc): naples_nodes = api.GetNaplesNodes() if len(naples_nodes) == 0: api.Logger.error("No naples node found") return api.types.status.ERROR tc.test_node = naples_nodes[0] tc.node_name = tc.test_node.Name() cimc_info = tc.test_node.GetCimcInfo() if not cimc_info: api.Logger.error("CimcInfo is None, exiting") return api.types.status.ERROR tc.ilo_ip = cimc_info.GetIp() tc.ilo_ncsi_ip = cimc_info.GetNcsiIp() try: check_set_ncsi(cimc_info) except ServerDownOrUnreachableError: api.Logger.error( "{} ILO ip not reachable or does not support RedFish" % tc.ilo_ncsi_ip) return api.types.status.ERROR except: api.Logger.error(traceback.format_exc()) return api.types.status.ERROR return api.types.status.SUCCESS
def Setup(tc): tc.RF = None naples_nodes = api.GetNaplesNodes() if len(naples_nodes) == 0: api.Logger.error("No naples node found, exiting...") return api.types.status.ERROR tc.test_node = naples_nodes[0] tc.node_name = tc.test_node.Name() cimc_info = tc.test_node.GetCimcInfo() if not cimc_info: api.Logger.error("CimcInfo is None, exiting") return api.types.status.ERROR vlan_base = api.Testbed_GetVlanBase() if not vlan_base: api.Logger.error("Base vlan not specified for the testbed") return api.types.status.ERROR vlan_count = api.Testbed_GetVlanCount() if vlan_count == 1: api.Logger.error("Native vlan cannot be used for this test") return api.types.status.ERROR tc.vlan = vlan_base + 1 try: check_set_ncsi(cimc_info) tc.RF = get_redfish_obj(cimc_info, mode="ncsi") except: api.Logger.error(traceback.format_exc()) return api.types.status.ERROR return api.types.status.SUCCESS
def Setup(tc): naples_nodes = api.GetNaplesNodes() if len(naples_nodes) == 0: api.Logger.error("No naples node found") return api.types.status.ERROR tc.test_node = naples_nodes[0] tc.node_name = tc.test_node.Name() cimc_info = tc.test_node.GetCimcInfo() if not cimc_info: api.Logger.error("CimcInfo is None, exiting") return api.types.status.ERROR tc.idrac_ip = cimc_info.GetIp() tc.idrac_ncsi_ip = cimc_info.GetNcsiIp() tc.cimc_info = cimc_info return api.types.status.SUCCESS
def __cleanup_netagent(): nodes = api.GetNaplesNodes() for node in nodes: addr = api.GetNicMgmtIP(node.Name()) j = __get(addr, "/api/networks/"); for obj in j: __del(addr, "/api/networks/", obj) j = __get(addr, "/api/security/policies/"); for obj in j: __del(addr, "/api/security/policies/", obj) j = __get(addr, "/api/apps/"); for obj in j: __del(addr, "/api/apps/", obj) j = __get(addr, "/api/vrfs/"); for obj in j: if obj['spec']['vrf-type'] != 'CUSTOMER': continue __del(addr, "/api/vrfs/", obj) j = __get(addr, "/api/route-tables/"); for obj in j: __del(addr, "/api/route-tables/", obj) return api.types.status.SUCCESS
def Setup(tc): naples_nodes = api.GetNaplesNodes() if len(naples_nodes) == 0: api.Logger.error("No naples node found") return api.types.status.ERROR tc.test_node = naples_nodes[0] tc.node_name = tc.test_node.Name() tc.cimc_info = tc.test_node.GetCimcInfo() if not tc.cimc_info: api.Logger.error("CimcInfo is None, exiting") return api.types.status.ERROR try: check_set_ncsi(tc.cimc_info) except: api.Logger.error(traceback.format_exc()) return api.types.status.ERROR return api.types.status.SUCCESS
def GetBondWorkloadPair(node_name=None): pairs = [] for node in api.GetNaplesNodes(): if node_name and node_name == node.Name(): continue if node.GetBondIp() == None: api.Logger.info("Bond IP not configured on %s, Skipping..." % (node.Name())) continue for wl in api.GetWorkloads(): if node.Name() == wl.node_name: continue if wl.uplink_vlan != 0: continue if ip_address(node.GetBondIp()) not in ip_network(wl.ip_prefix, strict=False): continue pairs.append([node, wl]) return pairs
def Setup(tc): tc.RF = None naples_nodes = api.GetNaplesNodes() if len(naples_nodes) == 0: api.Logger.error("No naples node found, exiting...") return api.types.status.ERROR tc.test_node = naples_nodes[0] tc.node_name = tc.test_node.Name() cimc_info = tc.test_node.GetCimcInfo() if not cimc_info: api.Logger.error("CimcInfo is None, exiting") return api.types.status.ERROR try: check_set_ncsi(cimc_info) tc.RF = get_redfish_obj(cimc_info, mode="ncsi") except: api.Logger.error(traceback.format_exc()) return api.types.status.ERROR return api.types.status.SUCCESS
def Main(step): if GlobalOptions.skip_setup: return api.types.status.SUCCESS naples_nodes = api.GetNaplesNodes() if len(naples_nodes) == 0: api.Logger.error("No naples node found") return api.types.status.ERROR test_node = naples_nodes[0] node_name = test_node.Name() cimc_info = test_node.GetCimcInfo() if not cimc_info: api.Logger.error("CimcInfo is None, exiting") return api.types.status.ERROR try: check_set_ncsi(cimc_info) except: api.Logger.error(traceback.format_exc()) return api.types.status.ERROR return api.types.status.SUCCESS
def Setup(tc): naples_nodes = api.GetNaplesNodes() if len(naples_nodes) == 0: api.Logger.error("No naples node found") return api.types.status.ERROR tc.test_node = naples_nodes[0] tc.node_name = tc.test_node.Name() cimc_info = tc.test_node.GetCimcInfo() if not cimc_info: api.Logger.error("CimcInfo is None, exiting") return api.types.status.ERROR tc.idrac_ip = cimc_info.GetIp() tc.idrac_ncsi_ip = cimc_info.GetNcsiIp() tc.cimc_info = cimc_info try: # Create a Redfish client object tc.RF = get_redfish_obj(tc.cimc_info) except: api.Logger.error(traceback.format_exc()) return api.types.status.ERROR return api.types.status.SUCCESS
def Main(tc): naples_nodes = api.GetNaplesNodes() if len(naples_nodes) == 0: api.Logger.error("No naples node found") return api.types.status.SUCCESS req = api.Trigger_CreateExecuteCommandsRequest(serial=True) for node in naples_nodes: api.Logger.info("Setting Date for Naples: {}".format(node.Name())) if api.GetNodeOs(node.Name()) == host.OS_TYPE_LINUX: cmd = "date -u +%Y-%m-%d+%T" api.Trigger_AddHostCommand(req, node.Name(), cmd) resp = api.Trigger(req) if not api.Trigger_IsSuccess(resp): api.Logger.error("Failed to retrieve date for {}".format( node.Name())) return api.types.status.ERROR #extract the date output date_str = resp.commands[0].stdout.strip("\n") cmd = "date -u -s {}".format(date_str) api.Trigger_AddNaplesCommand(req, node.Name(), cmd) resp = api.Trigger(req) if not api.Trigger_IsSuccess(resp): api.Logger.error( "Failed to configure date for naples in {}".format( node.Name())) return api.types.status.ERROR api.Logger.info("Naples date set to {}".format( resp.commands[0].stdout.strip("\n"))) return api.types.status.SUCCESS
def Main(tc): naples_nodes = api.GetNaplesNodes() if len(naples_nodes) == 0: api.Logger.error("No naples node found") return api.types.status.SUCCESS req = api.Trigger_CreateExecuteCommandsRequest(serial = True) for node in naples_nodes: api.Trigger_AddNaplesCommand(req, node.Name(), "ifconfig oob_mnic0 up") api.Trigger_AddNaplesCommand(req, node.Name(), "dhclient oob_mnic0", timeout=300) resp = api.Trigger(req) if not api.Trigger_IsSuccess(resp): api.Logger.error("Failed to run cmds") return api.types.status.ERROR for node in naples_nodes: oob_ip = GetOOBMnicIP(node.Name()) if not oob_ip: api.Logger.error("Node %s failed to obtain oob_mnic IP" % (node.Name())) return api.types.status.FAILURE api.Logger.info("Obtained %s oob ip-address %s" % (node.Name(), oob_ip)) return api.types.status.SUCCESS
def Setup(tc): tc.naples_nodes = api.GetNaplesNodes() if len(tc.naples_nodes) == 0: api.Logger.error("No naples node found") return api.types.status.ERROR tc.test_node = tc.naples_nodes[0] tc.node_name = tc.test_node.Name() tc.naples_fru = common.GetNaplesFruJson(tc.node_name) if tc.naples_fru: VALIDATE_PARAMETER["VendorName"].update( {"default": tc.naples_fru["manufacturer"]}) VALIDATE_PARAMETER["ProductName"].update( {"default": tc.naples_fru["product-name"]}) cimc_info = tc.test_node.GetCimcInfo() if not cimc_info: api.Logger.error("CimcInfo is None, exiting") return api.types.status.ERROR tc.idrac_ip = cimc_info.GetIp() tc.idrac_ncsi_ip = cimc_info.GetNcsiIp() tc.cimc_info = cimc_info return api.types.status.SUCCESS
def Main(step): return wlapi.AddWorkloads(api.GetNaplesNodes())