def Setup(tc): tc.skip = False if tc.selected: tc.workload_pairs = tc.selected else: if tc.args.type == 'local_only': tc.workload_pairs = api.GetLocalWorkloadPairs() else: tc.workload_pairs = api.GetRemoteWorkloadPairs() tc.workload_pairs = tc.workload_pairs[:1] if len(tc.workload_pairs) == 0: api.Logger.info("Skipping Testcase due to no workload pairs.") tc.skip = True if getattr(tc.args, 'vmotion_enable', False): wloads = [] # collecting all server for wl_pair in tc.workload_pairs: wloads.append(wl_pair[1]) vmotion_utils.PrepareWorkloadVMotion(tc, wloads) #Have to fix it later. return api.types.status.SUCCESS
def Setup(tc): tc.skip = False if tc.args.type == 'local_only': tc.workload_pairs = api.GetLocalWorkloadPairs() else: tc.workload_pairs = api.GetRemoteWorkloadPairs() if len(tc.workload_pairs) == 0: api.Logger.info("Skipping Testcase due to no workload pairs.") tc.skip = True if api.GetConfigNicMode() == 'hostpin' and tc.iterators.ipaf == 'ipv6': api.Logger.info("Skipping Testcase: IPv6 not supported in hostpin mode.") tc.skip = True if getattr(tc.args, 'vmotion_enable', False): wloads = [] for idx, pair in enumerate(tc.workload_pairs): if idx % 2: continue w2 = pair[1] wloads.append(w2) vmotion_utils.PrepareWorkloadVMotion(tc, wloads) return api.types.status.SUCCESS
def Setup(tc): tc.workload_pairs = __get_workload_pairs() if getattr(tc.args, 'vmotion_enable', False): wloads = [] for pair in tc.workload_pairs: wloads.append(pair[1]) vmotion_utils.PrepareWorkloadVMotion(tc, wloads) return api.types.status.SUCCESS
def Setup(tc): api.Logger.info("Setup.") tc.pcap_file_name = None tc.dir_path = os.path.dirname(os.path.realpath(__file__)) tc.test_mss = 900 if tc.iterators.kind == "remote": pairs = api.GetRemoteWorkloadPairs() if not pairs: api.Logger.info("no remtote eps") return api.types.status.SUCCESS else: pairs = api.GetLocalWorkloadPairs() tc.resp_flow = getattr(tc.args, "resp_flow", 0) tc.cmd_cookies = {} req = api.Trigger_CreateExecuteCommandsRequest(serial=True) if pairs[0][0].IsNaples(): tc.client, tc.server = pairs[0] else: tc.server, tc.client = pairs[0] fullpath = tc.dir_path + '/' + "scapy_3way.py" resp = api.CopyToWorkload(tc.server.node_name, tc.server.workload_name, [fullpath]) resp = api.CopyToWorkload(tc.client.node_name, tc.client.workload_name, [fullpath]) cmd_cookie = start_nc_server(tc.server, "1237") add_command(req, tc, 'server', tc.server, cmd_cookie, True) ret = __add_remove_tcp_drop_rule(tc.client) if ret != api.types.status.SUCCESS: api.Logger.error( f"Failed to drop the drop rule on {tc.client.workload_name}") return ret #start session cmd_cookie = "sudo -E python3 ./scapy_3way.py {} {}".format( tc.client.ip_address, tc.server.ip_address) api.Trigger_AddCommand(req, tc.client.node_name, tc.client.workload_name, cmd_cookie, False) cmd_cookie = "/nic/bin/halctl show session --dstport 1237 --dstip {} --yaml".format( tc.server.ip_address) add_command(req, tc, 'show before', tc.client, cmd_cookie, naples=True) tc.first_resp = api.Trigger(req) cmd = tc.first_resp.commands[-1] api.PrintCommandResults(cmd) tc.pre_ctrckinf = get_conntrackinfo(cmd) if getattr(tc.args, 'vmotion_enable', False): vmotion_utils.PrepareWorkloadVMotion(tc, [tc.client]) return api.types.status.SUCCESS
def Setup(tc): tc.workload_pairs = api.GetRemoteWorkloadPairs() agent_api.DeleteSgPolicies() if getattr(tc.args, 'vmotion_enable', False): wloads = [] for pair in tc.workload_pairs: wloads.append(pair[1]) vmotion_utils.PrepareWorkloadVMotion(tc, wloads) return api.types.status.SUCCESS
def Setup(tc): if SetTestSettings(tc) is not api.types.status.SUCCESS: return api.types.status.FAILURE if utils.SetSessionLimit('all', 0) is not api.types.status.SUCCESS: return api.types.status.FAILURE (server, client) = utils.GetServerClientSinglePair(kind=tc.iterators.kind) if server is None: return api.types.status.FAILURE tc.wc_server = server tc.wc_client = client if getattr(tc.args, 'vmotion_enable', False): wloads = [server] vmotion_utils.PrepareWorkloadVMotion(tc, wloads) return api.types.status.SUCCESS
def Setup(tc): api.Logger.info("Setup.") if tc.iterators.kind == "remote": pairs = api.GetRemoteWorkloadPairs() if not pairs: api.Logger.info("no remtote eps") return api.types.status.SUCCESS else: pairs = api.GetLocalWorkloadPairs() tc.cmd_cookies = {} req = api.Trigger_CreateExecuteCommandsRequest(serial=True) #for w1,w2 in pairs: if pairs[0][0].IsNaples(): tc.client, tc.server = pairs[0] else: tc.server, tc.client = pairs[0] cmd_cookie = "nc -l 1234" api.Trigger_AddCommand(req, tc.server.node_name, tc.server.workload_name, cmd_cookie, background=True) tc.cmd_cookies['server'] = cmd_cookie cmd_cookie = "nc {} 1234 -p 52252".format(tc.server.ip_address) api.Trigger_AddCommand(req, tc.client.node_name, tc.client.workload_name, cmd_cookie, background=True) tc.cmd_cookies['client'] = cmd_cookie cmd_cookie = "/nic/bin/halctl show session --dstport 1234 --dstip {} --yaml".format( tc.server.ip_address) api.Trigger_AddNaplesCommand(req, tc.client.node_name, cmd_cookie) tc.setup_cmd_resp = api.Trigger(req) cmd = tc.setup_cmd_resp.commands[-1] api.PrintCommandResults(cmd) tc.pre_ctrckinf = get_conntrackinfo(cmd) if getattr(tc.args, 'vmotion_enable', False): vmotion_utils.PrepareWorkloadVMotion(tc, [tc.client]) return api.types.status.SUCCESS
def Setup(tc): tc.cancel = False tc.workloadPeers = {} tc.events = [] tc.nodes = api.GetNaplesHostnames() tc.flap_port_count = getattr(tc.args, "flap_port_count", 1) tc.mem_leak_test = getattr(tc.args, "mem_leak_test", False) tc.mem_incr_threshold = getattr(tc.args, "mem_incr_threshold", 1) tc.bg_trigger_cmd_timeout = 200 if enable_memory_trim: # Reclaim all free memory before start & end of test # to find the amount of memory leaked after the test execHalMemTrimCmd(tc) try: findWorkloadPeers(tc) if tc.mem_leak_test: triggerTechSupport(tc) memStatsObjClient.InitNodesForMemUsageStats() ret = connectTrex(tc) if ret != api.types.status.SUCCESS: return ret ret = startTrex(tc) if ret != api.types.status.SUCCESS: return ret except Exception as e: traceback.print_exc() api.Logger.error("Failed to trigger the session scale : %s" % (e)) cleanup(tc) return api.types.status.FAILURE if getattr(tc.args, 'vmotion_enable', False): wloads = [] for idx, wl in enumerate(tc.workloadPeers.keys()): if idx % 2 == 0: w2 = pair[1] wloads.append(w2) vmotion_utils.PrepareWorkloadVMotion(tc, wloads) return api.types.status.SUCCESS
def Setup(tc): tc.seed = random.randrange(sys.maxsize) api.Logger.info("Using seed : %s" % (tc.seed)) tc.serverHandle = None tc.clientHandle = None __modify_security_profile(tc) utils.clearNaplesSessions() chooseWorkload(tc) server, client = tc.workload_pair[0], tc.workload_pair[1] api.Logger.info("Server: %s(%s)(%s) <--> Client: %s(%s)(%s)" %\ (server.workload_name, server.ip_address, server.mgmt_ip, client.workload_name, client.ip_address, client.mgmt_ip)) try: tc.serverHandle = TRexIotaWrapper(server, role="server", gw=client.ip_address) tc.clientHandle = TRexIotaWrapper(client, role="client", gw=server.ip_address) tc.serverHandle.connect() tc.clientHandle.connect() tc.serverHandle.reset() tc.clientHandle.reset() profile_path = getProfilePath(tc) tc.serverHandle.load_profile(getProfilePath(tc), getTunables(tc)) tc.clientHandle.load_profile(getProfilePath(tc), getTunables(tc)) except Exception as e: traceback.print_exc() api.Logger.info("Failed to setup TRex topology: %s" % e) cleanup(tc) return api.types.status.FAILURE if getattr(tc.args, 'vmotion_enable', False): wloads = [] vmotion_utils.PrepareWorkloadVMotion(tc, [server]) return api.types.status.SUCCESS
def Setup(tc): tc.server_port = api.AllocateTcpPort() tc.client_port = api.AllocateTcpPort() api.Logger.info("Setup.") if tc.iterators.kind == "remote": pairs = api.GetRemoteWorkloadPairs() if not pairs: api.Logger.info("no remtote eps") return api.types.status.SUCCESS else: pairs = api.GetLocalWorkloadPairs() tc.resp_flow = getattr(tc.args, "resp_flow", 0) tc.cmd_cookies = {} req = api.Trigger_CreateExecuteCommandsRequest(serial = True) #for w1,w2 in pairs: if pairs[0][0].IsNaples(): tc.client,tc.server = pairs[0] else: tc.server,tc.client = pairs[0] cmd_cookie = start_nc_server(tc.server, tc.server_port) add_command(req, tc, 'server', tc.server, cmd_cookie, True) cmd_cookie = start_nc_client(tc.server, tc.client_port, tc.server_port) add_command(req, tc, 'client', tc.client, cmd_cookie, True) cmd_cookie = "/nic/bin/halctl show session --dstport {} --dstip {} --yaml".format(tc.server_port, tc.server.ip_address) add_command(req, tc, 'show before', tc.client, cmd_cookie, naples=True) tc.setup_cmd_resp = api.Trigger(req) cmd = tc.setup_cmd_resp.commands[-1] api.PrintCommandResults(cmd) tc.pre_ctrckinf = get_conntrackinfo(cmd) if getattr(tc.args, 'vmotion_enable', False): vmotion_utils.PrepareWorkloadVMotion(tc, [tc.client]) return api.types.status.SUCCESS
def Setup(tc): setupWorkloadDict(tc, tc.iterators.kind) if getattr(tc.args, 'vmotion_enable', False): wllist = [] for w1 in tc.workload_dict.keys(): wllist.append(w1) vmotion_utils.PrepareWorkloadVMotion(tc, wllist) agent_api.DeleteSgPolicies() tc.scale = tc.iterators.scale result = test.execute() api.Logger.info("ip rule table module sanity check - %s"% ("SUCCESS" if result else "FAIL")) if not result: return api.types.status.FAILURE if not copyTestCommand(tc): return api.types.status.FAILURE if not addPktFltrRuleOnEp(tc, enable=True): return api.types.status.FAILURE return api.types.status.SUCCESS