mirror of
				https://github.com/Telecominfraproject/wlan-lanforge-scripts.git
				synced 2025-11-04 04:38:02 +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