mirror of
				https://github.com/Telecominfraproject/wlan-lanforge-scripts.git
				synced 2025-10-31 18:58:01 +00:00 
			
		
		
		
	Improving py-scripts files to fix errors with regression test
updating to_pip.sh Signed-off-by: Matthew Stidham <stidmatt@gmail.com>
This commit is contained in:
		| @@ -68,7 +68,7 @@ def main(): | ||||
|         --------------------- | ||||
|         Generic command ''') | ||||
|     parser.add_argument('--radio', help='radio EID, e.g: 1.wiphy2') | ||||
|     parser.add_argument('--qvlan_parent', help='specifies parent port for qvlan creation', default=None) | ||||
|     parser.add_argument('--qvlan_parent', help='specifies parent port for qvlan creation', default=None, required=True) | ||||
|     parser.add_argument('--first_port', help='specifies name of first port to be used', default=None) | ||||
|     parser.add_argument('--num_ports', help='number of ports to create', default=1) | ||||
|     parser.add_argument('--first_qvlan_ip', help='specifies first static ip address to be used or dhcp', default=None) | ||||
|   | ||||
| @@ -14,18 +14,20 @@ if sys.version_info[0] != 3: | ||||
| sys.path.append(os.path.join(os.path.abspath(__file__ + "../../../"))) | ||||
|  | ||||
| LFUtils = importlib.import_module("py-json.LANforge.LFUtils") | ||||
| lfcli_base = importlib.import_module("py-json.LANforge.lfcli_base") | ||||
| LFCliBase = lfcli_base.LFCliBase | ||||
| realm = importlib.import_module("py-json.realm") | ||||
| Realm = realm.Realm | ||||
|  | ||||
|  | ||||
| class Layer3Test(LFCliBase): | ||||
| class Layer3Test(Realm): | ||||
|  | ||||
|     def __init__(self, lfclient_host="localhost", lfclient_port=8080, radio="wiphy1", sta_prefix="sta", start_id=0, num_sta=2, | ||||
|                  dut_ssid="lexusdut", dut_security="open", dut_passwd="[BLANK]", upstream="eth1", name_prefix="L3Test", | ||||
|                  traffic_type="lf_udp",side_a_speed="0M", side_b_speed="10M", session_id="Layer3Test", duration="1m",_debug_on=False, _exit_on_error=False,  _exit_on_fail=False): | ||||
|         super().__init__(lfclient_host, lfclient_port, _debug=_debug_on, _exit_on_fail=_exit_on_fail) | ||||
|                  traffic_type="lf_udp", | ||||
|                  side_a_min_rate=256000, side_a_max_rate=0, | ||||
|                  side_b_min_rate=256000, side_b_max_rate=0, | ||||
|                  session_id="Layer3Test", duration="1m", | ||||
|                  _debug_on=False, _exit_on_error=False,  _exit_on_fail=False): | ||||
|         super().__init__(lfclient_host=lfclient_host, lfclient_port=lfclient_port, debug_=_debug_on, _exit_on_fail=_exit_on_fail) | ||||
|         print("Test is about to start") | ||||
|         self.host = lfclient_host | ||||
|         self.port = lfclient_port | ||||
| @@ -42,29 +44,27 @@ class Layer3Test(LFCliBase): | ||||
|         self.password = dut_passwd | ||||
|         self.session_id = session_id | ||||
|         self.traffic_type = traffic_type | ||||
|         self.side_a_speed = side_a_speed | ||||
|         self.side_b_speed = side_b_speed | ||||
|         self.local_realm = realm.Realm(lfclient_host=self.host, lfclient_port=self.port) | ||||
|         self.station_profile = self.local_realm.new_station_profile() | ||||
|         self.cx_profile = self.local_realm.new_l3_cx_profile() | ||||
|         self.station_profile = self.new_station_profile() | ||||
|         self.cx_profile = self.new_l3_cx_profile() | ||||
|  | ||||
|         self.cx_profile.host = self.host | ||||
|         self.cx_profile.port = self.port | ||||
|         self.cx_profile.name_prefix = self.name_prefix | ||||
|         self.cx_profile.side_a_min_bps = self.local_realm.parse_speed(self.side_a_speed) | ||||
|         self.cx_profile.side_a_max_bps = self.local_realm.parse_speed(self.side_a_speed) | ||||
|         self.cx_profile.side_b_min_bps = self.local_realm.parse_speed(self.side_b_speed) | ||||
|         self.cx_profile.side_b_max_bps = self.local_realm.parse_speed(self.side_b_speed) | ||||
|         self.cx_profile.side_a_min_bps = side_a_min_rate | ||||
|         self.cx_profile.side_a_max_bps = side_a_max_rate | ||||
|         self.cx_profile.side_b_min_bps = side_b_min_rate | ||||
|         self.cx_profile.side_b_max_bps = side_b_max_rate | ||||
|  | ||||
|         print("Test is Initialized") | ||||
|  | ||||
|  | ||||
|     def precleanup(self): | ||||
|         print("precleanup started") | ||||
|         self.station_list = LFUtils.portNameSeries(prefix_=self.sta_prefix, start_id_=self.sta_start_id, end_id_=self.num_sta - 1, padding_number_=10000, radio=self.radio) | ||||
|         self.station_list = LFUtils.portNameSeries(prefix_=self.sta_prefix, start_id_=self.sta_start_id, | ||||
|                                                    end_id_=self.num_sta - 1, padding_number_=10000, radio=self.radio) | ||||
|         self.cx_profile.cleanup_prefix() | ||||
|         for sta in self.station_list: | ||||
|             self.local_realm.rm_port(sta, check_exists=True) | ||||
|             self.rm_port(sta, check_exists=True) | ||||
|             time.sleep(1) | ||||
|         self.cx_profile.cleanup() | ||||
|  | ||||
| @@ -81,8 +81,9 @@ class Layer3Test(LFCliBase): | ||||
|         self.station_profile.set_command_param("set_port", "report_timer", 1500) | ||||
|         self.station_profile.set_command_flag("set_port", "rpt_timer", 1) | ||||
|         self.station_profile.create(radio=self.radio, sta_names_=self.station_list, debug=self.debug) | ||||
|         self.local_realm.wait_until_ports_appear(sta_list=self.station_list) | ||||
|         self.cx_profile.create(endp_type=self.traffic_type, side_a=self.station_profile.station_names, side_b=self.upstream, sleep_time=0) | ||||
|         self.wait_until_ports_appear(sta_list=self.station_list) | ||||
|         self.cx_profile.create(endp_type=self.traffic_type, side_a=self.station_profile.station_names, | ||||
|                                side_b=self.upstream, sleep_time=0) | ||||
|         print("Test Build done") | ||||
|         pass | ||||
|  | ||||
| @@ -92,7 +93,7 @@ class Layer3Test(LFCliBase): | ||||
|         self.station_profile.admin_up() | ||||
|         temp_stas = self.station_profile.station_names.copy() | ||||
|         temp_stas.append(self.upstream) | ||||
|         if (self.local_realm.wait_for_ip(temp_stas)): | ||||
|         if self.wait_for_ip(temp_stas): | ||||
|             self._pass("All stations got IPs", print_pass) | ||||
|         else: | ||||
|             self._fail("Stations failed to get IPs", print_fail) | ||||
| @@ -101,13 +102,13 @@ class Layer3Test(LFCliBase): | ||||
|         try: | ||||
|             for i in self.cx_profile.get_cx_names(): | ||||
|                 self.cx_names.append(i) | ||||
|                 while self.local_realm.json_get("/cx/" + i).get(i).get('state') != 'Run': | ||||
|                 while self.json_get("/cx/" + i).get(i).get('state') != 'Run': | ||||
|                     continue | ||||
|         except Exception as e: | ||||
|             pass | ||||
|         print("Test Started") | ||||
|         self.cur_time = datetime.datetime.now() | ||||
|         self.end_time = self.local_realm.parse_time(self.test_duration) + self.cur_time | ||||
|         self.end_time = self.parse_time(self.test_duration) + self.cur_time | ||||
|         print(self.end_time-self.cur_time) | ||||
|         self.start_monitor() | ||||
|         pass | ||||
| @@ -137,7 +138,7 @@ class Layer3Test(LFCliBase): | ||||
|  | ||||
| def main(): | ||||
|     # This has --mgr, --mgr_port and --debug | ||||
|     parser = LFCliBase.create_basic_argparse( | ||||
|     parser = Realm.create_basic_argparse( | ||||
|         prog="layer3_test.py", | ||||
|         formatter_class=argparse.RawTextHelpFormatter, | ||||
|         epilog="About This Script") | ||||
| @@ -156,7 +157,8 @@ def main(): | ||||
|     obj = Layer3Test(lfclient_host=args.mgr, lfclient_port=args.mgr_port, | ||||
|                      duration=args.test_duration, session_id=args.session_id, | ||||
|                      traffic_type=args.traffic_type, | ||||
|                      dut_ssid=args.ssid, dut_passwd=args.passwd, dut_security=args.security, num_sta=args.num_client, side_a_speed=args.side_a_min_speed, side_b_speed=args.side_b_min_speed, radio=args.radio) | ||||
|                      dut_ssid=args.ssid, dut_passwd=args.passwd, dut_security=args.security, num_sta=args.num_client, | ||||
|                      side_a_min_rate=args.side_a_min_speed, side_b_min_rate=args.side_b_min_speed, radio=args.radio,_debug_on=args.debug) | ||||
|     obj.precleanup() | ||||
|     obj.build() | ||||
|     obj.start() | ||||
|   | ||||
| @@ -30,25 +30,22 @@ if sys.version_info[0] != 3: | ||||
|   | ||||
| sys.path.append(os.path.join(os.path.abspath(__file__ + "../../../"))) | ||||
|  | ||||
| lfcli_base = importlib.import_module("py-json.LANforge.lfcli_base") | ||||
| LFCliBase = lfcli_base.LFCliBase | ||||
| LFUtils = importlib.import_module("py-json.LANforge.LFUtils") | ||||
| realm = importlib.import_module("py-json.realm") | ||||
| Realm = realm.Realm | ||||
|  | ||||
|  | ||||
| class CreateAttenuator(LFCliBase): | ||||
| class CreateAttenuator(Realm): | ||||
|     def __init__(self, host, port, serno, idx, val, | ||||
|                  _debug_on=False, | ||||
|                  _exit_on_error=False, | ||||
|                  _exit_on_fail=False): | ||||
|         super().__init__(host, port, _local_realm=realm.Realm(host, port), _debug=_debug_on, _exit_on_fail=_exit_on_fail) | ||||
|         super().__init__(host, port, debug_=_debug_on, _exit_on_fail=_exit_on_fail) | ||||
|         self.host = host | ||||
|         self.port = port | ||||
|         self.serno = serno | ||||
|         self.idx = idx | ||||
|         self.val = val | ||||
|         self.attenuator_profile = self.local_realm.new_attenuator_profile() | ||||
|         self.attenuator_profile = self.new_attenuator_profile() | ||||
|         self.attenuator_profile.atten_idx = self.idx | ||||
|         self.attenuator_profile.atten_val = self.val | ||||
|         self.attenuator_profile.atten_serno = self.serno | ||||
| @@ -58,7 +55,7 @@ class CreateAttenuator(LFCliBase): | ||||
|         self.attenuator_profile.show() | ||||
|  | ||||
| def main(): | ||||
|     parser = LFCliBase.create_basic_argparse( | ||||
|     parser = Realm.create_basic_argparse( | ||||
|         prog='lf_atten_mod_test.py', | ||||
|         formatter_class=argparse.RawTextHelpFormatter, | ||||
|         epilog=None, | ||||
|   | ||||
| @@ -45,7 +45,7 @@ Realm = realm.Realm | ||||
| class MultiPsk(Realm): | ||||
|     def __init__(self, | ||||
|                  host=None, | ||||
|                  port=None, | ||||
|                  port=8080, | ||||
|                  ssid=None, | ||||
|                  input=None, | ||||
|                  security=None, | ||||
| @@ -57,8 +57,10 @@ class MultiPsk(Realm): | ||||
|                  sta_prefix="sta", | ||||
|                  debug_=False, | ||||
|                  ): | ||||
|         self.host = host | ||||
|         self.port = port | ||||
|         super().__init__(lfclient_host=host, | ||||
|                          lfclient_port=port), | ||||
|         self.lfclient_host = host | ||||
|         self.lfclient_port = port | ||||
|         self.ssid = ssid | ||||
|         self.input = input | ||||
|         self.security = security | ||||
| @@ -69,8 +71,7 @@ class MultiPsk(Realm): | ||||
|         self.resource = resource | ||||
|         self.sta_prefix = sta_prefix | ||||
|         self.debug = debug_ | ||||
|         self.local_realm = realm.Realm(lfclient_host=self.host, lfclient_port=self.port) | ||||
|         self.station_profile = self.local_realm.new_station_profile() | ||||
|         self.station_profile = self.new_station_profile() | ||||
|  | ||||
|     def build(self): | ||||
|         station_list = [] | ||||
| @@ -84,30 +85,30 @@ class MultiPsk(Realm): | ||||
|             else: | ||||
|                 station_list = LFUtils.portNameSeries(prefix_="sta", start_id_=self.start_id, | ||||
|                                                       end_id_=input['num_station'] - 1, padding_number_=100, | ||||
|                                                       radio=input['radio']) | ||||
|                                                       radio=self.radio) | ||||
|                 # implementation for non vlan pending **** | ||||
|             print("creating stations") | ||||
|             self.station_profile.use_security(self.security, self.ssid, str(input['password'])) | ||||
|             self.station_profile.use_security(self.security, self.ssid, self.passwd) | ||||
|             self.station_profile.set_command_flag("add_sta", "create_admin_down", 1) | ||||
|             self.station_profile.set_command_param("set_port", "report_timer", 1500) | ||||
|             self.station_profile.set_command_flag("set_port", "rpt_timer", 1) | ||||
|             self.station_profile.create(radio=input['radio'], sta_names_=station_list, debug=self.local_realm.debug) | ||||
|             self.local_realm.wait_until_ports_appear(sta_list=station_list) | ||||
|             self.station_profile.create(radio=self.radio, sta_names_=station_list, debug=self.debug) | ||||
|             self.wait_until_ports_appear(sta_list=station_list) | ||||
|             self.station_profile.admin_up() | ||||
|             if self.local_realm.wait_for_ip(station_list, timeout_sec=120): | ||||
|             if self.wait_for_ip(station_list, timeout_sec=120): | ||||
|                 print("All stations got IPs") | ||||
|             else: | ||||
|                 print("Stations failed to get IPs") | ||||
|  | ||||
|             print("create udp endp") | ||||
|             self.cx_profile_udp = self.local_realm.new_l3_cx_profile() | ||||
|             self.cx_profile_udp = self.new_l3_cx_profile() | ||||
|             self.cx_profile_udp.side_a_min_bps = 128000 | ||||
|             self.cx_profile_udp.side_b_min_bps = 128000 | ||||
|             self.cx_profile_udp.side_a_min_pdu = 1200 | ||||
|             self.cx_profile_udp.side_b_min_pdu = 1500 | ||||
|             self.cx_profile_udp.report_timer = 1000 | ||||
|             self.cx_profile_udp.name_prefix = "udp" | ||||
|             port_list = list(self.local_realm.find_ports_like("%s+" % self.sta_prefix)) | ||||
|             port_list = list(self.find_ports_like("%s+" % self.sta_prefix)) | ||||
|             # print("port list", port_list) | ||||
|             if (port_list is None) or (len(port_list) < 1): | ||||
|                 raise ValueError("Unable to find ports named '%s'+" % self.sta_prefix) | ||||
| @@ -118,13 +119,13 @@ class MultiPsk(Realm): | ||||
|  | ||||
|             # Create TCP endpoints | ||||
|             print("create tcp endp") | ||||
|             self.l3_tcp_profile = self.local_realm.new_l3_cx_profile() | ||||
|             self.l3_tcp_profile = self.new_l3_cx_profile() | ||||
|             self.l3_tcp_profile.side_a_min_bps = 128000 | ||||
|             self.l3_tcp_profile.side_b_min_bps = 56000 | ||||
|             self.l3_tcp_profile.name_prefix = "tcp" | ||||
|             self.l3_tcp_profile.report_timer = 1000 | ||||
|             self.l3_tcp_profile.create(endp_type="lf_tcp", | ||||
|                                        side_a=list(self.local_realm.find_ports_like("%s+" % self.sta_prefix)), | ||||
|                                        side_a=list(self.find_ports_like("%s+" % self.sta_prefix)), | ||||
|                                        side_b="%d.%s" % (self.resource, input['upstream']), | ||||
|                                        suppress_related_commands=True) | ||||
|  | ||||
| @@ -140,7 +141,7 @@ class MultiPsk(Realm): | ||||
|             if "." in i['upstream']: | ||||
|                 # print(str(i['upstream']) + " is a vlan upstream port") | ||||
|                 print("checking its ip ..") | ||||
|                 data = self.local_realm.json_get("ports/list?fields=IP") | ||||
|                 data = self.json_get("ports/list?fields=IP") | ||||
|                 for val in data["interfaces"]: | ||||
|                     for j in val: | ||||
|                         if "1." + str(self.resource) + "." + str(i['upstream']) == j: | ||||
| @@ -157,7 +158,7 @@ class MultiPsk(Realm): | ||||
|             if "." not in i['upstream']: | ||||
|                 # print(str(i['upstream']) + " is not an vlan upstream port") | ||||
|                 print("checking its ip ..") | ||||
|                 data = self.local_realm.json_get("ports/list?fields=IP") | ||||
|                 data = self.json_get("ports/list?fields=IP") | ||||
|                 for val in data["interfaces"]: | ||||
|                     for j in val: | ||||
|                         if "1." + str(self.resource) + "." + str(i['upstream']) == j: | ||||
| @@ -168,11 +169,8 @@ class MultiPsk(Realm): | ||||
|         return non_vlan_ips | ||||
|  | ||||
|     def get_sta_ip(self): | ||||
|         # this function gives station ip dict eg{'eth2.100': '172.17.0.100'} | ||||
|         # self.input = [{'password': 'lanforge1', 'upstream': 'eth2.100', 'mac': '', 'num_station': 1, 'radio': 'wiphy4'}, {'password': 'lanforge2', 'upstream': 'eth2.200', 'mac': '', 'num_station': 1, 'radio': 'wiphy4'}, {'password': 'lanforge3', 'upstream': 'eth2', 'mac': '', 'num_station': 1, 'radio': 'wiphy0'}] | ||||
|         # port_list =  ['1.1.sta200', '1.1.sta00', '1.1.sta100'] | ||||
|         station_ip = {} | ||||
|         port_list = list(self.local_realm.find_ports_like("%s+" % self.sta_prefix)) | ||||
|         port_list = list(self.find_ports_like("%s+" % self.sta_prefix)) | ||||
|         # print("port list", port_list) | ||||
|         # port list ['1.1.sta200', '1.1.sta00', '1.1.sta100'] | ||||
|         for name, id in zip(port_list, self.input): | ||||
| @@ -182,7 +180,7 @@ class MultiPsk(Realm): | ||||
|             # print(x) | ||||
|  | ||||
|             if name == "1." + str(self.resource) + ".sta" + str(x): | ||||
|                 data = self.local_realm.json_get("ports/list?fields=IP") | ||||
|                 data = self.json_get("ports/list?fields=IP") | ||||
|                 for i in data["interfaces"]: | ||||
|                     # print(i) | ||||
|                     for j in i: | ||||
| @@ -227,7 +225,7 @@ class MultiPsk(Realm): | ||||
|             # print(x) | ||||
|  | ||||
|             if name == "1." + str(self.resource) + ".sta" + str(x): | ||||
|                 data = self.local_realm.json_get("ports/list?fields=IP") | ||||
|                 data = self.json_get("ports/list?fields=IP") | ||||
|                 for i in data["interfaces"]: | ||||
|                     # print(i) | ||||
|                     for j in i: | ||||
| @@ -241,7 +239,7 @@ class MultiPsk(Realm): | ||||
|     def get_non_vlan_sta_ip(self): | ||||
|         station_nonvlan_ip = {} | ||||
|         x = "" | ||||
|         port_list = list(self.local_realm.find_ports_like("%s+" % self.sta_prefix)) | ||||
|         port_list = list(self.find_ports_like("%s+" % self.sta_prefix)) | ||||
|         # print("port list", port_list) | ||||
|         for id in self.input: | ||||
|             if "." not in id['upstream']: | ||||
| @@ -249,7 +247,7 @@ class MultiPsk(Realm): | ||||
|         # print(x) | ||||
|         for name in port_list: | ||||
|             if name == "1.1.sta00": | ||||
|                 data = self.local_realm.json_get("ports/list?fields=IP") | ||||
|                 data = self.json_get("ports/list?fields=IP") | ||||
|                 for i in data["interfaces"]: | ||||
|                     # print(i) | ||||
|                     for j in i: | ||||
| @@ -312,27 +310,21 @@ class MultiPsk(Realm): | ||||
|         self.cx_profile_udp.cleanup() | ||||
|         self.l3_tcp_profile.cleanup() | ||||
|         self.station_profile.cleanup() | ||||
|         LFUtils.wait_until_ports_disappear(base_url=self.local_realm.lfclient_url, port_list=self.station_profile.station_names, | ||||
|         LFUtils.wait_until_ports_disappear(base_url=self.lfclient_host, port_list=self.station_profile.station_names, | ||||
|                                            debug=self.debug) | ||||
|         print("Test Completed") | ||||
|  | ||||
|  | ||||
| def main(): | ||||
|     parser = argparse.ArgumentParser( | ||||
|     parser = Realm.create_basic_argparse( | ||||
|         prog="lf_multipsk.py", | ||||
|         formatter_class=argparse.RawTextHelpFormatter, | ||||
|         description="lanforge webpage download Test Script") | ||||
|     parser.add_argument('--mgr', help='hostname for where LANforge GUI is running', default='localhost') | ||||
|     parser.add_argument('--mgr_port', help='port LANforge GUI HTTP service is running on', default=8080) | ||||
|     parser.add_argument('--ssid', help='WiFi SSID for client to associate to') | ||||
|     parser.add_argument('--security', help='WiFi Security protocol: {open|wep|wpa2|wpa3', default="wpa2") | ||||
|     parser.add_argument('--mode', help="specify mode of ap eg BRIDGE or NAT", default="BRIDGE") | ||||
|     parser.add_argument('--n_vlan', help="type number of vlan using in test eg 1 or 2", default=1) | ||||
|     # parser.add_argument('--input', nargs="+", help="specify list of parameters like passwords,upstream,mac address, number of clients and radio as input, eg password@123,eth2.100,"",1,wiphy0  lanforge@123,eth2.100,"",1,wiphy1") | ||||
|     args = parser.parse_args() | ||||
|  | ||||
|     input_data = [{ | ||||
|         "password": "lanforge1", | ||||
|         "password": args.passwd, | ||||
|         "upstream": "eth2.100", | ||||
|         "mac": "", | ||||
|         "num_station": 1, | ||||
| @@ -364,8 +356,11 @@ def main(): | ||||
|     multi_obj = MultiPsk(host=args.mgr, | ||||
|                          port=args.mgr_port, | ||||
|                          ssid=args.ssid, | ||||
|                          passwd=args.passwd, | ||||
|                          input=input_data, | ||||
|                          security=args.security) | ||||
|                          security=args.security, | ||||
|                          debug_=args.debug, | ||||
|                          radio=args.radio) | ||||
|  | ||||
|     multi_obj.build() | ||||
|     multi_obj.start() | ||||
|   | ||||
							
								
								
									
										0
									
								
								py-scripts/lf_rx_sensitivity_test.py
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
						
						
									
										0
									
								
								py-scripts/lf_rx_sensitivity_test.py
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							| @@ -57,7 +57,7 @@ while getopts ":h:s:p:w:m:A:r:F:B:U:D:H:" option; do | ||||
|       DUT2=${OPTARG} | ||||
|       ;; | ||||
|     H) | ||||
|       HELP=1 | ||||
|       ./lf_help_check.bash | ||||
|       ;; | ||||
|     *) | ||||
|  | ||||
| @@ -142,100 +142,8 @@ function testgroup_delete_group() { | ||||
|   ./testgroup.py --group_name group1 --add_group --add_cx cx0000,cx0001,cx0002 --remove_cx cx0003 | ||||
|   ./testgroup.py --group_name group1--del_group --debug --mgr "$MGR" | ||||
| } | ||||
| if [[ $HELP -eq 1 ]]; then | ||||
|   testCommands=( | ||||
|        "./create_bond.py --help --mgr $MGR" | ||||
|         "./create_bridge.py --help --mgr $MGR" | ||||
|         "./create_chamberview.py --help -m $MGR" | ||||
|         "./create_chamberview_dut.py --help --lfmgr $MGR" | ||||
|         "./create_l3.py --help --mgr $MGR" | ||||
|         "./create_l4.py --help --mgr $MGR" | ||||
|         "./create_macvlan.py --help --mgr $MGR" | ||||
|         "./create_qvlan.py --help --mgr $MGR" | ||||
|         "./create_station.py --help --mgr $MGR" | ||||
|         "./create_vap.py --help --mgr $MGR" | ||||
|         "./create_vr.py --help --mgr $MGR" | ||||
|         "./create_wanlink.py --help --mgr $MGR" | ||||
|         "./csv_convert.py --help --mgr $MGR" | ||||
|         "./csv_processor.py --help --mgr $MGR" | ||||
|         "./csv_to_grafana.py --help --mgr $MGR" | ||||
|         "./csv_to_influx.py --help --mgr $MGR" | ||||
|         "./cv_manager.py --help --mgr $MGR" | ||||
|         "./cv_to_grafana.py --help --mgr $MGR" | ||||
|         "./docstrings.py --help --mgr $MGR" | ||||
|         "./event_breaker --help --mgr $MGR" | ||||
|         "./event_flood --help --mgr $MGR" | ||||
|         "./example_security_connection.py --help --mgr $MGR" | ||||
|         "./ftp_html.py --help --mgr $MGR" | ||||
|         "./ghost_profile.py --help --mgr $MGR" | ||||
|         "./grafana_profile.py --help --mgr $MGR" | ||||
|         "./html_template.py --help --mgr $MGR" | ||||
|         "./influx.py --help --mgr $MGR" | ||||
|         "./layer3_test.py --help --mgr $MGR" | ||||
|         "./layer4_test.py --help --mgr $MGR" | ||||
|         "./lf_ap_auto_test.py --help --mgr $MGR" | ||||
|         "./lf_atten_mod_test.py --help --mgr $MGR" | ||||
|         "./lf_csv.py --help --mgr $MGR" | ||||
|         "./lf_dataplane_config.py --help --mgr $MGR" | ||||
|         "./lf_dataplane_test.py --help --mgr $MGR" | ||||
|         "./lf_dfs_test.py --help --mgr $MGR" | ||||
|         "./lf_dut_sta_vap_test.py --help --mgr $MGR" | ||||
|         "./lf_ftp.py --help --mgr $MGR" | ||||
|         "./lf_ftp_test.py --help --mgr $MGR" | ||||
|         "./lf_graph.py --help --mgr $MGR" | ||||
|         "./lf_mesh_test.py --help --mgr $MGR" | ||||
|         "./lf_multipsk.py --help --mgr $MGR" | ||||
|         "./lf_report.py --help --mgr $MGR" | ||||
|         "./lf_report_test.py --help --mgr $MGR" | ||||
|         "./lf_rvr_test.py --help --mgr $MGR" | ||||
|         "./lf_rx_sensitivity_test.py --help --mgr $MGR" | ||||
|         "./lf_sniff_radio.py --help --mgr $MGR" | ||||
|         "./lf_snp_test.py -0-help --mgr $MGR" | ||||
|         "./lf_tr398_test.py --help --mgr $MGR" | ||||
|         "./lf_webpage.py --help --mgr $MGR" | ||||
|         "./lf_wifi_capacity_test.py --help --mgr $MGR" | ||||
|         "./measure_station_time_up.py --help --mgr $MGR" | ||||
|         "./modify_station.py --help --mgr $MGR" | ||||
|         "./modify_vap.py --help --mgr $MGR" | ||||
|         "./recordinflux.py --help --mgr $MGR" | ||||
|         "./run_cv_scenario.py --help --mgr $MGR" | ||||
|         "./rvr_scenario.py --help --mgr $MGR" | ||||
|         "./scenario.py --help --mgr $MGR" | ||||
|         "./sta_connect.py --help --mgr $MGR" | ||||
|         "./sta_connect2.py --help --mgr $MGR" | ||||
|         "./sta_connect_bssid_mac.py --help --mgr $MGR" | ||||
|         "./sta_connect_example.py --help --mgr $MGR" | ||||
|         "./sta_connect_multi_example.py --help --mgr $MGR" | ||||
|         "./sta_scan_test.py --help --mgr $MGR" | ||||
|         "./station_layer3.py --help --mgr $MGR" | ||||
|         "./stations_connected.py --help --mgr $MGR" | ||||
|         "./test_1k_clients_jedtest.py --help --mgr $MGR" | ||||
|         "./test_client_admission.py --help --mgr $MGR" | ||||
|         "./test_fileio.py --help --mgr $MGR" | ||||
|         "./test_generic.py --help --mgr $MGR" | ||||
|         "./test_ip_connection.py --help --mgr $MGR" | ||||
|         "./test_ip_variable_time.py --help --mgr $MGR" | ||||
|         "./test_ipv4_ps.py --help --mgr $MGR" | ||||
|         "./test_ipv4_ttls.py --help --mgr $MGR" | ||||
|         "./test_l3_WAN_LAN.py --help --mgr $MGR" | ||||
|         "./test_l3_longevity.py --help --mgr $MGR" | ||||
|         "./test_l3_scenario_throughput.py -h -m $MGR" | ||||
|         "./test_l3_unicast_traffic_gen.py --help --mgr $MGR" | ||||
|         "./test_l4.py --help --mgr $MGR" | ||||
|         "./test_status_msg.py --help --mgr $MGR" | ||||
|         "./test_wanlink.py --help --mgr $MGR" | ||||
|         "./test_wpa_passphrases.py --help --mgr $MGR" | ||||
|         "./testgroup.py --help --mgr $MGR" | ||||
|         "./testgroup2.py --help --mgr $MGR" | ||||
|         "./testgroup_delete_group --mgr $MGR" | ||||
|         "./testgroup_list_connections --help --mgr $MGR" | ||||
|         "./testgroup_list_groups.py --help --mgr $MGR" | ||||
|         "./tip_station_powersave.py --help --mgr $MGR" | ||||
|         "./video_rates.py --help --mgr $MGR" | ||||
|         "./wlan_capacity_calculator.py -h --mgr $MGR" | ||||
|         "./ws_generic_monitor_test.py --help --mgr $MGR" | ||||
|   ) | ||||
| elif [[ $MGRLEN -gt 0 ]]; then | ||||
|  | ||||
| if [[ $MGRLEN -gt 0 ]]; then | ||||
|   testCommands=( | ||||
|       "./create_bond.py --network_dev_list eth0,eth1 --debug --mgr $MGR" | ||||
|       "./create_bridge.py --radio $RADIO_USED --upstream_port eth1 --target_device sta0000 --debug --mgr $MGR" | ||||
| @@ -248,7 +156,7 @@ elif [[ $MGRLEN -gt 0 ]]; then | ||||
|       "./create_l3_stations.py --mgr $MGR --radio $RADIO_USED --ssid $SSID_USED --password $PASSWD_USED --security $SECURITY --debug" | ||||
|       "./create_l4.py --radio $RADIO_USED --ssid $SSID_USED --password $PASSWD_USED --security $SECURITY --debug --mgr $MGR" | ||||
|       "./create_macvlan.py --radio 1.$RADIO_USED --macvlan_parent eth1 --debug --mgr $MGR" | ||||
|       "./create_qvlan.py --first_qvlan_ip 192.168.1.50 --mgr $MGR" | ||||
|       "./create_qvlan.py --first_qvlan_ip 192.168.1.50 --mgr $MGR --qvlan_parent eth1" | ||||
|       "./create_station.py --radio $RADIO_USED --ssid $SSID_USED --passwd $PASSWD_USED --security $SECURITY --debug --mgr $MGR" | ||||
|       "./create_vap.py --radio $RADIO_USED --ssid $SSID_USED --passwd $PASSWD_USED --security $SECURITY --debug --mgr $MGR" | ||||
|       "./create_vr.py --mgr $MGR --vr_name 2.vr0 --ports 2.br0,2.vap2 --services 1.br0=dhcp,nat --services 1.vr0=radvd --debug" | ||||
| @@ -270,7 +178,7 @@ elif [[ $MGRLEN -gt 0 ]]; then | ||||
|       #./html_template | ||||
|       #./influx | ||||
|       "./layer3_test.py --mgr $MGR --ssid $SSID_USED --passwd $PASSWD_USED --security $SECURITY" | ||||
|       "./layer4_test --mgr $MGR --ssid $SSID_USED --passwd $PASSWD_USED --security $SECURITY" | ||||
|       "./layer4_test.py --mgr $MGR --ssid $SSID_USED --passwd $PASSWD_USED --security $SECURITY" | ||||
|       "./lf_ap_auto_test.py --mgr $MGR --port 8080 --lf_user lanforge --lf_password lanforge \ | ||||
|       --instance_name ap-auto-instance --config_name test_con --upstream 1.1.eth2 \ | ||||
|       --dut5_0 \"$DUT5 (2)\" --dut2_0 \"$DUT2 (1)\" --max_stations_2 100 --max_stations_5 100 --max_stations_dual 200 \ | ||||
| @@ -299,7 +207,7 @@ elif [[ $MGRLEN -gt 0 ]]; then | ||||
|       #"./lf_ftp.py --mgr $MGR --ssid $SSID_USED --passwd $PASSWD_USED --security $SECURITY --bands 5G --direction Download \ | ||||
|       #     --file_size 2MB --num_stations 2" | ||||
|       "./lf_graph.py --mgr $MGR" | ||||
|       "./lf_mesh_test.py --mgr $MGR --upstream $UPSTREAM --raw_line 'selected_dut2 RootAP wactest $BSSID' --debug" | ||||
|       "./lf_mesh_test.py --mgr $MGR --upstream $UPSTREAM --raw_line 'selected_dut2 RootAP wactest $BSSID'" | ||||
|       #"./lf_multipsk.py --mgr $MGR --ssid $SSID_USED --passwd $PASSWD_USED --security $SECURITY --radio $RADIO_USED --debug" | ||||
|       "./lf_report.py" | ||||
|       "./lf_report_test.py" | ||||
| @@ -320,7 +228,7 @@ elif [[ $MGRLEN -gt 0 ]]; then | ||||
|              --influx_token=-u_Wd-L8o992701QF0c5UmqEp7w7Z7YOMaWLxOMgmHfATJGnQbbmYyNxHBR9PgD6taM_tcxqJl6U8DjU1xINFQ== \ | ||||
|              --influx_bucket ben \ | ||||
|              --influx_tag testbed Ferndale-01" | ||||
|       "lf_sniff_radio.py | ||||
|       "./lf_sniff_radio.py | ||||
|                                --mgr $MGR | ||||
|                                --mgr_port 8080 | ||||
|                                --outfile /home/lanforge/test_sniff.pcap | ||||
| @@ -337,22 +245,40 @@ elif [[ $MGRLEN -gt 0 ]]; then | ||||
|              #--influx_host c7-graphana --influx_port 8086 --influx_org Candela \ | ||||
|              #--influx_token=-u_Wd-L8o992701QF0c5UmqEp7w7Z7YOMaWLxOMgmHfATJGnQbbmYyNxHBR9PgD6taM_tcxqJl6U8DjU1xINFQ== \ | ||||
|              #--influx_bucket ben \ | ||||
|       #measure_station_time_up.py | ||||
|       #modify_station.py | ||||
|       #modify_vap.py | ||||
|       #"./measure_station_time_up.py --radio $RADIO_USED --num_stations 3 --security $SECURITY --ssid $SSID_USED --passwd $PASSWD_USED --debug --report_file measure_station_time_up.txt" | ||||
|       "./modify_station.py | ||||
|                    --radio $RADIO_USED | ||||
|                    --station 1.1.sta0000 | ||||
|                    --security $SECURITY | ||||
|                    --ssid $SSID_USED | ||||
|                    --passwd $PASSWD_USED | ||||
|                    --enable_flag osen_enable | ||||
|                    --disable_flag ht160_enable | ||||
|                    --debug" | ||||
|       "./modify_vap.py --radio $RADIO_USED --vap 1.1.vap0000 --security $SECURITY -ssid $SSID_USED \ | ||||
|        --passwd $PASSWD_USED --enable_flag osen_enable --disable_flag ht160_enable --debug" | ||||
|       #recordinflux.py | ||||
|       #run_cv_scenario.py | ||||
|       #rvr_scenario.py | ||||
|       "./load_ap_scenario.py --lfmgr $MGR --scenario_db 'handsets' --cv_test  --test_scenario 'test-20'" | ||||
|       "./rvr_scenario.py --lfmgr $MGR --lanforge_db 'handsets' --cv_test  --test_scenario 'test-20'" | ||||
|       #scenario.py | ||||
|       #sta_connect2.py | ||||
|       #sta_connect_bssid_mac.py | ||||
|       #"./sta_connect2.py --dest 192.168.100.209 --dut_ssid OpenWrt-2 --dut_bssid 24:F5:A2:08:21:6C" | ||||
|       #./sta_connect_bssid_mac.py | ||||
|       #sta_connect_example.py | ||||
|       #sta_connect_multi_example.py | ||||
|       #sta_connect.py | ||||
|       #sta_scan_test.py | ||||
|       "./sta_scan_test.py --ssid $SSID --security $SECURITY --passwd $PASSWD_USED --radio $RADIO_USED" | ||||
|       #station_layer3.py | ||||
|       #stations_connected.py | ||||
|       #test_1k_clients_jedtest.py | ||||
|       #"./test_1k_clients_jedtest.py | ||||
|       # --mgr $MGR | ||||
|       # --mgr_port 8080 | ||||
|       # --sta_per_radio 300 | ||||
|       # --test_duration 3m | ||||
|       # --a_min 1000 | ||||
|       # --b_min 1000 | ||||
|       # --a_max 0 | ||||
|       # --b_max 0 | ||||
|       # --debug" | ||||
|       #test_client_admission.py | ||||
|       "./test_fileio.py --macvlan_parent eth2 --num_ports 3 --use_macvlans --first_mvlan_ip 192.168.92.13 --netmask 255.255.255.0 --gateway 192.168.92.1 --test_duration 30s --mgr $MGR" # Better tested on Kelly, where VRF is turned off | ||||
|       #"./test_generic.py --radio $RADIO_USED --ssid $SSID_USED --passwd $PASSWD_USED  --security $SECURITY --num_stations $NUM_STA --type lfping --dest $TEST_HTTP_IP --debug --mgr $MGR" | ||||
| @@ -369,7 +295,7 @@ elif [[ $MGRLEN -gt 0 ]]; then | ||||
|       #"./test_ip_variable_time.py --radio $RADIO_USED --ssid $SSID_USED --passwd $PASSWD_USED --security $SECURITY --test_duration 15s --output_format csv --layer3_cols $COL_NAMES --debug --mgr $MGR  --traffic_type lf_udp" | ||||
|       "./test_ip_connection.py --radio $RADIO_USED --ssid $SSID_USED --passwd $PASSWD_USED --security $SECURITY --debug --mgr $MGR --ipv6" | ||||
|       #"./test_ip_variable_time.py --radio $RADIO_USED --ssid $SSID_USED --passwd $PASSWD_USED --security $SECURITY --test_duration 15s --debug --mgr $MGR --ipv6 --traffic_type lf_udp" | ||||
|       #./test_ipv4_ps | ||||
|       "./test_ipv4_ps.py --radio $RADIO_USED --ssid $SSID_USED --passwd $PASSWD_USED --security $SECURITY --debug --mgr $MGR" | ||||
|       #./test_ipv4_ttls | ||||
|       "./test_l3_longevity.py --mgr $MGR --endp_type 'lf_udp lf_tcp' --upstream_port 1.1.$UPSTREAM \ | ||||
|           --radio \"radio==1.1.wiphy0 stations==10 ssid==ASUS_70 ssid_pw==[BLANK] security==open\" \ | ||||
|   | ||||
| @@ -163,7 +163,7 @@ def main(): | ||||
|         formatter_class=argparse.RawTextHelpFormatter, | ||||
|         description="""LANforge Reporting Script:  Load a scenario and run a RvR report | ||||
| Example: | ||||
| ./load_ap_scenario.py --lfmgr 127.0.0.1 --lanforge_db 'handsets' --cv_test  --test_scenario 'test-20' | ||||
| ./rvr_scenario.py --lfmgr 127.0.0.1 --lanforge_db 'handsets' --cv_test  --test_scenario 'test-20' | ||||
| """) | ||||
|     parser.add_argument("-m", "--lfmgr",        type=str, | ||||
|                         help="address of the LANforge GUI machine (localhost is default)") | ||||
|   | ||||
| @@ -3,12 +3,12 @@ import sys | ||||
| import os | ||||
| import importlib | ||||
| import argparse | ||||
| import time | ||||
|  | ||||
| if sys.version_info[0] != 3: | ||||
|     print("This script requires Python 3") | ||||
|     exit(1) | ||||
|  | ||||
|   | ||||
| sys.path.append(os.path.join(os.path.abspath(__file__ + "../../../"))) | ||||
|  | ||||
| lfcli_base = importlib.import_module("py-json.LANforge.lfcli_base") | ||||
| @@ -18,63 +18,151 @@ realm = importlib.import_module("py-json.realm") | ||||
| Realm = realm.Realm | ||||
|  | ||||
|  | ||||
| parser = LFCliBase.create_bare_argparse( | ||||
| def get_events(event_log, value): | ||||
|     results = [] | ||||
|     for event in event_log: | ||||
|         try: | ||||
|             results.append(list(event.values())[0][value]) | ||||
|         except: | ||||
|             pass | ||||
|     return results | ||||
|  | ||||
|  | ||||
| def find_new_events(original, new): | ||||
|     new_times = list() | ||||
|     new_events = list() | ||||
|     original_times = get_events(original['events'], 'time-stamp') | ||||
|     current_times = get_events(new['events'], 'time-stamp') | ||||
|     for x in current_times: | ||||
|         if x not in original_times: | ||||
|             new_times.append(x) | ||||
|     for x in new['events']: | ||||
|         if list(x.values())[0]['time-stamp'] in new_times: | ||||
|             new_events.append(x) | ||||
|     return new_events | ||||
|  | ||||
|  | ||||
| class LoadScenario(Realm): | ||||
|     def __init__(self, | ||||
|                  mgr='localhost', | ||||
|                  mgr_port=8080, | ||||
|                  scenario=None, | ||||
|                  action='overwrite', | ||||
|                  clean_dut=True, | ||||
|                  clean_chambers=True, | ||||
|                  start=None, | ||||
|                  stop=None, | ||||
|                  quiesce=None, | ||||
|                  timeout=120, | ||||
|                  debug=False): | ||||
|         super().__init__(lfclient_host=mgr, | ||||
|                          lfclient_port=mgr_port, | ||||
|                          debug_=debug) | ||||
|         self.mgr = mgr | ||||
|         self.scenario = scenario | ||||
|         self.action = action | ||||
|         self.clean_dut = clean_dut | ||||
|         self.clean_chambers = clean_chambers | ||||
|         self.start = start | ||||
|         self.stop = stop | ||||
|         self.quiesce = quiesce | ||||
|         self.timeout = timeout | ||||
|  | ||||
|         starting_events = self.json_get('/events/since=time/1h') | ||||
|  | ||||
|         if self.scenario is not None: | ||||
|             data = { | ||||
|                 "name": self.scenario, | ||||
|                 "action": self.action, | ||||
|                 "clean_dut": "no", | ||||
|                 "clean_chambers": "no" | ||||
|             } | ||||
|             if self.clean_dut: | ||||
|                 data['clean_dut'] = "yes" | ||||
|             if self.clean_chambers: | ||||
|                 data['clean_chambers'] = "yes" | ||||
|             print("Loading database %s" % self.scenario) | ||||
|             self.json_post("/cli-json/load", data) | ||||
|  | ||||
|  | ||||
|         elif self.start is not None: | ||||
|             print("Starting test group %s..." % self.start) | ||||
|             self.json_post("/cli-json/start_group", {"name": self.start}) | ||||
|         elif self.stop is not None: | ||||
|             print("Stopping test group %s..." % self.stop) | ||||
|             self.json_post("/cli-json/stop_group", {"name": self.stop}) | ||||
|         elif self.quiesce is not None: | ||||
|             print("Quiescing test group %s..." % self.quiesce) | ||||
|             self.json_post("/cli-json/quiesce_group", {"name": self.quiesce}) | ||||
|  | ||||
|         completed = False | ||||
|         timer = 0 | ||||
|         while not completed: | ||||
|             current_events = self.json_get('/events/since=time/1h') | ||||
|             new_events = find_new_events(starting_events, current_events) | ||||
|             if 'LOAD-DB:  Load attempt has been completed.' in get_events(new_events, 'event description'): | ||||
|                 completed = True | ||||
|                 print('Scenario %s fully loaded after %s seconds' % (self.scenario, timer)) | ||||
|             else: | ||||
|                 timer += 1 | ||||
|                 time.sleep(1) | ||||
|                 if timer > self.timeout: | ||||
|                     completed = True | ||||
|                     print('Scenario failed to load after 120 seconds') | ||||
|                 else: | ||||
|                     print('Waiting %s out of %s seconds to load scenario %s' % (timer, self.timeout, self.scenario)) | ||||
|  | ||||
|  | ||||
| def main(): | ||||
|     parser = LFCliBase.create_bare_argparse( | ||||
|         prog='scenario.py', | ||||
|         formatter_class=argparse.RawTextHelpFormatter, | ||||
|         epilog='''Load a database file and control test groups\n''', | ||||
|         description='''scenario.py | ||||
| -------------------- | ||||
| Generic command example: | ||||
| scenario.py --load db1 --action overwrite --clean_dut --clean_chambers | ||||
|     -------------------- | ||||
|     Generic command example: | ||||
|     scenario.py --load db1 --action overwrite --clean_dut --clean_chambers | ||||
|      | ||||
| scenario.py --start test_group1 | ||||
|     scenario.py --start test_group1 | ||||
|      | ||||
| scenario.py --quiesce test_group1 | ||||
|     scenario.py --quiesce test_group1 | ||||
|      | ||||
| scenario.py --stop test_group1 | ||||
| ''') | ||||
|     scenario.py --stop test_group1 | ||||
|     ''') | ||||
|  | ||||
| group = parser.add_mutually_exclusive_group() | ||||
|     group = parser.add_mutually_exclusive_group() | ||||
|  | ||||
| parser.add_argument('--load', help='name of database to load', default=None) | ||||
|     parser.add_argument('--load', help='name of database to load', default=None) | ||||
|  | ||||
| parser.add_argument('--action', help='action to take with database {overwrite | append}', default="overwrite") | ||||
|     parser.add_argument('--action', help='action to take with database {overwrite | append}', default="overwrite") | ||||
|  | ||||
| parser.add_argument('--clean_dut', | ||||
|     parser.add_argument('--clean_dut', | ||||
|                         help='use to cleanup DUT will be when overwrite is selected, otherwise they will be kept', | ||||
|                         action="store_true") | ||||
|  | ||||
| parser.add_argument('--clean_chambers', | ||||
|     parser.add_argument('--clean_chambers', | ||||
|                         help='use to cleanup Chambers will be when overwrite is selected, otherwise they will be kept', | ||||
|                         action="store_true") | ||||
|  | ||||
| group.add_argument('--start', help='name of test group to start', default=None) | ||||
| group.add_argument('--quiesce', help='name of test group to quiesce', default=None) | ||||
| group.add_argument('--stop', help='name of test group to stop', default=None) | ||||
| args = parser.parse_args() | ||||
|     group.add_argument('--start', help='name of test group to start', default=None) | ||||
|     group.add_argument('--quiesce', help='name of test group to quiesce', default=None) | ||||
|     group.add_argument('--stop', help='name of test group to stop', default=None) | ||||
|     parser.add_argument('--timeout', help='Stop trying to load scenario after this many seconds', default=120) | ||||
|     args = parser.parse_args() | ||||
|  | ||||
| local_realm = realm.Realm(lfclient_host=args.mgr, lfclient_port=args.mgr_port, debug_=args.debug) | ||||
|     LoadScenario(mgr=args.mgr, | ||||
|                  scenario=args.load, | ||||
|                  action=args.action, | ||||
|                  clean_dut=args.clean_dut, | ||||
|                  clean_chambers=args.clean_chambers, | ||||
|                  start=args.start, | ||||
|                  stop=args.stop, | ||||
|                  quiesce=args.quiesce, | ||||
|                  timeout=args.timeout, | ||||
|                  debug=args.debug) | ||||
|  | ||||
| if args.load is not None: | ||||
|     data = { | ||||
|         "name": args.load, | ||||
|         "action": args.action, | ||||
|         "clean_dut": "no", | ||||
|         "clean_chambers": "no" | ||||
|     } | ||||
|     if args.clean_dut: | ||||
|         data['clean_dut'] = "yes" | ||||
|     if args.clean_chambers: | ||||
|         data['clean_chambers'] = "yes" | ||||
|     print("Loading database %s" % args.load) | ||||
|     local_realm.json_post("/cli-json/load", data) | ||||
|     # LoadScenario.scenario() | ||||
|  | ||||
| elif args.start is not None: | ||||
|     print("Starting test group %s..." % args.start) | ||||
|     local_realm.json_post("/cli-json/start_group", {"name": args.start}) | ||||
| elif args.stop is not None: | ||||
|     print("Stopping test group %s..." % args.stop) | ||||
|     local_realm.json_post("/cli-json/stop_group", {"name": args.stop}) | ||||
| elif args.quiesce is not None: | ||||
|     print("Quiescing test group %s..." % args.quiesce) | ||||
|     local_realm.json_post("/cli-json/quiesce_group", {"name": args.quiesce}) | ||||
|  | ||||
| if __name__ == '__main__': | ||||
|     main() | ||||
|   | ||||
| @@ -715,7 +715,7 @@ NOTE: Diagrams are links in dashboard""".format(ip_qa=ip,qa_url=qa_url) | ||||
|  | ||||
|         # no spaces after FACTORY_DFLT | ||||
|         command = "./{} {}".format("scenario.py", "--load FACTORY_DFLT") | ||||
|         process = subprocess.Popen((command).split(' '), shell=False, stdout=subprocess.PIPE, stderr=subprocess.PIPE, | ||||
|         process = subprocess.Popen(command.split(' '), shell=False, stdout=subprocess.PIPE, stderr=subprocess.PIPE, | ||||
|                                    universal_newlines=True) | ||||
|         # wait for the process to terminate | ||||
|         out, err = process.communicate() | ||||
|   | ||||
| @@ -92,11 +92,9 @@ from .csv_convert import CSVParcer | ||||
| from .csv_processor import L3CSVParcer | ||||
| from .csv_to_influx import CSVtoInflux | ||||
| from .csv_to_grafana import UseGrafana | ||||
| from .download_test import DownloadTest | ||||
| from .event_breaker import EventBreaker | ||||
| from .event_flood import EventBreaker as EventFlood | ||||
| from .example_security_connection import IPv4Test | ||||
| from .ghost_profile import UseGhost | ||||
| from .grafana_profile import UseGrafana | ||||
| from .influx import RecordInflux | ||||
| from .layer3_test import Layer3Test | ||||
| @@ -107,7 +105,6 @@ from .lf_csv import lf_csv, lf_kpi_csv | ||||
| from .lf_dataplane_test import DataplaneTest | ||||
| from .lf_dfs_test import FileAdapter, CreateCtlr, L3VariableTime | ||||
| from .lf_dut_sta_vap_test import Login_DUT, LoadScenario, CreateSTA_CX | ||||
| from .lf_ftp_test import ftp_test | ||||
| from .lf_ftp import FtpTest | ||||
| from .lf_graph import lf_bar_graph, lf_stacked_graph, lf_horizontal_stacked_graph, lf_scatter_graph, lf_line_graph | ||||
| from .lf_mesh_test import MeshTest | ||||
| @@ -320,6 +317,7 @@ sed -i -- 's/PortUtils = port_utils.PortUtils/ /g' *.py | ||||
| sed -i -- 's/LFCliBase = lfcli_base.LFCliBase/ /g' *.py | ||||
| sed -i -- 's/pandas_extensions = importlib.import_module("py-json.LANforge.pandas_extensions")/from .LANforge.pandas_extensions import pandas_extensions/g' *.py | ||||
| sed -i -- 's/pandas_extensions.pandas_extensions/pandas_extensions/g' *.py | ||||
| sed -i -- 's/vr_profile2 = importlib.import_module("py-json.vr_profile2")/from ..py_json import vr_profile2/g' *.py | ||||
|  | ||||
| # fix py_dashboard files | ||||
| sed -i -- 's/from GrafanaRequest/from ..py_dashboard.GrafanaRequest/g' *.py | ||||
| @@ -370,7 +368,7 @@ cd LANforge | ||||
| echo " | ||||
| from .add_dut import dut_params, dut_flags | ||||
| from .add_file_endp import fe_fstype, fe_payload_list, fe_fio_flags, fe_base_endpoint_types | ||||
| from .lf_json_autogen import LFJsonGet, LFJsonPost | ||||
| #from .lf_json_autogen import LFJsonGet, LFJsonPost | ||||
| from .lfcli_base import LFCliBase | ||||
| from .LFRequest import LFRequest | ||||
| from .LFUtils import * | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Matthew Stidham
					Matthew Stidham