sta_connect2.py: add test ability for resource greater than 1

Signed-off-by: Scott Wedge <scott.wedge@candelatech.com>
This commit is contained in:
Scott Wedge
2022-03-23 17:15:46 -05:00
committed by shivam
parent 6c679e6d86
commit 497c16a93d

View File

@@ -66,7 +66,7 @@ class StaConnect2(Realm):
_influx_host=None, _influx_db=None, _influx_user=None,
_influx_passwd=None,
_resource=1, _upstream_resource=1, _upstream_port="eth1",
_sta_name=None, _sta_prefix='sta', _bringup_time_sec=300,
_sta_name=None, _sta_prefix=None, _bringup_time_sec=300,
debug_=False, _dut_security=OPEN, _exit_on_error=False,
_cleanup_on_exit=True, _clean_all_sta=False, _runtime_sec=None, kpi_csv=None, outfile=None,
download_bps=None, upload_bps=None, side_a_pdu=None, side_b_pdu=None, _exit_on_fail=False):
@@ -127,6 +127,9 @@ class StaConnect2(Realm):
results = results + "-results.csv"
self.csv_results_file = open(results, "w")
self.csv_results_writer = csv.writer(self.csv_results_file, delimiter=",")
if self.sta_prefix is None:
self.sta_prefix = "1.%s.sta" % (self.resource)
def get_kpi_results(self):
# make json call to get kpi results
@@ -232,11 +235,21 @@ class StaConnect2(Realm):
def get_station_url(self, sta_name_=None):
if sta_name_ is None:
raise ValueError("get_station_url wants a station name")
if self.sta_url_map is None:
self.sta_url_map = "port/1/%s/%s" % (self.resource, sta_name_)
logger.info("self.sta_url: %s", self.sta_url_map)
return self.sta_url_map
'''
if self.sta_url_map is None:
self.sta_url_map = {}
for sta_name in self.station_names:
self.sta_url_map[sta_name] = "port/1/%s/%s" % (self.resource, sta_name)
return self.sta_url_map[sta_name_]
split_sta_name = sta_name.split('.')
only_sta_name = split_sta_name[2]
# sta_url = self.get_station_url(only_sta_name)
self.sta_url_map[only_sta_name] = "port/1/%s/%s" % (self.resource, only_sta_name)
# return self.sta_url_map[sta_name_]
return self.sta_url_map
'''
def get_upstream_url(self):
if self.upstream_url is None:
@@ -343,7 +356,7 @@ class StaConnect2(Realm):
raise ValueError("Unable to find ports named '%s'+" % self.sta_prefix)
self.l3_udp_profile.create(endp_type="lf_udp",
side_a=port_list,
side_b="%d.%s" % (self.resource, self.upstream_port),
side_b="%s.%s" % (self.resource, self.upstream_port),
suppress_related_commands=True)
# Create TCP endpoints
@@ -360,7 +373,7 @@ class StaConnect2(Realm):
self.l3_tcp_profile.report_timer = 1000
self.l3_tcp_profile.create(endp_type="lf_tcp",
side_a=list(self.find_ports_like("%s+" % self.sta_prefix)),
side_b="%d.%s" % (self.resource, self.upstream_port),
side_b="%s.%s" % (self.resource, self.upstream_port),
suppress_related_commands=True)
def start(self):
@@ -407,7 +420,10 @@ class StaConnect2(Realm):
time.sleep(3)
print(".", end="")
for sta_name in self.station_names:
sta_url = self.get_station_url(sta_name)
split_sta_name = sta_name.split('.')
# logger.info("sta_name.split: %s", split_sta_name)
only_sta_name = split_sta_name[2]
sta_url = self.get_station_url(only_sta_name)
station_info = self.json_get(sta_url + "?fields=port,ip,ap")
# logger.info("start() - sta_url: %s", sta_url)
@@ -544,7 +560,10 @@ class StaConnect2(Realm):
# remove all endpoints and cxs
if self.cleanup_on_exit:
for sta_name in self.station_names:
LFUtils.removePort(self.resource, sta_name, self.lfclient_url)
split_sta_name = sta_name.split('.')
# logger.info("sta_name.split: %s", split_sta_name)
only_sta_name = split_sta_name[2]
LFUtils.removePort(self.resource, only_sta_name, self.lfclient_url)
curr_endp_names = []
removeCX(self.lfclient_url, self.l3_udp_profile.get_cx_names())
removeCX(self.lfclient_url, self.l3_tcp_profile.get_cx_names())
@@ -938,6 +957,7 @@ CLI Example for kpi.csv, variable tx/rx rates, and pdu size:
logger.info("csv output file : {}".format(csv_outfile))
upstream_port = LFUtils.name_to_eid(args.upstream_port)
logger.info("upstream_port: %s", upstream_port)
if args.upstream_resource:
upstream_resource = args.upstream_resource
else:
@@ -977,7 +997,7 @@ CLI Example for kpi.csv, variable tx/rx rates, and pdu size:
if args.dut_security:
staConnect.dut_security = args.dut_security
if args.prefix or (args.prefix != "sta"):
staConnect.sta_prefix = args.prefix
args.prefix = staConnect.sta_prefix
staConnect.station_names = ["%s0000" % args.prefix]
staConnect.bringup_time_sec = args.bringup_time