Exemple #1
0
def Trigger(tc):
    for n in tc.Nodes:
        for i in range(0, len(tc.venice_ips)):
            common.SetNaplesModeOOB_Static(n, tc.venice_ips[i], tc.mgmt_ips[i])
            tc.mgmt_ip_res.append(common.PenctlGetNaplesMgtmIp(n))
            tc.controller_ip_pentcl.append(common.PenctlGetControllers(n)[0])

    return api.types.status.SUCCESS
Exemple #2
0
def Verify(tc):
    for n in tc.Nodes:
        mgmt_ip = common.PenctlGetNaplesMgtmIp(n)
        controllers = common.PenctlGetControllers(n)

        api.Logger.info("{} MODE : {} NETWORKMODE : {} CONTROLLER : {}".format(n, common.PenctlGetMode(n), common.PenctlGetNetworkMode(n), common.PenctlGetControllers(n)))
        api.Logger.info("Got controller : {}".format(common.AgentGetControllers(n)[0]))
        if mgmt_ip == "6.6.6.6/24" and common.AgentGetControllers(n)[0] == "4.4.4.4" and controllers[0] == "4.4.4.4":
            return api.types.status.SUCCESS

    return api.types.status.FAILURE
Exemple #3
0
def updateMirrorCollectorConfig(tc_workloads, num_collectors, local_wl, collector_wls_ip_dict, mirror_objects):
    #api.Logger.info("Updating Mirror config for {} collectors ".format(num_collectors))

    naples_mgmt_ip = common.PenctlGetNaplesMgtmIp(local_wl.node_name)
    #api.Logger.info("Naples Mgmt IP {}".format(naples_mgmt_ip))

    coll_wl_list = []
    coll_ip_list = []
    coll_type    = []
    for wl in tc_workloads:
        #collector cannot be in local node
        if wl.node_name == local_wl.node_name:
            continue

        #collector IP dict for the workloads should not be empty
        if len(collector_wls_ip_dict[wl.workload_name]) == 0:
            continue

        for ip in collector_wls_ip_dict[wl.workload_name]:
            if checkCollectorIpInNaplesMgmtSubnet(naples_mgmt_ip, ip) == True:
                coll_wl_list.append(wl)
                coll_ip_list.append(ip)
                #api.Logger.info("Adding IP {} to collector ip list".format(ip))

    coll_ip_list_len = len(coll_ip_list)
    #api.Logger.info("Collector WL list-len: {} ip list-len: {}".format(len(coll_wl_list), coll_ip_list_len))

    if coll_ip_list_len == 0:
        return (coll_wl_list, coll_ip_list, coll_type)

    if coll_ip_list_len < num_collectors:
        api.Logger.info("Number of collector IP's available {} in topology is less than the"
                        "number of collectors requested {} for this test, "
                        "reusing some collectors".format(coll_ip_list_len,num_collectors))

        #appending the list for resuing some of collector IP's to reach num_collectors
        idx = 0
        while coll_ip_list_len < num_collectors:
            coll_ip_list.append(coll_ip_list[idx])
            coll_wl_list.append(coll_wl_list[idx])
            idx += 1
            coll_ip_list_len += 1

    coll_ip_list_len = len(coll_ip_list)

    for obj in mirror_objects:
        coll_type = []
        for c in range(0, num_collectors):
            obj.spec.collectors[c].export_config.destination = "{}".format(coll_ip_list[c])
            coll_type.append(obj.spec.collectors[c].type)
            #api.Logger.info("updating collector idx: {} to dst: {} from collector_WL: {}".format(c,
            #            obj.spec.collectors[c].export_config.destination, coll_wl_list[c]))

    return (coll_wl_list, coll_ip_list, coll_type)
Exemple #4
0
def updateFlowmonExportConfig(tc_workloads, num_exports, local_wl, collector_wls_ip_dict, coll_dst_port_list, flowmon_objects):
    api.Logger.info("Updating Flow export config for {} collectors".format(num_exports))

    naples_mgmt_ip = common.PenctlGetNaplesMgtmIp(local_wl.node_name)
    #api.Logger.info("Naples Mgmt IP {}".format(naples_mgmt_ip))

    coll_wl_list = []
    coll_ip_list = []
    export_cfg_list = []

    for wl in tc_workloads:
        #collector cannot be in local node
        if wl.node_name == local_wl.node_name:
            continue

        #collector IP dict for the workloads should not be empty
        if len(collector_wls_ip_dict[wl.workload_name]) == 0:
            #api.Logger.info("Collector_wls_ip_dict for wl: {} is empty".format(wl.workload_name))
            continue

        for ip in collector_wls_ip_dict[wl.workload_name]:
            if checkCollectorIpInNaplesMgmtSubnet(naples_mgmt_ip, ip) == True:
                coll_wl_list.append(wl)
                coll_ip_list.append(ip)
                api.Logger.info("Adding IP {} to collector ip list".format(ip))

    coll_ip_list_len = len(coll_ip_list)
    api.Logger.info("Collector WL list-len: {} ip list-len: {}".format(len(coll_wl_list), coll_ip_list_len))

    if coll_ip_list_len == 0:
        return (coll_wl_list, coll_ip_list, export_cfg_list)

    if coll_ip_list_len < num_exports:
        api.Logger.info("Number of collector IP's available {} in topology is less than the"
                        "number of collectors requested {} for this test, "
                        "reusing some collectors".format(coll_ip_list_len,num_exports))
        #appending the list for resuing some of collector IP's to reach num_exports
        idx = 0
        while coll_ip_list_len < num_exports:
            coll_ip_list.append(coll_ip_list[idx])
            coll_wl_list.append(coll_wl_list[idx])
            idx += 1
            coll_ip_list_len += 1

    coll_ip_list_len = len(coll_ip_list)

    for obj in flowmon_objects:
        for c in range(0, num_exports):
            obj.spec.exports[c].destination = "{}".format(coll_ip_list[c])
            obj.spec.exports[c].proto_port.port = "{}".format(coll_dst_port_list[c])
            export_cfg_list.append(obj.spec.exports[c])
    return (coll_wl_list, coll_ip_list, export_cfg_list)
Exemple #5
0
def Verify(tc):
    if len(tc.Nodes) > 0:
        n = tc.Nodes[0]
        mgmt_ip = common.PenctlGetNaplesMgtmIp(n)
        controllers = common.PenctlGetControllers(n)

        api.Logger.info("{} MODE : {} NETWORKMODE : {} CONTROLLER : {}".format(
            n, common.PenctlGetMode(n), common.PenctlGetNetworkMode(n),
            common.PenctlGetControllers(n)))
        api.Logger.info("Got controller : {}".format(
            common.AgentGetControllers(n)[0]))
        if mgmt_ip == "3.3.3.3/24" and common.AgentGetControllers(
                n)[0] == "1.1.1.1:9009" and controllers[0] == "1.1.1.1":
            return api.types.status.SUCCESS

    return api.types.status.FAILURE