mirror of
https://github.com/Telecominfraproject/wlan-lanforge-scripts.git
synced 2025-11-17 10:35:13 +00:00
Added FIOCXProfile for fileio endpoints, added new_fio_cx_profile() factory method
This commit is contained in:
101
py-json/realm.py
101
py-json/realm.py
@@ -682,6 +682,10 @@ class Realm(LFCliBase):
|
|||||||
http_prof = HTTPProfile(self.lfclient_host, self.lfclient_port, local_realm=self, debug_=self.debug)
|
http_prof = HTTPProfile(self.lfclient_host, self.lfclient_port, local_realm=self, debug_=self.debug)
|
||||||
return http_prof
|
return http_prof
|
||||||
|
|
||||||
|
def new_fio_cx_profile(self):
|
||||||
|
cx_prof = FIOCXProfile(self.lfclient_host, self.lfclient_port, local_realm=self, debug_=self.debug)
|
||||||
|
return cx_prof
|
||||||
|
|
||||||
class MULTICASTProfile(LFCliBase):
|
class MULTICASTProfile(LFCliBase):
|
||||||
def __init__(self, lfclient_host, lfclient_port, local_realm,
|
def __init__(self, lfclient_host, lfclient_port, local_realm,
|
||||||
report_timer_=3000, name_prefix_="Unset", number_template_="00000", debug_=False):
|
report_timer_=3000, name_prefix_="Unset", number_template_="00000", debug_=False):
|
||||||
@@ -1801,6 +1805,103 @@ class VAPProfile(LFCliBase):
|
|||||||
# And now see if they are gone
|
# And now see if they are gone
|
||||||
LFUtils.wait_until_ports_disappear(base_url=self.lfclient_url, port_list=desired_ports)
|
LFUtils.wait_until_ports_disappear(base_url=self.lfclient_url, port_list=desired_ports)
|
||||||
|
|
||||||
|
class FIOCXProfile(LFCliBase):
|
||||||
|
def __init__(self, lfclient_host, lfclient_port, local_realm, debug_=False):
|
||||||
|
super().__init__(lfclient_host, lfclient_port, debug_, _halt_on_error=True)
|
||||||
|
self.lfclient_url = "http://%s:%s" % (lfclient_host, lfclient_port)
|
||||||
|
self.debug = debug_
|
||||||
|
self.fio_type = None
|
||||||
|
self.min_read = 0
|
||||||
|
self.max_read = 100
|
||||||
|
self.min_write = 0
|
||||||
|
self.max_write = 100
|
||||||
|
self.directory = None
|
||||||
|
self.prefix = None
|
||||||
|
self.local_realm = local_realm
|
||||||
|
self.created_cx = {}
|
||||||
|
self.created_endp = []
|
||||||
|
|
||||||
|
def start_cx(self):
|
||||||
|
print("Starting CXs...")
|
||||||
|
for cx_name in self.created_cx.keys():
|
||||||
|
self.json_post("/cli-json/set_cx_state", {
|
||||||
|
"test_mgr": "default_tm",
|
||||||
|
"cx_name": self.created_cx[cx_name],
|
||||||
|
"cx_state": "RUNNING"
|
||||||
|
}, debug_=self.debug)
|
||||||
|
print(".", end='')
|
||||||
|
print("")
|
||||||
|
|
||||||
|
def stop_cx(self):
|
||||||
|
print("Stopping CXs...")
|
||||||
|
for cx_name in self.created_cx.keys():
|
||||||
|
self.json_post("/cli-json/set_cx_state", {
|
||||||
|
"test_mgr": "default_tm",
|
||||||
|
"cx_name": self.created_cx[cx_name],
|
||||||
|
"cx_state": "STOPPED"
|
||||||
|
}, debug_=self.debug)
|
||||||
|
print(".", end='')
|
||||||
|
print("")
|
||||||
|
|
||||||
|
def cleanup(self):
|
||||||
|
print("Cleaning up cxs and endpoints")
|
||||||
|
if len(self.created_cx) != 0:
|
||||||
|
for cx_name in self.created_cx.keys():
|
||||||
|
req_url = "cli-json/rm_cx"
|
||||||
|
data = {
|
||||||
|
"test_mgr": "default_tm",
|
||||||
|
"cx_name": self.created_cx[cx_name]
|
||||||
|
}
|
||||||
|
self.json_post(req_url, data)
|
||||||
|
#pprint(data)
|
||||||
|
req_url = "cli-json/rm_endp"
|
||||||
|
data = {
|
||||||
|
"endp_name": cx_name
|
||||||
|
}
|
||||||
|
self.json_post(req_url, data)
|
||||||
|
#pprint(data)
|
||||||
|
|
||||||
|
def create(self, ports=[], sleep_time=.5, debug_=False, suppress_related_commands_=None):
|
||||||
|
cx_post_data = []
|
||||||
|
for port_name in ports:
|
||||||
|
if len(self.local_realm.name_to_eid(port_name)) == 3:
|
||||||
|
shelf = self.local_realm.name_to_eid(port_name)[0]
|
||||||
|
resource = self.local_realm.name_to_eid(port_name)[1]
|
||||||
|
name = self.local_realm.name_to_eid(port_name)[2]
|
||||||
|
else:
|
||||||
|
raise ValueError("Unexpected name for port_name %s" % port_name)
|
||||||
|
if self.directory is None or self.prefix is None or self.fio_type is None:
|
||||||
|
raise ValueError("directory [%s], prefix [%s], and type [%s] must not be None" % (self.directory, self.prefix, self.fio_type))
|
||||||
|
endp_data = {
|
||||||
|
"alias": name + "_fio",
|
||||||
|
"shelf": shelf,
|
||||||
|
"resource": resource,
|
||||||
|
"port": name,
|
||||||
|
"type": self.fio_type,
|
||||||
|
"min_read_rate": self.min_read,
|
||||||
|
"max_read_rate": self.max_read,
|
||||||
|
"min_write_rate": self.min_write,
|
||||||
|
"max_write_rate": self.max_write,
|
||||||
|
"directory": self.directory,
|
||||||
|
"prefix": self.prefix
|
||||||
|
}
|
||||||
|
url = "cli-json/add_file_endp"
|
||||||
|
self.local_realm.json_post(url, endp_data, debug_=debug_, suppress_related_commands_=suppress_related_commands_)
|
||||||
|
time.sleep(sleep_time)
|
||||||
|
|
||||||
|
endp_data = {
|
||||||
|
"alias": "CX_" + name + "_fio",
|
||||||
|
"test_mgr": "default_tm",
|
||||||
|
"tx_endp": name + "_fio",
|
||||||
|
"rx_endp": "NA"
|
||||||
|
}
|
||||||
|
cx_post_data.append(endp_data)
|
||||||
|
self.created_cx[name + "_fio"] = "CX_" + name + "_fio"
|
||||||
|
|
||||||
|
for cx_data in cx_post_data:
|
||||||
|
url = "/cli-json/add_cx"
|
||||||
|
self.local_realm.json_post(url, cx_data, debug_=debug_, suppress_related_commands_=suppress_related_commands_)
|
||||||
|
time.sleep(sleep_time)
|
||||||
|
|
||||||
class PortUtils(LFCliBase):
|
class PortUtils(LFCliBase):
|
||||||
def __init__(self, local_realm):
|
def __init__(self, local_realm):
|
||||||
|
|||||||
Reference in New Issue
Block a user