mirror of
https://github.com/Telecominfraproject/wlan-lanforge-scripts.git
synced 2025-11-01 03:07:56 +00:00
Multiple connections can be created per port. ips on existing ports can be changed individually
This commit is contained in:
@@ -50,6 +50,7 @@ class FileIOTest(LFCliBase):
|
|||||||
read_only_test_group=None,
|
read_only_test_group=None,
|
||||||
port_list=[],
|
port_list=[],
|
||||||
ip_list=None,
|
ip_list=None,
|
||||||
|
connections_per_port=1,
|
||||||
mode="both",
|
mode="both",
|
||||||
update_group_args={"name": None, "action": None, "cxs": None},
|
update_group_args={"name": None, "action": None, "cxs": None},
|
||||||
_debug_on=False,
|
_debug_on=False,
|
||||||
@@ -66,6 +67,7 @@ class FileIOTest(LFCliBase):
|
|||||||
self.number_template = number_template
|
self.number_template = number_template
|
||||||
self.test_duration = test_duration
|
self.test_duration = test_duration
|
||||||
self.port_list = []
|
self.port_list = []
|
||||||
|
self.connections_per_port = connections_per_port
|
||||||
self.use_macvlans = use_macvlans
|
self.use_macvlans = use_macvlans
|
||||||
self.mode = mode.lower()
|
self.mode = mode.lower()
|
||||||
self.ip_list = ip_list
|
self.ip_list = ip_list
|
||||||
@@ -131,6 +133,7 @@ class FileIOTest(LFCliBase):
|
|||||||
self.wo_profile.max_write_rate_bps = LFUtils.parse_size(max_write_rate_bps)
|
self.wo_profile.max_write_rate_bps = LFUtils.parse_size(max_write_rate_bps)
|
||||||
self.wo_profile.directory = directory
|
self.wo_profile.directory = directory
|
||||||
self.wo_profile.server_mount = server_mount
|
self.wo_profile.server_mount = server_mount
|
||||||
|
self.wo_profile.num_connections_per_port = connections_per_port
|
||||||
|
|
||||||
self.ro_profile = self.wo_profile.create_ro_profile()
|
self.ro_profile = self.wo_profile.create_ro_profile()
|
||||||
|
|
||||||
@@ -280,25 +283,26 @@ class FileIOTest(LFCliBase):
|
|||||||
self.created_ports += self.station_profile.station_names
|
self.created_ports += self.station_profile.station_names
|
||||||
|
|
||||||
if len(self.ip_list) > 0:
|
if len(self.ip_list) > 0:
|
||||||
if self.gateway is not None and self.netmask is not None:
|
# print("++++++++++++++++\n", self.ip_list, "++++++++++++++++\n")
|
||||||
print("++++++++++++++++\n", self.ip_list, "++++++++++++++++\n")
|
for num_port in range(len(self.port_list)):
|
||||||
for num_port in range(len(self.port_list)):
|
if self.ip_list[num_port] != 0:
|
||||||
shelf = self.local_realm.name_to_eid(self.port_list[num_port])[0]
|
if self.gateway is not None and self.netmask is not None:
|
||||||
resource = self.local_realm.name_to_eid(self.port_list[num_port])[1]
|
shelf = self.local_realm.name_to_eid(self.port_list[num_port])[0]
|
||||||
port = self.local_realm.name_to_eid(self.port_list[num_port])[2]
|
resource = self.local_realm.name_to_eid(self.port_list[num_port])[1]
|
||||||
req_url = "/cli-json/set_port"
|
port = self.local_realm.name_to_eid(self.port_list[num_port])[2]
|
||||||
data = {
|
req_url = "/cli-json/set_port"
|
||||||
"shelf": shelf,
|
data = {
|
||||||
"resource": resource,
|
"shelf": shelf,
|
||||||
"port": port,
|
"resource": resource,
|
||||||
"ip_addr": self.ip_list[num_port],
|
"port": port,
|
||||||
"netmask": self.netmask,
|
"ip_addr": self.ip_list[num_port],
|
||||||
"gateway": self.gateway
|
"netmask": self.netmask,
|
||||||
}
|
"gateway": self.gateway
|
||||||
self.local_realm.json_post(req_url, data)
|
}
|
||||||
self.created_ports.append("%s.%s.%s" % (shelf, resource, port))
|
self.local_realm.json_post(req_url, data)
|
||||||
else:
|
self.created_ports.append("%s.%s.%s" % (shelf, resource, port))
|
||||||
raise ValueError("Netmask and gateway must be specified")
|
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 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 exists and no cxs, create cxs, assign to test group
|
||||||
@@ -310,7 +314,8 @@ class FileIOTest(LFCliBase):
|
|||||||
if self.wo_tg_exists:
|
if self.wo_tg_exists:
|
||||||
if not self.wo_tg_cx_exists:
|
if not self.wo_tg_cx_exists:
|
||||||
print("Creating Write Only CXs")
|
print("Creating Write Only CXs")
|
||||||
self.wo_profile.create(ports=self.created_ports, sleep_time=.5, debug_=self.debug,
|
self.wo_profile.create(ports=self.created_ports, connections_per_port=self.connections_per_port,
|
||||||
|
sleep_time=.5, debug_=self.debug,
|
||||||
suppress_related_commands_=None)
|
suppress_related_commands_=None)
|
||||||
time.sleep(1)
|
time.sleep(1)
|
||||||
print("Adding cxs to %s" % self.wo_tg_profile.group_name)
|
print("Adding cxs to %s" % self.wo_tg_profile.group_name)
|
||||||
@@ -318,7 +323,8 @@ class FileIOTest(LFCliBase):
|
|||||||
self.wo_tg_profile.add_cx(cx)
|
self.wo_tg_profile.add_cx(cx)
|
||||||
else:
|
else:
|
||||||
print("Creating Write Only CXs")
|
print("Creating Write Only CXs")
|
||||||
self.wo_profile.create(ports=self.created_ports, sleep_time=.5, debug_=self.debug,
|
self.wo_profile.create(ports=self.created_ports, connections_per_port=self.connections_per_port,
|
||||||
|
sleep_time=.5, debug_=self.debug,
|
||||||
suppress_related_commands_=None)
|
suppress_related_commands_=None)
|
||||||
time.sleep(1)
|
time.sleep(1)
|
||||||
print("Creating Write Only test group")
|
print("Creating Write Only test group")
|
||||||
@@ -330,7 +336,8 @@ class FileIOTest(LFCliBase):
|
|||||||
if self.ro_tg_exists:
|
if self.ro_tg_exists:
|
||||||
if not self.ro_tg_cx_exists:
|
if not self.ro_tg_cx_exists:
|
||||||
print("Creating Read Only CXs")
|
print("Creating Read Only CXs")
|
||||||
self.ro_profile.create(ports=self.created_ports, sleep_time=.5, debug_=self.debug,
|
self.ro_profile.create(ports=self.created_ports, connections_per_port=self.connections_per_port,
|
||||||
|
sleep_time=.5, debug_=self.debug,
|
||||||
suppress_related_commands_=None)
|
suppress_related_commands_=None)
|
||||||
time.sleep(1)
|
time.sleep(1)
|
||||||
print("Adding cxs to %s" % self.ro_tg_profile.group_name)
|
print("Adding cxs to %s" % self.ro_tg_profile.group_name)
|
||||||
@@ -338,7 +345,8 @@ class FileIOTest(LFCliBase):
|
|||||||
self.ro_tg_profile.add_cx(cx)
|
self.ro_tg_profile.add_cx(cx)
|
||||||
else:
|
else:
|
||||||
print("Creating Read Only CXs")
|
print("Creating Read Only CXs")
|
||||||
self.ro_profile.create(ports=self.created_ports, sleep_time=.5, debug_=self.debug,
|
self.ro_profile.create(ports=self.created_ports, connections_per_port=self.connections_per_port,
|
||||||
|
sleep_time=.5, debug_=self.debug,
|
||||||
suppress_related_commands_=None)
|
suppress_related_commands_=None)
|
||||||
time.sleep(1)
|
time.sleep(1)
|
||||||
print("Creating Read Only test group")
|
print("Creating Read Only test group")
|
||||||
@@ -350,7 +358,8 @@ class FileIOTest(LFCliBase):
|
|||||||
if self.wo_tg_exists:
|
if self.wo_tg_exists:
|
||||||
if not self.wo_tg_cx_exists:
|
if not self.wo_tg_cx_exists:
|
||||||
print("Creating Write Only CXs")
|
print("Creating Write Only CXs")
|
||||||
self.wo_profile.create(ports=self.created_ports, sleep_time=.5, debug_=self.debug,
|
self.wo_profile.create(ports=self.created_ports, connections_per_port=self.connections_per_port,
|
||||||
|
sleep_time=.5, debug_=self.debug,
|
||||||
suppress_related_commands_=None)
|
suppress_related_commands_=None)
|
||||||
time.sleep(1)
|
time.sleep(1)
|
||||||
print("Adding cxs to %s" % self.wo_tg_profile.group_name)
|
print("Adding cxs to %s" % self.wo_tg_profile.group_name)
|
||||||
@@ -358,7 +367,8 @@ class FileIOTest(LFCliBase):
|
|||||||
self.wo_tg_profile.add_cx(cx)
|
self.wo_tg_profile.add_cx(cx)
|
||||||
else:
|
else:
|
||||||
print("Creating Write Only CXs")
|
print("Creating Write Only CXs")
|
||||||
self.wo_profile.create(ports=self.created_ports, sleep_time=.5, debug_=self.debug,
|
self.wo_profile.create(ports=self.created_ports, connections_per_port=self.connections_per_port,
|
||||||
|
sleep_time=.5, debug_=self.debug,
|
||||||
suppress_related_commands_=None)
|
suppress_related_commands_=None)
|
||||||
time.sleep(1)
|
time.sleep(1)
|
||||||
print("Creating Write Only test group")
|
print("Creating Write Only test group")
|
||||||
@@ -369,7 +379,8 @@ class FileIOTest(LFCliBase):
|
|||||||
if self.ro_tg_exists:
|
if self.ro_tg_exists:
|
||||||
if not self.ro_tg_cx_exists:
|
if not self.ro_tg_cx_exists:
|
||||||
print("Creating Read Only CXs")
|
print("Creating Read Only CXs")
|
||||||
self.ro_profile.create(ports=self.created_ports, sleep_time=.5, debug_=self.debug,
|
self.ro_profile.create(ports=self.created_ports, connections_per_port=self.connections_per_port,
|
||||||
|
sleep_time=.5, debug_=self.debug,
|
||||||
suppress_related_commands_=None)
|
suppress_related_commands_=None)
|
||||||
time.sleep(1)
|
time.sleep(1)
|
||||||
print("Adding cxs to %s" % self.ro_tg_profile.group_name)
|
print("Adding cxs to %s" % self.ro_tg_profile.group_name)
|
||||||
@@ -377,7 +388,8 @@ class FileIOTest(LFCliBase):
|
|||||||
self.ro_tg_profile.add_cx(cx)
|
self.ro_tg_profile.add_cx(cx)
|
||||||
else:
|
else:
|
||||||
print("Creating Read Only CXs")
|
print("Creating Read Only CXs")
|
||||||
self.ro_profile.create(ports=self.created_ports, sleep_time=.5, debug_=self.debug,
|
self.ro_profile.create(ports=self.created_ports, connections_per_port=self.connections_per_port,
|
||||||
|
sleep_time=.5, debug_=self.debug,
|
||||||
suppress_related_commands_=None)
|
suppress_related_commands_=None)
|
||||||
time.sleep(1)
|
time.sleep(1)
|
||||||
print("Creating Read Only test group")
|
print("Creating Read Only test group")
|
||||||
@@ -390,21 +402,25 @@ class FileIOTest(LFCliBase):
|
|||||||
else:
|
else:
|
||||||
if self.mode == "write":
|
if self.mode == "write":
|
||||||
print("Creating Write Only CXs")
|
print("Creating Write Only CXs")
|
||||||
self.wo_profile.create(ports=self.created_ports, sleep_time=.5, debug_=self.debug,
|
self.wo_profile.create(ports=self.created_ports, connections_per_port=self.connections_per_port,
|
||||||
|
sleep_time=.5, debug_=self.debug,
|
||||||
suppress_related_commands_=None)
|
suppress_related_commands_=None)
|
||||||
elif self.mode == "read":
|
elif self.mode == "read":
|
||||||
print("Creating Read Only CXs")
|
print("Creating Read Only CXs")
|
||||||
self.ro_profile.create(ports=self.created_ports, sleep_time=.5, debug_=self.debug,
|
self.ro_profile.create(ports=self.created_ports, connections_per_port=self.connections_per_port,
|
||||||
|
sleep_time=.5, debug_=self.debug,
|
||||||
suppress_related_commands_=None)
|
suppress_related_commands_=None)
|
||||||
elif self.mode == "both":
|
elif self.mode == "both":
|
||||||
print("Creating Write Only CXs")
|
print("Creating Write Only CXs")
|
||||||
self.wo_profile.create(ports=self.created_ports, sleep_time=.5, debug_=self.debug,
|
self.wo_profile.create(ports=self.created_ports, connections_per_port=self.connections_per_port,
|
||||||
|
sleep_time=.5, debug_=self.debug,
|
||||||
suppress_related_commands_=None)
|
suppress_related_commands_=None)
|
||||||
print("Creating Read Only CXs")
|
print("Creating Read Only CXs")
|
||||||
self.ro_profile.create(ports=self.created_ports, sleep_time=.5, debug_=self.debug,
|
self.ro_profile.create(ports=self.created_ports, connections_per_port=self.connections_per_port,
|
||||||
|
sleep_time=.5, debug_=self.debug,
|
||||||
suppress_related_commands_=None)
|
suppress_related_commands_=None)
|
||||||
else:
|
else:
|
||||||
raise ValueError("Uknown mode used, must be (read, write, both)")
|
raise ValueError("Unknown mode used, must be (read, write, both)")
|
||||||
else:
|
else:
|
||||||
raise ValueError("Mode must be set (read, write, both)")
|
raise ValueError("Mode must be set (read, write, both)")
|
||||||
|
|
||||||
@@ -576,9 +592,14 @@ Generic command layout:
|
|||||||
default="AUTO")
|
default="AUTO")
|
||||||
parser.add_argument('--server_mount', help='--server_mount The server to mount, ex: 192.168.100.5/exports/test1',
|
parser.add_argument('--server_mount', help='--server_mount The server to mount, ex: 192.168.100.5/exports/test1',
|
||||||
default="10.40.0.1:/var/tmp/test")
|
default="10.40.0.1:/var/tmp/test")
|
||||||
|
|
||||||
parser.add_argument('--macvlan_parent', help='specifies parent port for macvlan creation', default=None)
|
parser.add_argument('--macvlan_parent', help='specifies parent port for macvlan creation', default=None)
|
||||||
parser.add_argument('--first_port', help='specifies name of first port to be used', default=None)
|
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('--num_ports', help='number of ports to create', default=1)
|
||||||
|
parser.add_argument('--connections_per_port', help='specifies number of connections to be used per port', default=1,
|
||||||
|
type=int)
|
||||||
|
parser.add_argument('--use_ports', help='list of comma separated ports to use with ips, \'=\' separates name and ip'
|
||||||
|
'{ port_name1=ip_addr1,port_name1=ip_addr2 }', default=None)
|
||||||
parser.add_argument('--use_macvlans', help='will create macvlans', action='store_true', default=False)
|
parser.add_argument('--use_macvlans', help='will create macvlans', action='store_true', default=False)
|
||||||
parser.add_argument('--first_mvlan_ip', help='specifies first static ip address to be used or dhcp', default=None)
|
parser.add_argument('--first_mvlan_ip', help='specifies first static ip address to be used or dhcp', default=None)
|
||||||
parser.add_argument('--netmask', help='specifies netmask to be used with static ip addresses', default=None)
|
parser.add_argument('--netmask', help='specifies netmask to be used with static ip addresses', default=None)
|
||||||
@@ -588,12 +609,11 @@ Generic command layout:
|
|||||||
parser.add_argument('--read_only_test_group', help='specifies name to use for read only test group', default=None)
|
parser.add_argument('--read_only_test_group', help='specifies name to use for read only test group', default=None)
|
||||||
parser.add_argument('--write_only_test_group', help='specifies name to use for write only test group', default=None)
|
parser.add_argument('--write_only_test_group', help='specifies name to use for write only test group', default=None)
|
||||||
parser.add_argument('--mode', help='write,read,both', default='both', type=str)
|
parser.add_argument('--mode', help='write,read,both', default='both', type=str)
|
||||||
parser.add_argument('--use_ports', help='list of comma separated ports to use with ips, \'=\' separates name and ip'
|
|
||||||
'{ port_name1=ip_addr1,port_name1=ip_addr2 }', default=None)
|
|
||||||
tg_group = parser.add_mutually_exclusive_group()
|
tg_group = parser.add_mutually_exclusive_group()
|
||||||
tg_group.add_argument('--add_to_group', help='name of test group to add cxs to', default=None)
|
tg_group.add_argument('--add_to_group', help='name of test group to add cxs to', default=None)
|
||||||
tg_group.add_argument('--del_from_group', help='name of test group to delete cxs from', default=None)
|
tg_group.add_argument('--del_from_group', help='name of test group to delete cxs from', default=None)
|
||||||
parser.add_argument('--cxs', help='list of cxs to add/remove depending on use of --add_to_group or --del_from_group', default=None)
|
parser.add_argument('--cxs', help='list of cxs to add/remove depending on use of --add_to_group or --del_from_group'
|
||||||
|
, default=None)
|
||||||
args = parser.parse_args()
|
args = parser.parse_args()
|
||||||
|
|
||||||
update_group_args = {
|
update_group_args = {
|
||||||
@@ -647,7 +667,10 @@ Generic command layout:
|
|||||||
temp_list = args.use_ports.split(',')
|
temp_list = args.use_ports.split(',')
|
||||||
for port in temp_list:
|
for port in temp_list:
|
||||||
port_list.append(port.split('=')[0])
|
port_list.append(port.split('=')[0])
|
||||||
ip_list.append(port.split('=')[1])
|
if '=' in port:
|
||||||
|
ip_list.append(port.split('=')[1])
|
||||||
|
else:
|
||||||
|
ip_list.append(0)
|
||||||
|
|
||||||
if len(port_list) != len(ip_list):
|
if len(port_list) != len(ip_list):
|
||||||
raise ValueError(temp_list, " ports must have matching ip addresses!")
|
raise ValueError(temp_list, " ports must have matching ip addresses!")
|
||||||
@@ -695,13 +718,13 @@ Generic command layout:
|
|||||||
write_only_test_group=args.write_only_test_group,
|
write_only_test_group=args.write_only_test_group,
|
||||||
read_only_test_group=args.read_only_test_group,
|
read_only_test_group=args.read_only_test_group,
|
||||||
update_group_args = update_group_args,
|
update_group_args = update_group_args,
|
||||||
|
connections_per_port=args.connections_per_port,
|
||||||
mode=args.mode
|
mode=args.mode
|
||||||
# want a mount options param
|
# want a mount options param
|
||||||
)
|
)
|
||||||
|
|
||||||
ip_test.cleanup(port_list)
|
ip_test.cleanup(port_list)
|
||||||
ip_test.build()
|
ip_test.build()
|
||||||
# exit(1)
|
|
||||||
if not ip_test.passes():
|
if not ip_test.passes():
|
||||||
print(ip_test.get_fail_message())
|
print(ip_test.get_fail_message())
|
||||||
# ip_test.start(False, False)
|
# ip_test.start(False, False)
|
||||||
|
|||||||
Reference in New Issue
Block a user