mirror of
				https://github.com/Telecominfraproject/wlan-lanforge-scripts.git
				synced 2025-10-31 18:58:01 +00:00 
			
		
		
		
	Test groups/test group related cxs no longer get created or deleted if already existing
This commit is contained in:
		| @@ -67,7 +67,7 @@ class FileIOTest(LFCliBase): | ||||
|         self.test_duration = test_duration | ||||
|         self.port_list = [] | ||||
|         self.use_macvlans = use_macvlans | ||||
|         self.mode = mode | ||||
|         self.mode = mode.lower() | ||||
|         self.ip_list = ip_list | ||||
|         self.netmask = netmask | ||||
|         self.gateway = gateway | ||||
| @@ -103,8 +103,8 @@ class FileIOTest(LFCliBase): | ||||
|         #self.min_file_size = self.parse_size(min_file_size) | ||||
|         #self.min_file_size = self.parse_size(min_file_size) | ||||
|         #self.min_read_rate_bps = self.parse_size_bps(min_read_rate_bps) | ||||
|         #self.max_read_rate_bps = self.parse_size_bps(max_read_rate_bps) | ||||
|         #self.min_write_rate_bps = self.parse_size_bps(min_write_rate_bps) | ||||
|         # self.max_read_rate_bps = self.sisize_bps(max_read_rate_bps) | ||||
|         # self.min_write_rate_bps = self.parse_size_bps(min_write_rate_bps) | ||||
|         #self.max_write_rate_bps = self.parse_size_bps(max_write_rate_bps) | ||||
|  | ||||
|         self.local_realm = realm.Realm(lfclient_host=self.host, lfclient_port=self.port) | ||||
| @@ -146,13 +146,17 @@ class FileIOTest(LFCliBase): | ||||
|         self.created_ports = [] | ||||
|         if self.use_test_groups: | ||||
|             if self.mode is not None: | ||||
|                 if self.mode.lower() == "write": | ||||
|                 if self.mode == "write": | ||||
|                     self.wo_tg_profile = self.local_realm.new_test_group_profile() | ||||
|                 elif self.mode.lower() == "read": | ||||
|                     self.wo_tg_profile.group_name = self.write_only_test_group | ||||
|                 elif self.mode == "read": | ||||
|                     self.ro_tg_profile = self.local_realm.new_test_group_profile() | ||||
|                 elif self.mode.lower() == "both": | ||||
|                     self.ro_tg_profile.group_name = self.read_only_test_group | ||||
|                 elif self.mode == "both": | ||||
|                     self.wo_tg_profile = self.local_realm.new_test_group_profile() | ||||
|                     self.ro_tg_profile = self.local_realm.new_test_group_profile() | ||||
|                     self.wo_tg_profile.group_name = self.write_only_test_group | ||||
|                     self.ro_tg_profile.group_name = self.read_only_test_group | ||||
|                 else: | ||||
|                     raise ValueError("Unknown mode given ", self.mode) | ||||
|             else: | ||||
| @@ -166,12 +170,41 @@ class FileIOTest(LFCliBase): | ||||
|                 if not temp_tg.check_group_exists(): | ||||
|                     temp_tg.create_group() | ||||
|                 for cx in temp_cxs: | ||||
|                     if "CX_" not in cx: | ||||
|                         cx = "CX_" + cx | ||||
|                     temp_tg.add_cx(cx) | ||||
|             if update_group_args['action'] == "del": | ||||
|                 temp_tg.group_name = update_group_args['name'] | ||||
|                 if temp_tg.check_group_exists(): | ||||
|                     for cx in temp_cxs: | ||||
|                         temp_tg.rm_cx(cx) | ||||
|             time.sleep(5) | ||||
|  | ||||
|         self.wo_tg_exists = False | ||||
|         self.ro_tg_exists = False | ||||
|         self.wo_tg_cx_exists = False | ||||
|         self.ro_tg_cx_exists = False | ||||
|         print("Checking for pre-existing test groups and cxs") | ||||
|         if self.use_test_groups: | ||||
|             if self.mode == "write": | ||||
|                 if self.wo_tg_profile.check_group_exists(): | ||||
|                     self.wo_tg_exists = True | ||||
|                     if len(self.wo_tg_profile.list_cxs()) > 0: | ||||
|                         self.wo_tg_cx_exists = True | ||||
|             elif self.mode == "read": | ||||
|                 if self.ro_tg_profile.check_group_exists(): | ||||
|                     self.ro_tg_exists = True | ||||
|                     if len(self.ro_tg_profile.list_cxs()) > 0: | ||||
|                         self.ro_tg_cx_exists = True | ||||
|             elif self.mode == "both": | ||||
|                 if self.wo_tg_profile.check_group_exists(): | ||||
|                     self.wo_tg_exists = True | ||||
|                     if len(self.wo_tg_profile.list_cxs()) > 0: | ||||
|                         self.wo_tg_cx_exists = True | ||||
|                 if self.ro_tg_profile.check_group_exists(): | ||||
|                     self.ro_tg_exists = True | ||||
|                     if len(self.ro_tg_profile.list_cxs()) > 0: | ||||
|                         self.ro_tg_cx_exists = True | ||||
|  | ||||
|     def __compare_vals(self, val_list): | ||||
|         passes = 0 | ||||
| @@ -267,56 +300,113 @@ class FileIOTest(LFCliBase): | ||||
|             else: | ||||
|                 raise ValueError("Netmask and gateway must be specified") | ||||
|  | ||||
|         # if use test groups and test group does not exist, create cxs, create test group, assign to test group | ||||
|         # if use test groups and test group exists and no cxs, create cxs, assign to test group | ||||
|         # if use test groups and test group exist and cxs exist, do nothing | ||||
|         # if not use test groups, create cxs | ||||
|         if self.mode is not None: | ||||
|             if self.mode.lower() == "write": | ||||
|                 print("Creating Write Only CXs") | ||||
|                 self.wo_profile.create(ports=self.created_ports, sleep_time=.5, debug_=self.debug, | ||||
|                                        suppress_related_commands_=None) | ||||
|             elif self.mode.lower() == "read": | ||||
|                 print("Creating Read Only CXs") | ||||
|                 self.ro_profile.create(ports=self.created_ports, sleep_time=.5, debug_=self.debug, | ||||
|                                        suppress_related_commands_=None) | ||||
|             else: | ||||
|                 print("Creating Write Only CXs") | ||||
|                 print("Creating Read Only CXs") | ||||
|                 self.wo_profile.create(ports=self.created_ports, sleep_time=.5, debug_=self.debug, | ||||
|                                        suppress_related_commands_=None) | ||||
|                 self.ro_profile.create(ports=self.created_ports, sleep_time=.5, debug_=self.debug, | ||||
|                                        suppress_related_commands_=None) | ||||
|  | ||||
|         if self.use_test_groups: | ||||
|             print("Creating test groups...") | ||||
|             if self.mode is not None: | ||||
|                 if self.mode.lower() == "write": | ||||
|                     if not self.wo_tg_profile.check_group_exists(): | ||||
|                         self.wo_tg_profile.group_name = self.write_only_test_group | ||||
|             if self.use_test_groups: | ||||
|                 if self.mode == "write": | ||||
|                     if self.wo_tg_exists: | ||||
|                         if not self.wo_tg_cx_exists: | ||||
|                             print("Creating Write Only CXs") | ||||
|                             self.wo_profile.create(ports=self.created_ports, sleep_time=.5, debug_=self.debug, | ||||
|                                                    suppress_related_commands_=None) | ||||
|                             time.sleep(1) | ||||
|                             print("Adding cxs to %s" % self.wo_tg_profile.group_name) | ||||
|                             for cx in self.wo_profile.created_cx.values(): | ||||
|                                 self.wo_tg_profile.add_cx(cx) | ||||
|                     else: | ||||
|                         print("Creating Write Only CXs") | ||||
|                         self.wo_profile.create(ports=self.created_ports, sleep_time=.5, debug_=self.debug, | ||||
|                                                suppress_related_commands_=None) | ||||
|                         time.sleep(1) | ||||
|                         print("Creating Write Only test group") | ||||
|                         self.wo_tg_profile.create_group() | ||||
|                         print("Adding cxs to %s" % self.wo_tg_profile.group_name) | ||||
|                         for cx in self.wo_profile.created_cx.values(): | ||||
|                             self.wo_tg_profile.add_cx(cx) | ||||
|                 elif self.mode.lower() == "read": | ||||
|                     if not self.ro_tg_profile.check_group_exists(): | ||||
|                         self.ro_tg_profile.group_name = self.read_only_test_group | ||||
|                 elif self.mode == "read": | ||||
|                     if self.ro_tg_exists: | ||||
|                         if not self.ro_tg_cx_exists: | ||||
|                             print("Creating Read Only CXs") | ||||
|                             self.ro_profile.create(ports=self.created_ports, sleep_time=.5, debug_=self.debug, | ||||
|                                                    suppress_related_commands_=None) | ||||
|                             time.sleep(1) | ||||
|                             print("Adding cxs to %s" % self.ro_tg_profile.group_name) | ||||
|                             for cx in self.ro_profile.created_cx.values(): | ||||
|                                 self.ro_tg_profile.add_cx(cx) | ||||
|                     else: | ||||
|                         print("Creating Read Only CXs") | ||||
|                         self.ro_profile.create(ports=self.created_ports, sleep_time=.5, debug_=self.debug, | ||||
|                                                suppress_related_commands_=None) | ||||
|                         time.sleep(1) | ||||
|                         print("Creating Read Only test group") | ||||
|                         self.ro_tg_profile.create_group() | ||||
|                         print("Adding cxs to %s" % self.ro_tg_profile.group_name) | ||||
|                         for cx in self.ro_profile.created_cx.values(): | ||||
|                             self.ro_tg_profile.add_cx(cx) | ||||
|                 elif self.mode.lower() == "both": | ||||
|                     if not self.wo_tg_profile.check_group_exists(): | ||||
|                         self.wo_tg_profile.group_name = self.write_only_test_group | ||||
|                 elif self.mode == "both": | ||||
|                     if self.wo_tg_exists: | ||||
|                         if not self.wo_tg_cx_exists: | ||||
|                             print("Creating Write Only CXs") | ||||
|                             self.wo_profile.create(ports=self.created_ports, sleep_time=.5, debug_=self.debug, | ||||
|                                                    suppress_related_commands_=None) | ||||
|                             time.sleep(1) | ||||
|                             print("Adding cxs to %s" % self.wo_tg_profile.group_name) | ||||
|                             for cx in self.wo_profile.created_cx.values(): | ||||
|                                 self.wo_tg_profile.add_cx(cx) | ||||
|                     else: | ||||
|                         print("Creating Write Only CXs") | ||||
|                         self.wo_profile.create(ports=self.created_ports, sleep_time=.5, debug_=self.debug, | ||||
|                                                suppress_related_commands_=None) | ||||
|                         time.sleep(1) | ||||
|                         print("Creating Write Only test group") | ||||
|                         self.wo_tg_profile.create_group() | ||||
|                         print("Adding cxs to %s" % self.wo_tg_profile.group_name) | ||||
|                         for cx in self.wo_profile.created_cx.values(): | ||||
|                             self.wo_tg_profile.add_cx(cx) | ||||
|                     if not self.ro_tg_profile.check_group_exists(): | ||||
|                         self.ro_tg_profile.group_name = self.read_only_test_group | ||||
|                     if self.ro_tg_exists: | ||||
|                         if not self.ro_tg_cx_exists: | ||||
|                             print("Creating Read Only CXs") | ||||
|                             self.ro_profile.create(ports=self.created_ports, sleep_time=.5, debug_=self.debug, | ||||
|                                                    suppress_related_commands_=None) | ||||
|                             time.sleep(1) | ||||
|                             print("Adding cxs to %s" % self.ro_tg_profile.group_name) | ||||
|                             for cx in self.ro_profile.created_cx.values(): | ||||
|                                 self.ro_tg_profile.add_cx(cx) | ||||
|                     else: | ||||
|                         print("Creating Read Only CXs") | ||||
|                         self.ro_profile.create(ports=self.created_ports, sleep_time=.5, debug_=self.debug, | ||||
|                                                suppress_related_commands_=None) | ||||
|                         time.sleep(1) | ||||
|                         print("Creating Read Only test group") | ||||
|                         self.ro_tg_profile.create_group() | ||||
|                         print("Adding cxs to %s" % self.ro_tg_profile.group_name) | ||||
|                         for cx in self.ro_profile.created_cx.values(): | ||||
|                             self.ro_tg_profile.add_cx(cx) | ||||
|                 else: | ||||
|                     raise ValueError("Unknown mode given ", self.mode) | ||||
|                     raise ValueError("Uknown mode used, must be (read, write, both)") | ||||
|             else: | ||||
|                 raise ValueError("Mode (read, write, or both) must be specified") | ||||
|  | ||||
|  | ||||
|  | ||||
|                 if self.mode == "write": | ||||
|                     print("Creating Write Only CXs") | ||||
|                     self.wo_profile.create(ports=self.created_ports, sleep_time=.5, debug_=self.debug, | ||||
|                                            suppress_related_commands_=None) | ||||
|                 elif self.mode == "read": | ||||
|                     print("Creating Read Only CXs") | ||||
|                     self.ro_profile.create(ports=self.created_ports, sleep_time=.5, debug_=self.debug, | ||||
|                                            suppress_related_commands_=None) | ||||
|                 elif self.mode == "both": | ||||
|                     print("Creating Write Only CXs") | ||||
|                     self.wo_profile.create(ports=self.created_ports, sleep_time=.5, debug_=self.debug, | ||||
|                                            suppress_related_commands_=None) | ||||
|                     print("Creating Read Only CXs") | ||||
|                     self.ro_profile.create(ports=self.created_ports, sleep_time=.5, debug_=self.debug, | ||||
|                                            suppress_related_commands_=None) | ||||
|                 else: | ||||
|                     raise ValueError("Uknown mode used, must be (read, write, both)") | ||||
|         else: | ||||
|             raise ValueError("Mode must be set (read, write, both)") | ||||
|  | ||||
|     def start(self, print_pass=False, print_fail=False): | ||||
|         temp_ports = self.created_ports.copy() | ||||
| @@ -403,24 +493,41 @@ class FileIOTest(LFCliBase): | ||||
|             self.mvlan_profile.admin_down() | ||||
|  | ||||
|     def cleanup(self, port_list=None): | ||||
|         # TODO Add check for pre-existing test groups | ||||
|         if self.use_test_groups: | ||||
|             if self.mode == "read": | ||||
|                 if self.ro_tg_profile.check_group_exists(): | ||||
|                     self.ro_tg_profile.rm_group() | ||||
|                 if not self.ro_tg_exists: | ||||
|                     if self.ro_tg_profile.check_group_exists(): | ||||
|                         self.ro_tg_profile.rm_group() | ||||
|                 if not self.ro_tg_cx_exists: | ||||
|                     self.ro_profile.cleanup() | ||||
|  | ||||
|             elif self.mode == "write": | ||||
|                 if self.wo_tg_profile.check_group_exists(): | ||||
|                     self.wo_tg_profile.rm_group() | ||||
|             else: | ||||
|                 if self.ro_tg_profile.check_group_exists(): | ||||
|                     self.ro_tg_profile.rm_group() | ||||
|                 if self.wo_tg_profile.check_group_exists(): | ||||
|                     self.wo_tg_profile.rm_group() | ||||
|                 if not self.wo_tg_exists: | ||||
|                     if self.wo_tg_profile.check_group_exists(): | ||||
|                         self.wo_tg_profile.rm_group() | ||||
|                 if not self.wo_tg_cx_exists: | ||||
|                     self.wo_profile.cleanup() | ||||
|  | ||||
|             time.sleep(1) | ||||
|             elif self.mode == "both": | ||||
|                 if not self.ro_tg_exists: | ||||
|                     if self.ro_tg_profile.check_group_exists(): | ||||
|                         self.ro_tg_profile.rm_group() | ||||
|                 if not self.ro_tg_cx_exists: | ||||
|                     self.ro_profile.cleanup() | ||||
|  | ||||
|         self.wo_profile.cleanup() | ||||
|         self.ro_profile.cleanup() | ||||
|                 if not self.wo_tg_exists: | ||||
|                     if self.wo_tg_profile.check_group_exists(): | ||||
|                         self.wo_tg_profile.rm_group() | ||||
|                 if not self.wo_tg_cx_exists: | ||||
|                     self.wo_profile.cleanup() | ||||
|         else: | ||||
|             if self.mode == "read": | ||||
|                 self.ro_profile.cleanup() | ||||
|             elif self.mode == "write": | ||||
|                 self.wo_profile.cleanup() | ||||
|             elif self.mode == "both": | ||||
|                 self.ro_profile.cleanup() | ||||
|                 self.wo_profile.cleanup() | ||||
|  | ||||
|         if not self.use_macvlans and self.ip_list is None: | ||||
|             self.station_profile.cleanup(port_list) | ||||
| @@ -431,7 +538,7 @@ class FileIOTest(LFCliBase): | ||||
|  | ||||
|  | ||||
| def main(): | ||||
|     parser = LFCliBase.create_basic_argparse( | ||||
|     parser = LFCliBase.create_bare_argparse( | ||||
|         prog='test_fileio.py', | ||||
|         # formatter_class=argparse.RawDescriptionHelpFormatter, | ||||
|         formatter_class=argparse.RawTextHelpFormatter, | ||||
| @@ -447,7 +554,14 @@ Generic command layout: | ||||
| ./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 | ||||
| ''') | ||||
|     # TODO Change to bare argparse, add optional switches for station related things (ssid, security, passwd) | ||||
|     parser.add_argument('--num_stations', help='Number of stations to create', default=0) | ||||
|     parser.add_argument('--radio', help='radio EID, e.g: 1.wiphy2') | ||||
|     parser.add_argument('--ssid', help='SSID for stations to associate to') | ||||
|     parser.add_argument('--passwd', '--password', '--key', help='WiFi passphrase/password/key') | ||||
|     parser.add_argument('--security', help='security type to use for ssid { wep | wpa | wpa2 | wpa3 | open }') | ||||
|     parser.add_argument('-u', '--upstream_port', | ||||
|                   help='non-station port that generates traffic: <resource>.<port>, e.g: 1.eth1', | ||||
|                   default='1.eth1') | ||||
|     parser.add_argument('--test_duration', help='sets the duration of the test', default="5m") | ||||
|     parser.add_argument('--fs_type', help='endpoint type', default="fe_nfs4") | ||||
|     parser.add_argument('--min_rw_size', help='minimum read/write size', default=64*1024) | ||||
| @@ -587,9 +701,10 @@ Generic command layout: | ||||
|  | ||||
|     ip_test.cleanup(port_list) | ||||
|     ip_test.build() | ||||
|     # exit(1) | ||||
|     if not ip_test.passes(): | ||||
|         print(ip_test.get_fail_message()) | ||||
|     ip_test.start(False, False) | ||||
|     # ip_test.start(False, False) | ||||
|     ip_test.stop() | ||||
|     if not ip_test.passes(): | ||||
|         print(ip_test.get_fail_message()) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Logan Lipke
					Logan Lipke