realm.py: renames variables to more specific units, is now able to create CX

This commit is contained in:
Jed Reynolds
2020-07-01 16:59:34 -07:00
parent 582d667021
commit ae327eb6c2

View File

@@ -229,7 +229,8 @@ class Realm(LFCliBase):
return station_prof return station_prof
def new_l3_cx_profile(self): def new_l3_cx_profile(self):
cx_prof = L3CXProfile(self.lfclient_host, self.lfclient_port, local_realm=self, debug_=self.debug) cx_prof = L3CXProfile(self.lfclient_host, self.lfclient_port, \
local_realm=self, debug_=self.debug)
return cx_prof return cx_prof
def new_l4_cx_profile(self): def new_l4_cx_profile(self):
@@ -242,33 +243,53 @@ class Realm(LFCliBase):
class L3CXProfile(LFCliBase): class L3CXProfile(LFCliBase):
def __init__(self, lfclient_host, lfclient_port, local_realm, side_a_min_rate=None, side_b_min_rate=None, def __init__(self, lfclient_host, lfclient_port, local_realm,
side_a_max_rate=None, side_b_max_rate=None, side_a_min_pkt=-1, side_b_min_pkt=-1, side_a_min_bps=None, side_b_min_bps=None,
side_a_max_pkt=0, side_b_max_pkt=0, prefix="Unset", debug_=False): side_a_max_bps=0, side_b_max_bps=0,
side_a_min_pdu=-1, side_b_min_pdu=-1,
side_a_max_pdu=0, side_b_max_pdu=0,
prefix="Unset", debug_=False):
"""
:param lfclient_host:
:param lfclient_port:
:param local_realm:
:param side_a_min_bps:
:param side_b_min_bps:
:param side_a_max_bps:
:param side_b_max_bps:
:param side_a_min_pdu:
:param side_b_min_pdu:
:param side_a_max_pdu:
:param side_b_max_pdu:
:param prefix:
:param debug_:
"""
super().__init__(lfclient_host, lfclient_port, debug_, _halt_on_error=True) super().__init__(lfclient_host, lfclient_port, debug_, _halt_on_error=True)
self.lfclient_url = "http://%s:%s" % (lfclient_host, lfclient_port) self.lfclient_url = "http://%s:%s" % (lfclient_host, lfclient_port)
self.debug = debug_ self.debug = debug_
self.local_realm = local_realm self.local_realm = local_realm
self.side_a_min_pkt = side_a_min_pkt self.side_a_min_pdu = side_a_min_pdu
self.side_b_min_pkt = side_b_min_pkt self.side_b_min_pdu = side_b_min_pdu
self.side_a_max_pkt = side_a_max_pkt self.side_a_max_pdu = side_a_max_pdu
self.side_b_max_pkt = side_b_max_pkt self.side_b_max_pdu = side_b_max_pdu
self.side_a_min_rate = side_a_min_rate self.side_a_min_bps = side_a_min_bps
self.side_b_min_rate = side_b_min_rate self.side_b_min_bps = side_b_min_bps
self.side_a_max_rate = side_a_max_rate self.side_a_max_bps = side_a_max_bps
self.side_b_max_rate = side_b_max_rate self.side_b_max_bps = side_b_max_bps
self.created_cx = {} self.created_cx = {}
self.prefix = prefix self.prefix = prefix
if (side_a_min_rate is None) \
or (side_a_max_rate is None) \
or (side_b_min_rate is None) \
or (side_b_max_rate is None):
raise ValueError("side_a_min_rate, side_a_max_rate, side_b_min_rate, and side_b_max_rate must all be set to a value")
def create(self, endp_type, side_a, side_b, sleep_time=.5): def create(self, endp_type, side_a, side_b, sleep_time=.5):
post_data = [] post_data = []
# print(self.side_a_min_rate, self.side_a_max_rate) # print(self.side_a_min_rate, self.side_a_max_rate)
# print(self.side_b_min_rate, self.side_b_max_rate) # print(self.side_b_min_rate, self.side_b_max_rate)
if (self.side_a_min_bps is None) \
or (self.side_a_max_bps is None) \
or (self.side_b_min_bps is None) \
or (self.side_b_max_bps is None):
raise ValueError("side_a_min_bps, side_a_max_bps, side_b_min_bps, and side_b_max_bps must all be set to a value")
if type(side_a) == list and type(side_b) != list: if type(side_a) == list and type(side_b) != list:
side_b_info = self.local_realm.name_to_eid(side_b) side_b_info = self.local_realm.name_to_eid(side_b)
if len(side_b_info) == 3: if len(side_b_info) == 3:
@@ -299,10 +320,10 @@ class L3CXProfile(LFCliBase):
"resource": side_a_resource, "resource": side_a_resource,
"port": side_a_name, "port": side_a_name,
"type": endp_type, "type": endp_type,
"min_rate": self.side_a_min_rate, "min_rate": self.side_a_min_bps,
"max_rate": self.side_a_max_rate, "max_rate": self.side_a_max_bps,
"min_pkt": self.side_a_min_pkt, "min_pkt": self.side_a_min_pdu,
"max_pkt": self.side_a_max_pkt, "max_pkt": self.side_a_max_pdu,
"ip_port": -1 "ip_port": -1
} }
endp_side_b = { endp_side_b = {
@@ -311,10 +332,10 @@ class L3CXProfile(LFCliBase):
"resource": side_b_resource, "resource": side_b_resource,
"port": side_b_name, "port": side_b_name,
"type": endp_type, "type": endp_type,
"min_rate": self.side_b_min_rate, "min_rate": self.side_b_min_bps,
"max_rate": self.side_b_max_rate, "max_rate": self.side_b_max_bps,
"min_pkt": self.side_b_min_pkt, "min_pkt": self.side_b_min_pdu,
"max_pkt": self.side_b_max_pkt, "max_pkt": self.side_b_max_pdu,
"ip_port": -1 "ip_port": -1
} }
@@ -378,8 +399,8 @@ class L3CXProfile(LFCliBase):
"resource": side_a_resource, "resource": side_a_resource,
"port": side_a_name, "port": side_a_name,
"type": endp_type, "type": endp_type,
"min_rate": self.side_a_min_rate, "min_rate": self.side_a_min_bps,
"max_rate": self.side_a_max_rate, "max_rate": self.side_a_max_bps,
"min_pkt": self.side_a_min_pkt, "min_pkt": self.side_a_min_pkt,
"max_pkt": self.side_a_max_pkt, "max_pkt": self.side_a_max_pkt,
"ip_port": -1 "ip_port": -1
@@ -390,10 +411,10 @@ class L3CXProfile(LFCliBase):
"resource": side_b_resource, "resource": side_b_resource,
"port": side_b_name, "port": side_b_name,
"type": endp_type, "type": endp_type,
"min_rate": self.side_b_min_rate, "min_rate": self.side_b_min_bps,
"max_rate": self.side_b_max_rate, "max_rate": self.side_b_max_bps,
"min_pkt": self.side_b_min_pkt, "min_pkt": self.side_b_min_pdu,
"max_pkt": self.side_b_max_pkt, "max_pkt": self.side_b_max_pdu,
"ip_port": -1 "ip_port": -1
} }
@@ -435,9 +456,7 @@ class L3CXProfile(LFCliBase):
time.sleep(sleep_time) time.sleep(sleep_time)
def to_string(self): def to_string(self):
print("Endpoint Side A " + self.endp_side_a) pprint.pprint(self)
print("Endpoint Side B " + self.endp_side_b)
print("CX Data " + self.data)
class L4CXProfile(LFCliBase): class L4CXProfile(LFCliBase):
@@ -450,9 +469,9 @@ class L4CXProfile(LFCliBase):
self.local_realm = local_realm self.local_realm = local_realm
def create(self, ports=[], sleep_time=.5): def create(self, ports=[], sleep_time=.5):
post_data = [] cx_post_data = []
for port_name in ports: for port_name in ports:
data = { endp_data = {
"alias": self.local_realm.name_to_eid(port_name)[-1] + "_l4", "alias": self.local_realm.name_to_eid(port_name)[-1] + "_l4",
"shelf": 1, "shelf": 1,
"resource": 1, "resource": 1,
@@ -463,20 +482,20 @@ class L4CXProfile(LFCliBase):
"url": self.url "url": self.url
} }
url = "cli-json/add_l4_endp" url = "cli-json/add_l4_endp"
self.local_realm.json_post(url, data) self.local_realm.json_post(url, endp_data)
time.sleep(sleep_time) time.sleep(sleep_time)
data = { endp_data = {
"alias": self.local_realm.name_to_eid(port_name)[-1] + "_l4CX", "alias": self.local_realm.name_to_eid(port_name)[-1] + "_l4CX",
"test_mgr": "default_tm", "test_mgr": "default_tm",
"tx_endp": self.local_realm.name_to_eid(port_name)[-1] + "_l4", "tx_endp": self.local_realm.name_to_eid(port_name)[-1] + "_l4",
"rx_endp": "NA" "rx_endp": "NA"
} }
post_data.append(data) cx_post_data.append(endp_data)
for data in post_data: for cx_data in cx_post_data:
url = "/cli-json/add_cx" url = "/cli-json/add_cx"
self.local_realm.json_post(url, data) self.local_realm.json_post(url, cx_data)
time.sleep(sleep_time) time.sleep(sleep_time)