Exemple #1
0
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
Exemple #2
0
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
Exemple #3
0
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
Exemple #4
0
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
Exemple #5
0
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
Exemple #6
0
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
Exemple #7
0
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
Exemple #8
0
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
Exemple #9
0
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
Exemple #10
0
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
Exemple #11
0
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
Exemple #12
0
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
Exemple #13
0
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
Exemple #14
0
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
Exemple #15
0
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
Exemple #16
0
def Main(step):
    return wlapi.AddWorkloads(api.GetNaplesNodes())