mirror of
https://github.com/Telecominfraproject/wlan-testing.git
synced 2025-10-31 19:08:01 +00:00
Refactoring : Nightly working bridge mode and nat mode working, Libraries are refactored too
This commit is contained in:
@@ -3,15 +3,22 @@ import base64
|
||||
import urllib.request
|
||||
from bs4 import BeautifulSoup
|
||||
import re
|
||||
from ap_ssh import ssh_cli_active_fw
|
||||
from lab_ap_info import *
|
||||
|
||||
|
||||
###Class for jfrog Interaction
|
||||
class GetBuild:
|
||||
def __init__(self, jfrog_user, jfrog_passwd):
|
||||
def __init__(self, jfrog_user, jfrog_passwd, build):
|
||||
self.user = jfrog_user
|
||||
self.password = jfrog_passwd
|
||||
ssl._create_default_https_context = ssl._create_unverified_context
|
||||
self.jfrog_url = 'https://tip.jfrog.io/artifactory/tip-wlan-ap-firmware/'
|
||||
self.build = build
|
||||
|
||||
def get_latest_image(self, model):
|
||||
|
||||
url = self.jfrog_url + model + "/dev/"
|
||||
|
||||
def get_latest_image(self, url, build):
|
||||
auth = str(
|
||||
base64.b64encode(
|
||||
bytes('%s:%s' % (self.user, self.password), 'utf-8')
|
||||
@@ -26,10 +33,16 @@ class GetBuild:
|
||||
response = urllib.request.urlopen(req)
|
||||
html = response.read()
|
||||
soup = BeautifulSoup(html, features="html.parser")
|
||||
##find the last pending link on dev
|
||||
last_link = soup.find_all('a', href=re.compile(build))[-1]
|
||||
|
||||
# find the last pending link on dev
|
||||
last_link = soup.find_all('a', href=re.compile(self.build))[-1]
|
||||
latest_file = last_link['href']
|
||||
latest_fw = latest_file.replace('.tar.gz', '')
|
||||
return latest_fw
|
||||
|
||||
|
||||
def check_latest_fw(self, ap_model=None):
|
||||
for model in ap_models:
|
||||
if model == ap_model:
|
||||
return self.get_latest_image(model)
|
||||
else:
|
||||
continue
|
||||
|
||||
@@ -1,30 +1,8 @@
|
||||
|
||||
|
||||
from lab_ap_info import *
|
||||
from JfrogHelper import GetBuild
|
||||
from ap_ssh import ssh_cli_active_fw
|
||||
|
||||
def check_latest_fw(jfrog=None,
|
||||
ap_latest_dict=None,
|
||||
buildid=None):
|
||||
|
||||
############################################################################
|
||||
#################### Jfrog Firmware Check ##################################
|
||||
############################################################################
|
||||
for model in ap_models:
|
||||
# cloudModel = cloud_sdk_models[model]
|
||||
###Check Latest FW on jFrog
|
||||
jfrog_url = 'https://tip.jfrog.io/artifactory/tip-wlan-ap-firmware/'
|
||||
url = jfrog_url + model + "/dev/"
|
||||
Build: GetBuild = GetBuild(jfrog["user"], jfrog["pass"])
|
||||
latest_image = Build.get_latest_image(url, buildid)
|
||||
print(model, "Latest FW on jFrog:", latest_image)
|
||||
ap_latest_dict[model] = latest_image
|
||||
return ap_latest_dict
|
||||
|
||||
|
||||
def get_ap_info(args):
|
||||
return ssh_cli_active_fw(args)
|
||||
pass
|
||||
|
||||
|
||||
|
||||
@@ -839,7 +839,6 @@ class CloudSDK:
|
||||
|
||||
|
||||
|
||||
|
||||
# Library for creating AP Profiles
|
||||
class CreateAPProfiles:
|
||||
|
||||
@@ -889,15 +888,33 @@ class CreateAPProfiles:
|
||||
self.report_data['tests'] = dict.fromkeys(self.ap_models, "")
|
||||
self.test_cases = {
|
||||
"radius_profile": None,
|
||||
|
||||
"ssid_5g_eap_bridge": None,
|
||||
"ssid_5g_wpa2_bridge": None,
|
||||
"ssid_5g_wpa_bridge": None,
|
||||
"ssid_2g_eap_bridge": None,
|
||||
"ssid_2g_wpa2_bridge": None,
|
||||
"ssid_2g_wpa_bridge": None,
|
||||
|
||||
"ssid_5g_eap_nat": None,
|
||||
"ssid_5g_wpa2_nat": None,
|
||||
"ssid_5g_wpa_nat": None,
|
||||
"ssid_2g_eap_nat": None,
|
||||
"ssid_2g_wpa2_nat": None,
|
||||
"ssid_2g_wpa_nat": None,
|
||||
|
||||
"ap_bridge": None,
|
||||
"ap_nat": None,
|
||||
"ap_vlan": None,
|
||||
|
||||
"bridge_vifc": None,
|
||||
"bridge_vifs": None
|
||||
"bridge_vifs": None,
|
||||
|
||||
"nat_vifc": None,
|
||||
"nat_vifs": None,
|
||||
|
||||
"vlan_vifc": None,
|
||||
"vlan_vifs": None
|
||||
}
|
||||
self.profile_data, self.prof_names, self.prof_names_eap = self.create_profile_data(self.command_line_args,
|
||||
self.fw_model)
|
||||
@@ -958,47 +975,7 @@ class CreateAPProfiles:
|
||||
return profile_data, prof_names, prof_names_eap
|
||||
|
||||
def create_ssid_data(self, args, fw_model):
|
||||
ssid_data = {
|
||||
"5g": {"eap":
|
||||
{
|
||||
"name": "%s-%s-%s" % (args.testbed, fw_model, "5G_EAP"),
|
||||
"nat": "%s-%s-%s" % (args.testbed, fw_model, "5G_EAP_NAT"),
|
||||
"vlan": "%s-%s-%s" % (args.testbed, fw_model, "5G_EAP_VLAN")
|
||||
},
|
||||
"wpa":
|
||||
{
|
||||
"name": "%s-%s-%s" % (args.testbed, fw_model, "5G_WPA"),
|
||||
"nat": "%s-%s-%s" % (args.testbed, fw_model, "5G_WPA_NAT"),
|
||||
"vlan": "%s-%s-%s" % (args.testbed, fw_model, "5G_WPA_VLAN")
|
||||
},
|
||||
"wpa2":
|
||||
{
|
||||
"name": "%s-%s-%s" % (args.testbed, fw_model, "5G_WPA2"),
|
||||
"nat": "%s-%s-%s" % (args.testbed, fw_model, "5G_WPA2_NAT"),
|
||||
"vlan": "%s-%s-%s" % (args.testbed, fw_model, "5G_WPA2_VLAN")
|
||||
}
|
||||
},
|
||||
"2g": {
|
||||
"eap":
|
||||
{
|
||||
"name": "%s-%s-%s" % (args.testbed, fw_model, "2G_EAP"),
|
||||
"nat": "%s-%s-%s" % (args.testbed, fw_model, "2G_EAP_NAT"),
|
||||
"vlan": "%s-%s-%s" % (args.testbed, fw_model, "2G_EAP_VLAN")
|
||||
},
|
||||
"wpa":
|
||||
{
|
||||
"name": "%s-%s-%s" % (args.testbed, fw_model, "2G_WPA"),
|
||||
"nat": "%s-%s-%s" % (args.testbed, fw_model, "2G_WPA_NAT"),
|
||||
"vlan": "%s-%s-%s" % (args.testbed, fw_model, "2G_WPA_VLAN")
|
||||
},
|
||||
"wpa2":
|
||||
{
|
||||
"name": "%s-%s-%s" % (args.testbed, fw_model, "2G_WPA2"),
|
||||
"nat": "%s-%s-%s" % (args.testbed, fw_model, "2G_WPA2_NAT"),
|
||||
"vlan": "%s-%s-%s" % (args.testbed, fw_model, "2G_WPA2_VLAN")
|
||||
}
|
||||
}
|
||||
}
|
||||
ssid_data = self.profile_data.copy()
|
||||
|
||||
psk_data = {
|
||||
"5g":
|
||||
@@ -1120,10 +1097,13 @@ class CreateAPProfiles:
|
||||
msg='Failed to create RADIUS profile')
|
||||
self.test_cases["radius_profile"] = "failed"
|
||||
|
||||
def create_ssid_profiles(self, ssid_template=None, skip_wpa2=False, skip_wpa=False, skip_eap=False):
|
||||
def create_ssid_profiles(self, ssid_template=None, skip_wpa2=False, skip_wpa=False, skip_eap=False, mode="bridge"):
|
||||
|
||||
self.ssid_template = ssid_template
|
||||
|
||||
if mode == "bridge":
|
||||
self.mode = "name"
|
||||
if mode == "nat":
|
||||
self.mode = "nat"
|
||||
self.fiveG_eap = None
|
||||
self.twoFourG_eap = None
|
||||
self.fiveG_wpa2 = None
|
||||
@@ -1135,197 +1115,207 @@ class CreateAPProfiles:
|
||||
print("CreateAPProfile::create_ssid_profile, skip-wpa: ", skip_wpa, " skip-wpa2: ", skip_wpa2, " skip-eap: ",
|
||||
skip_eap)
|
||||
|
||||
# 5G eap
|
||||
|
||||
if not skip_eap:
|
||||
# 5G eap
|
||||
try:
|
||||
self.fiveG_eap = self.cloud.create_or_update_ssid_profile(self.command_line_args.sdk_base_url,
|
||||
self.bearer, self.customer_id,
|
||||
self.ssid_template,
|
||||
self.profile_data['5g']['eap']['name'],
|
||||
self.ssid_data['5g']['eap']['name'],
|
||||
self.profile_data['5g']['eap'][self.mode],
|
||||
self.ssid_data['5g']['eap'][self.mode],
|
||||
None,
|
||||
self.radius_name,
|
||||
"wpa2OnlyRadius", "BRIDGE", 1,
|
||||
"wpa2OnlyRadius", mode.upper(), 1,
|
||||
["is5GHzU", "is5GHz", "is5GHzL"])
|
||||
print("5G EAP SSID created successfully - bridge mode")
|
||||
self.client.update_testrail(case_id=self.test_cases["ssid_5g_eap_bridge"], run_id=self.rid, status_id=1,
|
||||
msg='5G EAP SSID created successfully - bridge mode')
|
||||
self.test_cases["ssid_5g_eap_bridge"] = "passed"
|
||||
print("5G EAP SSID created successfully - " + mode + " mode")
|
||||
self.client.update_testrail(case_id=self.test_cases["ssid_5g_eap_" + mode],
|
||||
run_id=self.rid,
|
||||
status_id=1,
|
||||
msg='5G EAP SSID created successfully - ' + mode + ' mode')
|
||||
self.test_cases["ssid_5g_eap_" + mode] = "passed"
|
||||
except Exception as ex:
|
||||
print(ex)
|
||||
logging.error(logging.traceback.format_exc())
|
||||
self.fiveG_eap = None
|
||||
print("5G EAP SSID create failed - bridge mode")
|
||||
self.client.update_testrail(case_id=self.test_cases["ssid_5g_eap_bridge"], run_id=self.rid, status_id=5,
|
||||
msg='5G EAP SSID create failed - bridge mode')
|
||||
self.test_cases["ssid_5g_eap_bridge"] = "failed"
|
||||
print("5G EAP SSID create failed - " + mode + " mode")
|
||||
self.client.update_testrail(case_id=self.test_cases["ssid_5g_eap_" + mode], run_id=self.rid, status_id=5,
|
||||
msg='5G EAP SSID create failed - ' + mode + ' mode')
|
||||
self.test_cases["ssid_5g_eap_" + mode] = "failed"
|
||||
|
||||
# 2.4G eap
|
||||
try:
|
||||
self.twoFourG_eap = self.cloud.create_or_update_ssid_profile(self.command_line_args.sdk_base_url,
|
||||
self.bearer, self.customer_id,
|
||||
self.ssid_template,
|
||||
self.profile_data['2g']['eap']['name'],
|
||||
self.ssid_data['2g']['eap']['name'],
|
||||
self.profile_data['2g']['eap'][self.mode],
|
||||
self.ssid_data['2g']['eap'][self.mode],
|
||||
None,
|
||||
self.radius_name, "wpa2OnlyRadius",
|
||||
"BRIDGE", 1,
|
||||
mode.upper(), 1,
|
||||
["is2dot4GHz"])
|
||||
print("2.4G EAP SSID created successfully - bridge mode")
|
||||
self.client.update_testrail(case_id=self.test_cases["ssid_2g_eap_bridge"], run_id=self.rid, status_id=1,
|
||||
msg='2.4G EAP SSID created successfully - bridge mode')
|
||||
self.test_cases["ssid_2g_eap_bridge"] = "passed"
|
||||
print("2.4G EAP SSID created successfully - " + mode + " mode")
|
||||
self.client.update_testrail(case_id=self.test_cases["ssid_5g_eap_" + mode], run_id=self.rid, status_id=1,
|
||||
msg='2.4G EAP SSID created successfully - ' + mode + ' mode')
|
||||
self.test_cases["ssid_5g_eap_" + mode] = "passed"
|
||||
except Exception as ex:
|
||||
print(ex)
|
||||
logging.error(logging.traceback.format_exc())
|
||||
self.twoFourG_eap = None
|
||||
print("2.4G EAP SSID create failed - bridge mode")
|
||||
self.client.update_testrail(case_id=self.test_cases["ssid_2g_eap_bridge"], run_id=self.rid, status_id=5,
|
||||
self.client.update_testrail(case_id=self.test_cases["ssid_5g_eap_" + mode], run_id=self.rid, status_id=5,
|
||||
msg='2.4G EAP SSID create failed - bridge mode')
|
||||
self.test_cases["ssid_2g_eap_bridge"] = "failed"
|
||||
self.test_cases["ssid_5g_eap_" + mode] = "failed"
|
||||
|
||||
|
||||
# 5g wpa2
|
||||
if not skip_wpa2:
|
||||
# 5g wpa2
|
||||
try:
|
||||
self.fiveG_wpa2 = self.cloud.create_or_update_ssid_profile(self.command_line_args.sdk_base_url,
|
||||
self.bearer, self.customer_id,
|
||||
self.ssid_template,
|
||||
self.profile_data['5g']['wpa2']['name'],
|
||||
self.ssid_data['5g']['wpa2']['name'],
|
||||
self.psk_data['5g']['wpa2']['name'],
|
||||
self.profile_data['5g']['wpa2'][self.mode],
|
||||
self.ssid_data['5g']['wpa2'][self.mode],
|
||||
self.psk_data['5g']['wpa2'][self.mode],
|
||||
"Radius-Accounting-Profile", "wpa2OnlyPSK",
|
||||
"BRIDGE", 1,
|
||||
mode.upper(), 1,
|
||||
["is5GHzU", "is5GHz", "is5GHzL"])
|
||||
print("5G WPA2 SSID created successfully - bridge mode")
|
||||
self.client.update_testrail(case_id=self.test_cases["ssid_5g_wpa2_bridge"], run_id=self.rid,
|
||||
print("5G WPA2 SSID created successfully - " + mode + " mode")
|
||||
self.client.update_testrail(case_id=self.test_cases["ssid_5g_wpa2_" + mode], run_id=self.rid,
|
||||
status_id=1,
|
||||
msg='5G WPA2 SSID created successfully - bridge mode')
|
||||
self.test_cases["ssid_5g_wpa2_bridge"] = "passed"
|
||||
msg='5G WPA2 SSID created successfully - ' + mode + ' mode')
|
||||
self.test_cases["ssid_5g_wpa2_" + mode] = "passed"
|
||||
except Exception as ex:
|
||||
print(ex)
|
||||
logging.error(logging.traceback.format_exc())
|
||||
self.fiveG_wpa2 = None
|
||||
print("5G WPA2 SSID create failed - bridge mode")
|
||||
self.client.update_testrail(case_id=test_cases["ssid_5g_wpa2_bridge"], run_id=self.rid, status_id=5,
|
||||
msg='5G WPA2 SSID create failed - bridge mode')
|
||||
self.test_cases["ssid_5g_wpa2_bridge"] = "failed"
|
||||
print("5G WPA2 SSID create failed - " + mode + " mode")
|
||||
self.client.update_testrail(case_id=self.test_cases["ssid_5g_wpa2_" + mode], run_id=self.rid, status_id=5,
|
||||
msg='5G WPA2 SSID create failed - ' + mode + ' mode')
|
||||
self.test_cases["ssid_5g_wpa2_" + mode] = "failed"
|
||||
|
||||
# 2.4G wpa2
|
||||
try:
|
||||
self.twoFourG_wpa2 = self.cloud.create_or_update_ssid_profile(self.command_line_args.sdk_base_url,
|
||||
self.bearer, self.customer_id,
|
||||
self.ssid_template,
|
||||
self.profile_data['2g']['wpa2']['name'],
|
||||
self.ssid_data['2g']['wpa2']['name'],
|
||||
self.psk_data['2g']['wpa2']['name'],
|
||||
self.profile_data['2g']['wpa2'][self.mode],
|
||||
self.ssid_data['2g']['wpa2'][self.mode],
|
||||
self.psk_data['2g']['wpa2'][self.mode],
|
||||
"Radius-Accounting-Profile",
|
||||
"wpa2OnlyPSK", "BRIDGE", 1,
|
||||
"wpa2OnlyPSK", self.mode.upper(), 1,
|
||||
["is2dot4GHz"])
|
||||
print("2.4G WPA2 SSID created successfully - bridge mode")
|
||||
self.client.update_testrail(case_id=self.test_cases["ssid_2g_wpa2_bridge"], run_id=self.rid,
|
||||
print("2.4G WPA2 SSID created successfully - " + mode + " mode")
|
||||
self.client.update_testrail(case_id=self.test_cases["ssid_2g_wpa2_" + mode], run_id=self.rid,
|
||||
status_id=1,
|
||||
msg='2.4G WPA2 SSID created successfully - bridge mode')
|
||||
self.test_cases["ssid_2g_wpa2_bridge"] = "passed"
|
||||
msg='2.4G WPA2 SSID created successfully - ' + mode + ' mode')
|
||||
self.test_cases["ssid_2g_wpa2_" + mode] = "passed"
|
||||
except Exception as ex:
|
||||
print(ex)
|
||||
logging.error(logging.traceback.format_exc())
|
||||
self.twoFourG_wpa2 = None
|
||||
print("2.4G WPA2 SSID create failed - bridge mode")
|
||||
self.client.update_testrail(case_id=test_cases["ssid_2g_wpa2_bridge"], run_id=self.rid, status_id=5,
|
||||
msg='2.4G WPA2 SSID create failed - bridge mode')
|
||||
self.test_cases["ssid_2g_wpa2_bridge"] = "failed"
|
||||
print("2.4G WPA2 SSID create failed - " + mode + " mode")
|
||||
self.client.update_testrail(case_id=test_cases["ssid_2g_wpa2_" + mode], run_id=self.rid, status_id=5,
|
||||
msg='2.4G WPA2 SSID create failed - ' + mode + ' mode')
|
||||
self.test_cases["ssid_2g_wpa2_" + mode] = "failed"
|
||||
|
||||
|
||||
# 5g wpa
|
||||
if not skip_wpa:
|
||||
# 5g wpa
|
||||
try:
|
||||
self.fiveG_wpa = self.cloud.create_or_update_ssid_profile(self.command_line_args.sdk_base_url,
|
||||
self.bearer, self.customer_id,
|
||||
self.ssid_template,
|
||||
self.profile_data['5g']['wpa']['name'],
|
||||
self.ssid_data['5g']['wpa']['name'],
|
||||
self.psk_data['5g']['wpa']['name'],
|
||||
self.profile_data['5g']['wpa'][self.mode],
|
||||
self.ssid_data['5g']['wpa'][self.mode],
|
||||
self.psk_data['5g']['wpa'][self.mode],
|
||||
"Radius-Accounting-Profile", "wpaPSK",
|
||||
"BRIDGE", 1,
|
||||
mode.upper(), 1,
|
||||
["is5GHzU", "is5GHz", "is5GHzL"])
|
||||
print("5G WPA SSID created successfully - bridge mode")
|
||||
self.client.update_testrail(case_id=self.test_cases["ssid_5g_wpa_bridge"], run_id=self.rid, status_id=1,
|
||||
msg='5G WPA SSID created successfully - bridge mode')
|
||||
self.test_cases["ssid_5g_wpa_bridge"] = "passed"
|
||||
print("5G WPA SSID created successfully - " + mode + " mode")
|
||||
self.client.update_testrail(case_id=self.test_cases["ssid_5g_wpa_" + mode],
|
||||
run_id=self.rid,
|
||||
status_id=1,
|
||||
msg='5G WPA SSID created successfully - ' + mode + ' mode')
|
||||
self.test_cases["ssid_5g_wpa_" + mode] = "passed"
|
||||
except Exception as ex:
|
||||
print(ex)
|
||||
logging.error(logging.traceback.format_exc())
|
||||
self.fiveG_wpa = None
|
||||
print("5G WPA SSID create failed - bridge mode")
|
||||
self.client.update_testrail(case_id=test_cases["ssid_5g_wpa_bridge"], run_id=self.rid, status_id=5,
|
||||
msg='5G WPA SSID create failed - bridge mode')
|
||||
self.test_cases["ssid_5g_wpa_bridge"] = "failed"
|
||||
print("5G WPA SSID create failed - " + mode + " mode")
|
||||
self.client.update_testrail(case_id=test_cases["ssid_5g_wpa_" + mode], run_id=self.rid, status_id=5,
|
||||
msg='5G WPA SSID create failed - ' + mode + ' mode')
|
||||
self.test_cases["ssid_5g_wpa_" + mode] = "failed"
|
||||
|
||||
# 2.4G wpa
|
||||
try:
|
||||
self.twoFourG_wpa = self.cloud.create_or_update_ssid_profile(self.command_line_args.sdk_base_url,
|
||||
self.bearer, self.customer_id,
|
||||
self.ssid_template,
|
||||
self.profile_data['2g']['wpa']['name'],
|
||||
self.ssid_data['2g']['wpa']['name'],
|
||||
self.psk_data['2g']['wpa']['name'],
|
||||
self.profile_data['2g']['wpa'][self.mode],
|
||||
self.ssid_data['2g']['wpa'][self.mode],
|
||||
self.psk_data['2g']['wpa'][self.mode],
|
||||
"Radius-Accounting-Profile", "wpaPSK",
|
||||
"BRIDGE", 1,
|
||||
mode.upper(), 1,
|
||||
["is2dot4GHz"])
|
||||
print("2.4G WPA SSID created successfully - bridge mode")
|
||||
self.client.update_testrail(case_id=self.test_cases["ssid_2g_wpa_bridge"], run_id=self.rid, status_id=1,
|
||||
msg='2.4G WPA SSID created successfully - bridge mode')
|
||||
self.test_cases["ssid_2g_wpa_bridge"] = "passed"
|
||||
print("2.4G WPA SSID created successfully - " + mode + " mode")
|
||||
self.client.update_testrail(case_id=self.test_cases["ssid_2g_wpa_" + mode], run_id=self.rid, status_id=1,
|
||||
msg='2.4G WPA SSID created successfully - ' + mode + ' mode')
|
||||
self.test_cases["ssid_2g_wpa_" + mode] = "passed"
|
||||
except Exception as ex:
|
||||
print(ex)
|
||||
logging.error(logging.traceback.format_exc())
|
||||
self.twoFourG_wpa = None
|
||||
print("2.4G WPA SSID create failed - bridge mode")
|
||||
self.client.update_testrail(case_id=self.test_cases["ssid_2g_wpa_bridge"], run_id=self.rid, status_id=5,
|
||||
msg='2.4G WPA SSID create failed - bridge mode')
|
||||
self.test_cases["ssid_2g_wpa_bridge"] = "failed"
|
||||
print("2.4G WPA SSID create failed - " + mode + " mode")
|
||||
self.client.update_testrail(case_id=self.test_cases["ssid_2g_wpa_" + mode], run_id=self.rid, status_id=5,
|
||||
msg='2.4G WPA SSID create failed - ' + mode + ' mode')
|
||||
self.test_cases["ssid_2g_wpa_" + mode] = "failed"
|
||||
|
||||
def create_ap_bridge_profile(self, eq_id=None, fw_model=None):
|
||||
def create_ap_bridge_profile(self, eq_id=None, fw_model=None, mode="bridge"):
|
||||
self.ssid_prof_config = []
|
||||
self.ssid_config = []
|
||||
self.fw_model = fw_model
|
||||
self.rfProfileId = lab_ap_info.rf_profile
|
||||
self.child_profiles = [self.rfProfileId]
|
||||
|
||||
if mode == "bridge":
|
||||
self.mode = "name"
|
||||
if mode == "nat":
|
||||
self.mode = "nat"
|
||||
if self.fiveG_wpa2:
|
||||
self.child_profiles.append(self.fiveG_wpa2)
|
||||
self.ssid_prof_config.append(self.profile_data['5g']['wpa2']['name'])
|
||||
self.ssid_config.append(self.ssid_data['5g']['wpa2']['name'])
|
||||
self.ssid_prof_config.append(self.profile_data['5g']['wpa2'][self.mode])
|
||||
self.ssid_config.append(self.ssid_data['5g']['wpa2'][self.mode])
|
||||
|
||||
if self.twoFourG_wpa2:
|
||||
self.child_profiles.append(self.twoFourG_wpa2)
|
||||
self.ssid_prof_config.append(self.profile_data['2g']['wpa2']['name'])
|
||||
self.ssid_config.append(self.ssid_data['2g']['wpa2']['name'])
|
||||
self.ssid_prof_config.append(self.profile_data['2g']['wpa2'][self.mode])
|
||||
self.ssid_config.append(self.ssid_data['2g']['wpa2'][self.mode])
|
||||
|
||||
if self.fiveG_eap:
|
||||
self.child_profiles.append(self.fiveG_eap)
|
||||
self.ssid_prof_config.append(self.profile_data['5g']['eap']['name'])
|
||||
self.ssid_config.append(self.ssid_data['5g']['eap']['name'])
|
||||
self.ssid_prof_config.append(self.profile_data['5g']['eap'][self.mode])
|
||||
self.ssid_config.append(self.ssid_data['5g']['eap'][self.mode])
|
||||
|
||||
if self.twoFourG_eap:
|
||||
self.child_profiles.append(self.twoFourG_eap)
|
||||
self.ssid_prof_config.append(self.profile_data['2g']['eap']['name'])
|
||||
self.ssid_config.append(self.ssid_data['2g']['eap']['name'])
|
||||
self.ssid_prof_config.append(self.profile_data['2g']['eap'][self.mode])
|
||||
self.ssid_config.append(self.ssid_data['2g']['eap'][self.mode])
|
||||
|
||||
if self.fiveG_wpa:
|
||||
self.child_profiles.append(self.fiveG_wpa)
|
||||
self.ssid_prof_config.append(self.profile_data['5g']['wpa']['name'])
|
||||
self.ssid_config.append(self.ssid_data['5g']['wpa']['name'])
|
||||
self.ssid_prof_config.append(self.profile_data['5g']['wpa'][self.mode])
|
||||
self.ssid_config.append(self.ssid_data['5g']['wpa'][self.mode])
|
||||
|
||||
if self.twoFourG_wpa:
|
||||
self.child_profiles.append(self.twoFourG_wpa)
|
||||
self.ssid_prof_config.append(self.profile_data['2g']['wpa']['name'])
|
||||
self.ssid_config.append(self.ssid_data['2g']['wpa']['name'])
|
||||
self.ssid_prof_config.append(self.profile_data['2g']['wpa'][self.mode])
|
||||
self.ssid_config.append(self.ssid_data['2g']['wpa'][self.mode])
|
||||
|
||||
if self.radius_profile is not None:
|
||||
self.child_profiles.append(self.radius_profile)
|
||||
# EAP ssid profiles would have been added above if they existed.
|
||||
|
||||
name = self.command_line_args.testbed + "-" + self.fw_model + "_bridge"
|
||||
name = self.command_line_args.testbed + "-" + self.fw_model + "_" + mode
|
||||
|
||||
try:
|
||||
self.create_ap_profile = self.cloud.create_or_update_ap_profile(self.command_line_args.sdk_base_url,
|
||||
@@ -1335,24 +1325,25 @@ class CreateAPProfiles:
|
||||
self.child_profiles)
|
||||
self.test_profile_id = self.create_ap_profile
|
||||
print("Test Profile ID for Test is:", self.test_profile_id)
|
||||
self.client.update_testrail(case_id=self.test_cases["ap_bridge"], run_id=self.rid, status_id=1,
|
||||
msg='AP profile for bridge tests created successfully')
|
||||
self.test_cases["ap_bridge"] = "passed"
|
||||
self.client.update_testrail(case_id=self.test_cases["ap_"+mode], run_id=self.rid, status_id=1,
|
||||
msg='AP profile for ' + mode + ' tests created successfully')
|
||||
self.test_cases["ap_"+mode] = "passed"
|
||||
except Exception as ex:
|
||||
print(ex)
|
||||
logging.error(logging.traceback.format_exc())
|
||||
create_ap_profile = "error"
|
||||
print("Error creating AP profile for bridge tests. Will use existing AP profile")
|
||||
self.client.update_testrail(case_id=self.test_cases["ap_bridge"], run_id=self.rid, status_id=5,
|
||||
msg='AP profile for bridge tests could not be created using API')
|
||||
self.test_cases["ap_bridge"] = "failed"
|
||||
self.client.update_testrail(case_id=self.test_cases["ap_"+mode], run_id=self.rid, status_id=5,
|
||||
msg='AP profile for ' + mode + ' tests could not be created using API')
|
||||
self.test_cases["ap_"+mode] = "failed"
|
||||
|
||||
self.ap_profile = self.cloud.set_ap_profile(eq_id, self.test_profile_id, self.command_line_args.sdk_base_url,
|
||||
self.bearer)
|
||||
|
||||
def cleanup_profile(self):
|
||||
pass
|
||||
|
||||
def validate_changes(self):
|
||||
def validate_changes(self, mode="bridge"):
|
||||
|
||||
ssid_list_ok = False
|
||||
vif_state_ok = False
|
||||
@@ -1375,23 +1366,23 @@ class CreateAPProfiles:
|
||||
|
||||
if set(ssid_list) == set(self.ssid_config):
|
||||
print("SSIDs in Wifi_VIF_Config Match AP Profile Config")
|
||||
self.client.update_testrail(case_id=self.test_cases["bridge_vifc"], run_id=self.rid, status_id=1,
|
||||
self.client.update_testrail(case_id=self.test_cases[mode + "_vifc"], run_id=self.rid, status_id=1,
|
||||
msg='SSIDs in VIF Config matches AP Profile Config')
|
||||
self.test_cases["bridge_vifc"] = "passed"
|
||||
self.test_cases[mode + "_vifc"] = "passed"
|
||||
ssid_list_ok = True
|
||||
else:
|
||||
print("SSIDs in Wifi_VIF_Config do not match desired AP Profile Config")
|
||||
self.client.update_testrail(case_id=self.test_cases["bridge_vifc"], run_id=self.rid, status_id=5,
|
||||
self.client.update_testrail(case_id=self.test_cases[mode + "_vifc"], run_id=self.rid, status_id=5,
|
||||
msg='SSIDs in VIF Config do not match AP Profile Config')
|
||||
self.test_cases["bridge_vifc"] = "failed"
|
||||
self.test_cases[mode + "_vifc"] = "failed"
|
||||
except Exception as ex:
|
||||
print(ex)
|
||||
logging.error(logging.traceback.format_exc())
|
||||
ssid_list = "ERROR"
|
||||
print("Error accessing VIF Config from AP CLI")
|
||||
self.client.update_testrail(case_id=self.test_cases["bridge_vifc"], run_id=self.rid, status_id=4,
|
||||
self.client.update_testrail(case_id=self.test_cases[mode + "_vifc"], run_id=self.rid, status_id=4,
|
||||
msg='Cannot determine VIF Config - re-test required')
|
||||
self.test_cases["bridge_vifc"] = "error"
|
||||
self.test_cases[mode + "_vifc"] = "error"
|
||||
|
||||
# VIF State
|
||||
try:
|
||||
@@ -1400,22 +1391,22 @@ class CreateAPProfiles:
|
||||
|
||||
if set(ssid_state) == set(self.ssid_config):
|
||||
print("SSIDs properly applied on AP")
|
||||
self.client.update_testrail(case_id=self.test_cases["bridge_vifs"], run_id=self.rid, status_id=1,
|
||||
self.client.update_testrail(case_id=self.test_cases[mode + "_vifs"], run_id=self.rid, status_id=1,
|
||||
msg='SSIDs in VIF Config applied to VIF State')
|
||||
self.test_cases["bridge_vifs"] = "passed"
|
||||
self.test_cases[mode + "_vifs"] = "passed"
|
||||
vif_state_ok = True
|
||||
else:
|
||||
print("SSIDs not applied on AP")
|
||||
self.client.update_testrail(case_id=self.test_cases["bridge_vifs"], run_id=self.rid, status_id=5,
|
||||
self.client.update_testrail(case_id=self.test_cases[mode + "_vifs"], run_id=self.rid, status_id=5,
|
||||
msg='SSIDs in VIF Config not applied to VIF State')
|
||||
self.test_cases["bridge_vifs"] = "failed"
|
||||
self.test_cases[mode + "_vifs"] = "failed"
|
||||
except Exception as ex:
|
||||
print(ex)
|
||||
logging.error(logging.traceback.format_exc())
|
||||
ssid_list = "ERROR"
|
||||
print("Error accessing VIF State from AP CLI")
|
||||
self.client.update_testrail(case_id=self.test_cases["bridge_vifs"], run_id=self.rid, status_id=4,
|
||||
self.client.update_testrail(case_id=self.test_cases[mode + "_vifs"], run_id=self.rid, status_id=4,
|
||||
msg='Cannot determine VIF State - re-test required')
|
||||
self.test_cases["bridge_vifs"] = "error"
|
||||
self.test_cases[mode + "_vifs"] = "error"
|
||||
|
||||
print("Profiles Created")
|
||||
|
||||
@@ -6,9 +6,9 @@
|
||||
|
||||
if [ -d ../wlan-lanforge-scripts ]
|
||||
then
|
||||
rm -fr libs/lanforge/lanforge-scripts
|
||||
rm -fr lanforge/lanforge-scripts
|
||||
|
||||
cp -ar ../wlan-lanforge-scripts libs/lanforge/lanforge-scripts
|
||||
cp -ar ../wlan-lanforge-scripts lanforge/lanforge-scripts
|
||||
fi
|
||||
if [ -d tests/logs ]
|
||||
then
|
||||
|
||||
@@ -10,18 +10,19 @@ from UnitTestBase import *
|
||||
|
||||
class NightlySanity:
|
||||
|
||||
def __init__(self, args=None, base=None, lanforge_data=None, Test=None, reporting=None ):
|
||||
def __init__(self, args=None, base=None, lanforge_data=None, test=None, reporting=None, build=None):
|
||||
|
||||
self.args = args
|
||||
self.model = self.args.model
|
||||
self.client: TestRail_Client = TestRail_Client(args)
|
||||
self.logger = base.logger
|
||||
###Get Cloud Bearer Token
|
||||
self.rid = None
|
||||
# Get Cloud Bearer Token
|
||||
self.cloud: CloudSDK = CloudSDK(args)
|
||||
cloud_type = "v1"
|
||||
self.bearer = self.cloud.get_bearer(args.sdk_base_url, cloud_type)
|
||||
self.customer_id = "2"
|
||||
self.Test = Test
|
||||
self.test = test
|
||||
self.reporting = reporting
|
||||
self.lanforge_data = lanforge_data
|
||||
if lanforge_data is None:
|
||||
@@ -33,10 +34,15 @@ class NightlySanity:
|
||||
"ecw5410": "ECW5410",
|
||||
"wf188n": "WF188N"
|
||||
}
|
||||
|
||||
self.jfrog_build = build
|
||||
self.ap_object = None
|
||||
self.equipment_id = self.args.equipment_id
|
||||
|
||||
self.report_data = dict()
|
||||
self.ap_cli_info = get_ap_info(self.args)
|
||||
self.ap_current_fw = self.ap_cli_info['active_fw']
|
||||
self.report_data = dict()
|
||||
self.firmware = {}
|
||||
|
||||
if self.equipment_id == "-1":
|
||||
eq_id = ap_ssh_ovsh_nodec(args, 'id')
|
||||
@@ -55,37 +61,64 @@ class NightlySanity:
|
||||
print("ERROR: Could not find equipment-id.")
|
||||
exit()
|
||||
|
||||
def configure_dut(self):
|
||||
|
||||
def setup(self):
|
||||
pass
|
||||
# Check for latest Firmware
|
||||
latest_fw = self.jfrog_build.check_latest_fw(self.model)
|
||||
if latest_fw is None:
|
||||
print("AP Model doesn't match the available Models")
|
||||
exit()
|
||||
self.firmware = {
|
||||
"latest": latest_fw,
|
||||
"current": self.ap_current_fw
|
||||
}
|
||||
|
||||
def create_test_run_session(self):
|
||||
today = str(date.today())
|
||||
case_ids = list(test_cases.values())
|
||||
projId = self.client.get_project_id(project_name=self.args.testrail_project)
|
||||
test_run_name = self.args.testrail_run_prefix + self.model + "_" + today + "_" + self.firmware["latest"]
|
||||
self.client.create_testrun(name=test_run_name, case_ids=case_ids, project_id=projId,
|
||||
milestone_id=self.args.milestone,
|
||||
description="Automated Nightly Sanity test run for new firmware build")
|
||||
self.rid = self.client.get_run_id(
|
||||
test_run_name=self.args.testrail_run_prefix + self.model + "_" + today + "_" + self.firmware["latest"])
|
||||
print("TIP run ID is:", self.rid)
|
||||
# Create Test session
|
||||
self.create_test_run_session()
|
||||
|
||||
def start_test(self, do_upgrade=False):
|
||||
# Check if AP needs Upgrade
|
||||
if (self.firmware["current"] is not None) and self.firmware["latest"] != self.firmware["current"]:
|
||||
do_upgrade = self.cloud.should_upgrade_ap_fw(self.bearer, self.args, self.report_data,
|
||||
self.firmware["latest"],
|
||||
self.args.model,
|
||||
self.firmware["current"], self.logger)
|
||||
|
||||
elif (self.firmware["current"] is not None) and self.firmware["latest"] == self.firmware["current"]:
|
||||
do_upgrade = False
|
||||
print("AP ia already having Latest Firmware...")
|
||||
|
||||
else:
|
||||
print("Skipping this Profile")
|
||||
exit()
|
||||
|
||||
# Upgrade the Firmware on AP
|
||||
if do_upgrade:
|
||||
|
||||
cloudModel = self.cloud_sdk_models[self.args.model]
|
||||
cloud_model = self.cloud_sdk_models[self.args.model]
|
||||
pf = self.cloud.do_upgrade_ap_fw(self.bearer, self.args, self.report_data, test_cases, self.client,
|
||||
self.firmware["latest"], cloudModel, self.args.model,
|
||||
self.firmware["latest"], cloud_model, self.args.model,
|
||||
self.args.jfrog_user_id, self.args.jfrog_user_password, self.rid,
|
||||
self.customer_id, self.equipment_id, self.logger)
|
||||
print(self.report_data)
|
||||
if not pf:
|
||||
exit()
|
||||
|
||||
return self.firmware
|
||||
|
||||
def create_test_run_session(self):
|
||||
today = str(date.today())
|
||||
case_ids = list(test_cases.values())
|
||||
proj_id = self.client.get_project_id(project_name=self.args.testrail_project)
|
||||
test_run_name = self.args.testrail_run_prefix + self.model + "_" + today + "_" + self.firmware["latest"]
|
||||
self.client.create_testrun(name=test_run_name, case_ids=case_ids, project_id=proj_id,
|
||||
milestone_id=self.args.milestone,
|
||||
description="Automated Nightly Sanity test run for new firmware build")
|
||||
self.rid = self.client.get_run_id(test_run_name=self.args.testrail_run_prefix + self.model + "_" + today + "_" + self.firmware["latest"])
|
||||
print("TIP run ID is:", self.rid)
|
||||
|
||||
def start_test(self):
|
||||
if True:
|
||||
###Check AP Manager Status
|
||||
# Check AP Manager Status
|
||||
manager_status = self.ap_cli_info['state']
|
||||
print(manager_status)
|
||||
|
||||
@@ -98,7 +131,7 @@ class NightlySanity:
|
||||
if manager_status != "active":
|
||||
print("Manager status is", manager_status, "! Not connected to the cloud.")
|
||||
print("Manager status fails multiple checks - failing test case.")
|
||||
##fail cloud connectivity testcase
|
||||
# fail cloud connectivity testcase
|
||||
self.client.update_testrail(case_id=self.test_cases["cloud_connection"], run_id=self.rid,
|
||||
status_id=5,
|
||||
msg='CloudSDK connectivity failed')
|
||||
@@ -127,15 +160,14 @@ class NightlySanity:
|
||||
self.ap_object = CreateAPProfiles(self.args, cloud=self.cloud, client=self.client, fw_model=self.model)
|
||||
|
||||
# Logic to create AP Profiles (Bridge Mode)
|
||||
self.ap_object.set_ssid_psk_data\
|
||||
(ssid_2g_wpa="Nightly-SSID-2G-WPA",
|
||||
ssid_5g_wpa="Nightly-SSID-5G-WPA",
|
||||
psk_2g_wpa= "Nightly_2g_wpa",
|
||||
psk_5g_wpa="Nightly_5g_wpa",
|
||||
ssid_2g_wpa2="Nightly-SSID-2G-WPA2",
|
||||
ssid_5g_wpa2="Nightly-SSID-5G-WPA2",
|
||||
psk_2g_wpa2="Nightly_2g_wpa2",
|
||||
psk_5g_wpa2="Nightly_5g_wpa2")
|
||||
self.ap_object.set_ssid_psk_data(ssid_2g_wpa="Nightly-SSID-2G-WPA",
|
||||
ssid_5g_wpa="Nightly-SSID-5G-WPA",
|
||||
psk_2g_wpa="Nightly_2g_wpa",
|
||||
psk_5g_wpa="Nightly_5g_wpa",
|
||||
ssid_2g_wpa2="Nightly-SSID-2G-WPA2",
|
||||
ssid_5g_wpa2="Nightly-SSID-5G-WPA2",
|
||||
psk_2g_wpa2="Nightly_2g_wpa2",
|
||||
psk_5g_wpa2="Nightly_5g_wpa2")
|
||||
|
||||
print("creating Profiles")
|
||||
ssid_template = "TipWlan-Cloud-Wifi"
|
||||
@@ -145,33 +177,29 @@ class NightlySanity:
|
||||
# Radius Profile needs to be set here
|
||||
# obj.create_radius_profile(radius_name, rid, key)
|
||||
pass
|
||||
self.ap_object.create_ssid_profiles(ssid_template=ssid_template, skip_eap=True)
|
||||
self.ap_object.create_ssid_profiles(ssid_template=ssid_template, skip_eap=True, mode="bridge")
|
||||
|
||||
print("Create AP with equipment-id: ", self.equipment_id)
|
||||
self.ap_object.create_ap_bridge_profile(eq_id=self.equipment_id, fw_model=self.model)
|
||||
self.ap_object.validate_changes()
|
||||
self.ap_object.create_ap_bridge_profile(eq_id=self.equipment_id, fw_model=self.model, mode="bridge")
|
||||
self.ap_object.validate_changes(mode="bridge")
|
||||
|
||||
print("Profiles Created")
|
||||
|
||||
self.test_bridge_mode_2g()
|
||||
self.test_bridge_mode_5g()
|
||||
# Logic to check Single client Connectivity for EAP
|
||||
|
||||
# Logic to check Single client Connectivity for WPA
|
||||
|
||||
# Logic to check Single client Connectivity for WPA2
|
||||
self.test_2g(mode="bridge")
|
||||
self.test_5g(mode="bridge")
|
||||
|
||||
time.sleep(10)
|
||||
self.reporting.update_json_report(report_data=self.ap_object.report_data)
|
||||
|
||||
# Logic to create AP Profiles (NAT Mode)
|
||||
self.ap_object.set_ssid_psk_data\
|
||||
(ssid_2g_wpa="Nightly-SSID-NAT-2G-WPA",
|
||||
ssid_5g_wpa="Nightly-SSID-NAT-5G-WPA",
|
||||
psk_2g_wpa= "Nightly_2g_nat_wpa",
|
||||
psk_5g_wpa="Nightly_5g_nat_wpa",
|
||||
ssid_2g_wpa2="Nightly-SSID-NAT-2G-WPA2",
|
||||
ssid_5g_wpa2="Nightly-SSID-NAT-5G-WPA2",
|
||||
psk_2g_wpa2="Nightly_2g_nat_wpa2",
|
||||
psk_5g_wpa2="Nightly_5g_nat_wpa2")
|
||||
self.ap_object.set_ssid_psk_data(ssid_2g_wpa="Nightly-SSID-NAT-2G-WPA",
|
||||
ssid_5g_wpa="Nightly-SSID-NAT-5G-WPA",
|
||||
psk_2g_wpa="Nightly_2g_nat_wpa",
|
||||
psk_5g_wpa="Nightly_5g_nat_wpa",
|
||||
ssid_2g_wpa2="Nightly-SSID-NAT-2G-WPA2",
|
||||
ssid_5g_wpa2="Nightly-SSID-NAT-5G-WPA2",
|
||||
psk_2g_wpa2="Nightly_2g_nat_wpa2",
|
||||
psk_5g_wpa2="Nightly_5g_nat_wpa2")
|
||||
|
||||
print("creating Profiles")
|
||||
ssid_template = "TipWlan-Cloud-Wifi"
|
||||
@@ -181,14 +209,16 @@ class NightlySanity:
|
||||
# Radius Profile needs to be set here
|
||||
# obj.create_radius_profile(radius_name, rid, key)
|
||||
pass
|
||||
self.ap_object.create_ssid_profiles(ssid_template=ssid_template, skip_eap=True)
|
||||
self.ap_object.create_ssid_profiles(ssid_template=ssid_template, skip_eap=True, mode="nat")
|
||||
|
||||
print("Create AP with equipment-id: ", self.equipment_id)
|
||||
self.ap_object.create_ap_bridge_profile(eq_id=self.equipment_id, fw_model=self.model)
|
||||
self.ap_object.validate_changes()
|
||||
|
||||
|
||||
self.ap_object.create_ap_bridge_profile(eq_id=self.equipment_id, fw_model=self.model, mode="nat")
|
||||
self.ap_object.validate_changes(mode="nat")
|
||||
|
||||
self.test_2g(mode="nat")
|
||||
self.test_5g(mode="nat")
|
||||
time.sleep(10)
|
||||
self.reporting.update_json_report(report_data=self.ap_object.report_data)
|
||||
|
||||
def setup_report(self):
|
||||
|
||||
@@ -211,56 +241,103 @@ class NightlySanity:
|
||||
|
||||
self.reporting.update_json_report(report_data=self.report_data)
|
||||
|
||||
def check_fw(self, jfrog=None):
|
||||
def test_2g(self, mode="bridge"):
|
||||
|
||||
# This can be kept as a global dictionary
|
||||
ap_latest_dict = {
|
||||
"ec420": "Unknown",
|
||||
"ea8300": "Unknown",
|
||||
"ecw5211": "unknown",
|
||||
"ecw5410": "unknown"
|
||||
}
|
||||
self.ap_latest_dict = check_latest_fw(jfrog=jfrog,
|
||||
ap_latest_dict=ap_latest_dict,
|
||||
buildid=self.args.build_id)
|
||||
|
||||
try:
|
||||
self.ap_cli_info = get_ap_info(self.args)
|
||||
self.ap_current_fw = self.ap_cli_info['active_fw']
|
||||
except Exception as ex:
|
||||
print(ex)
|
||||
self.ap_current_fw = None
|
||||
logging.error(logging.traceback.format_exc())
|
||||
ap_cli_info = "ERROR"
|
||||
print("Cannot Reach AP CLI, will not test this variant");
|
||||
self.firmware = {
|
||||
"latest": self.ap_latest_dict[self.args.model],
|
||||
"current": self.ap_current_fw
|
||||
}
|
||||
return self.firmware
|
||||
|
||||
# lanforge = {
|
||||
# "ip": command_line_args.lanforge_ip_address,
|
||||
# "port": command_line_args.lanforge_port_number,
|
||||
# "prefix": command_line_args.lanforge_prefix,
|
||||
# "2g_radio": command_line_args.lanforge_2g_radio,
|
||||
# "5g_radio": command_line_args.lanforge_5g_radio
|
||||
# }
|
||||
|
||||
# dev complete
|
||||
def test_bridge_mode_2g(self):
|
||||
if mode == "bridge":
|
||||
mode_a = "name"
|
||||
if mode == "nat":
|
||||
mode_a = "nat"
|
||||
|
||||
if not self.args.skip_radius:
|
||||
###Run Client Single Connectivity Test Cases for Bridge SSIDs
|
||||
# Run Client Single Connectivity Test Cases for Bridge SSIDs
|
||||
# TC5214 - 2.4 GHz WPA2-Enterprise
|
||||
test_case = test_cases["2g_eap_bridge"]
|
||||
test_case = test_cases["2g_eap_" + mode]
|
||||
radio = lanforge_2g_radio
|
||||
sta_list = [lanforge_prefix + "5214"]
|
||||
ssid_name = ssid_2g_eap;
|
||||
security = "wpa2"
|
||||
eap_type = "TTLS"
|
||||
try:
|
||||
test_result = self.Test.Single_Client_EAP(port, sta_list, ssid_name, radio, security, eap_type,
|
||||
test_result = self.test.Single_Client_EAP(port, sta_list, ssid_name, radio, security, eap_type,
|
||||
identity, ttls_password, test_case, rid, client, logger)
|
||||
except:
|
||||
test_result = "error"
|
||||
self.test.testrail_retest(test_case, rid, ssid_name, client, logger)
|
||||
pass
|
||||
report_data['tests'][key][int(test_case)] = test_result
|
||||
print(report_data['tests'][key])
|
||||
|
||||
time.sleep(10)
|
||||
|
||||
# Run Client Single Connectivity Test Cases for Bridge SSIDs
|
||||
# TC - 2.4 GHz WPA2
|
||||
test_case = test_cases["2g_wpa2_" + mode]
|
||||
station = [self.lanforge_data['prefix'] + "2237"]
|
||||
ssid_name = self.ap_object.ssid_data['2g']['wpa2'][mode_a]
|
||||
ssid_psk = self.ap_object.psk_data['2g']['wpa2'][mode_a]
|
||||
security = "wpa2"
|
||||
upstream_port = "eth2"
|
||||
print(self.lanforge_data['port'])
|
||||
|
||||
try:
|
||||
test_result = self.test.Single_Client_Connectivity(upstream_port=upstream_port,
|
||||
radio=self.lanforge_data['2g_radio'],
|
||||
ssid=ssid_name,
|
||||
passkey=ssid_psk,
|
||||
security=security,
|
||||
station_name=station, test_case=test_case, rid=self.rid,
|
||||
client=self.client, logger=self.logger)
|
||||
except:
|
||||
test_result = "error"
|
||||
self.test.testrail_retest(test_case, self.rid, ssid_name, self.client, self.logger)
|
||||
pass
|
||||
self.report_data['tests'][self.model][int(test_case)] = test_result
|
||||
print(self.report_data['tests'][self.model])
|
||||
|
||||
time.sleep(10)
|
||||
|
||||
# TC - 2.4 GHz WPA
|
||||
test_case = test_cases["2g_wpa_" + mode]
|
||||
station = [self.lanforge_data['prefix'] + "2420"]
|
||||
ssid_name = self.ap_object.ssid_data['2g']['wpa'][mode_a]
|
||||
ssid_psk = self.ap_object.psk_data['2g']['wpa'][mode_a]
|
||||
security = "wpa"
|
||||
upstream_port = "eth2"
|
||||
print(self.lanforge_data['port'])
|
||||
try:
|
||||
test_result = self.test.Single_Client_Connectivity(upstream_port=upstream_port,
|
||||
radio=self.lanforge_data['2g_radio'],
|
||||
ssid=ssid_name,
|
||||
passkey=ssid_psk,
|
||||
security=security,
|
||||
station_name=station, test_case=test_case, rid=self.rid,
|
||||
client=self.client, logger=self.logger)
|
||||
except:
|
||||
test_result = "error"
|
||||
self.test.testrail_retest(test_case, self.rid, ssid_name, self.client, self.logger)
|
||||
pass
|
||||
self.report_data['tests'][self.model][int(test_case)] = test_result
|
||||
print(self.report_data['tests'][self.model])
|
||||
|
||||
time.sleep(10)
|
||||
|
||||
def test_5g(self, mode="bridge"):
|
||||
|
||||
if mode == "bridge":
|
||||
mode_a = "name"
|
||||
if mode == "nat":
|
||||
mode_a = "nat"
|
||||
|
||||
if not self.args.skip_radius:
|
||||
# TC - 5 GHz WPA2-Enterprise
|
||||
test_case = self.test_cases["5g_eap_" + mode]
|
||||
radio = lanforge_5g_radio
|
||||
sta_list = [lanforge_prefix + "5215"]
|
||||
ssid_name = ssid_5g_eap
|
||||
security = "wpa2"
|
||||
eap_type = "TTLS"
|
||||
try:
|
||||
test_result = Test.Single_Client_EAP(port, sta_list, ssid_name, radio, security, eap_type,
|
||||
identity, ttls_password, test_case, rid, client, logger)
|
||||
except:
|
||||
test_result = "error"
|
||||
@@ -271,90 +348,15 @@ class NightlySanity:
|
||||
|
||||
time.sleep(10)
|
||||
|
||||
###Run Client Single Connectivity Test Cases for Bridge SSIDs
|
||||
# TC - 2.4 GHz WPA2
|
||||
test_case = test_cases["2g_wpa2_bridge"]
|
||||
station = [self.lanforge_data['prefix'] + "2237"]
|
||||
ssid_name = self.ap_object.ssid_data['2g']['wpa2']['name']
|
||||
ssid_psk = self.ap_object.psk_data['2g']['wpa2']['name']
|
||||
security = "wpa2"
|
||||
upstream_port = "eth2"
|
||||
print(self.lanforge_data['port'])
|
||||
|
||||
|
||||
try:
|
||||
test_result = self.Test.Single_Client_Connectivity(upstream_port=upstream_port,
|
||||
radio=self.lanforge_data['2g_radio'],
|
||||
ssid=ssid_name,
|
||||
passkey=ssid_psk,
|
||||
security=security,
|
||||
station_name=station, test_case=test_case, rid=self.rid, client=self.client, logger=self.logger)
|
||||
except:
|
||||
test_result = "error"
|
||||
self.Test.testrail_retest(test_case, self.rid, ssid_name, self.client, self.logger)
|
||||
pass
|
||||
self.report_data['tests'][self.model][int(test_case)] = test_result
|
||||
print(self.report_data['tests'][self.model])
|
||||
|
||||
time.sleep(10)
|
||||
|
||||
# TC - 2.4 GHz WPA
|
||||
test_case = test_cases["2g_wpa_bridge"]
|
||||
station = [self.lanforge_data['prefix'] + "2420"]
|
||||
ssid_name = self.ap_object.ssid_data['2g']['wpa']['name']
|
||||
ssid_psk = self.ap_object.psk_data['2g']['wpa']['name']
|
||||
security = "wpa"
|
||||
upstream_port = "eth2"
|
||||
print(self.lanforge_data['port'])
|
||||
try:
|
||||
test_result = self.Test.Single_Client_Connectivity(upstream_port=upstream_port,
|
||||
radio=self.lanforge_data['2g_radio'],
|
||||
ssid=ssid_name,
|
||||
passkey=ssid_psk,
|
||||
security=security,
|
||||
station_name=station, test_case=test_case, rid=self.rid,
|
||||
client=self.client, logger=self.logger)
|
||||
except:
|
||||
test_result = "error"
|
||||
self.Test.testrail_retest(test_case, self.rid, ssid_name, self.client, self.logger)
|
||||
pass
|
||||
self.report_data['tests'][self.model][int(test_case)] = test_result
|
||||
print(self.report_data['tests'][self.model])
|
||||
|
||||
time.sleep(10)
|
||||
|
||||
# dev complete
|
||||
def test_bridge_mode_5g(self):
|
||||
|
||||
if not self.args.skip_radius:
|
||||
# TC - 5 GHz WPA2-Enterprise
|
||||
test_case = self.test_cases["5g_eap_bridge"]
|
||||
radio = lanforge_5g_radio
|
||||
sta_list = [lanforge_prefix+"5215"]
|
||||
ssid_name = ssid_5g_eap
|
||||
security = "wpa2"
|
||||
eap_type = "TTLS"
|
||||
try:
|
||||
test_result = Test.Single_Client_EAP(port, sta_list, ssid_name, radio, security, eap_type,
|
||||
identity, ttls_password, test_case, rid, client, logger)
|
||||
except:
|
||||
test_result = "error"
|
||||
Test.testrail_retest(test_case, rid, ssid_name, client, logger)
|
||||
pass
|
||||
report_data['tests'][key][int(test_case)] = test_result
|
||||
print(report_data['tests'][key])
|
||||
|
||||
time.sleep(10)
|
||||
|
||||
# TC 5 GHz WPA2
|
||||
test_case = test_cases["5g_wpa2_bridge"]
|
||||
test_case = test_cases["5g_wpa2_" + mode]
|
||||
station = [self.lanforge_data['prefix'] + "2236"]
|
||||
ssid_name = self.ap_object.ssid_data['5g']['wpa2']['name']
|
||||
ssid_psk = self.ap_object.psk_data['5g']['wpa2']['name']
|
||||
ssid_name = self.ap_object.ssid_data['5g']['wpa2'][mode_a]
|
||||
ssid_psk = self.ap_object.psk_data['5g']['wpa2'][mode_a]
|
||||
security = "wpa2"
|
||||
upstream_port = "eth2"
|
||||
try:
|
||||
test_result = self.Test.Single_Client_Connectivity(upstream_port=upstream_port,
|
||||
test_result = self.test.Single_Client_Connectivity(upstream_port=upstream_port,
|
||||
radio=self.lanforge_data['5g_radio'],
|
||||
ssid=ssid_name,
|
||||
passkey=ssid_psk,
|
||||
@@ -363,7 +365,7 @@ class NightlySanity:
|
||||
client=self.client, logger=self.logger)
|
||||
except:
|
||||
test_result = "error"
|
||||
self.Test.testrail_retest(test_case, self.rid, ssid_name, self.client, self.logger)
|
||||
self.test.testrail_retest(test_case, self.rid, ssid_name, self.client, self.logger)
|
||||
pass
|
||||
self.report_data['tests'][self.model][int(test_case)] = test_result
|
||||
print(self.report_data['tests'][self.model])
|
||||
@@ -371,14 +373,14 @@ class NightlySanity:
|
||||
time.sleep(10)
|
||||
|
||||
# # TC - 5 GHz WPA
|
||||
test_case = test_cases["5g_wpa_bridge"]
|
||||
station = [self.lanforge_data['prefix']+"2419"]
|
||||
ssid_name = self.ap_object.ssid_data['5g']['wpa']['name']
|
||||
ssid_psk = self.ap_object.psk_data['5g']['wpa']['name']
|
||||
test_case = test_cases["5g_wpa_" + mode]
|
||||
station = [self.lanforge_data['prefix'] + "2419"]
|
||||
ssid_name = self.ap_object.ssid_data['5g']['wpa'][mode_a]
|
||||
ssid_psk = self.ap_object.psk_data['5g']['wpa'][mode_a]
|
||||
security = "wpa"
|
||||
upstream_port = "eth2"
|
||||
try:
|
||||
test_result = self.Test.Single_Client_Connectivity(upstream_port=upstream_port,
|
||||
test_result = self.test.Single_Client_Connectivity(upstream_port=upstream_port,
|
||||
radio=self.lanforge_data['5g_radio'],
|
||||
ssid=ssid_name,
|
||||
passkey=ssid_psk,
|
||||
@@ -387,24 +389,13 @@ class NightlySanity:
|
||||
client=self.client, logger=self.logger)
|
||||
except:
|
||||
test_result = "error"
|
||||
self.Test.testrail_retest(test_case, self.rid, ssid_name, self.client, self.logger)
|
||||
self.test.testrail_retest(test_case, self.rid, ssid_name, self.client, self.logger)
|
||||
pass
|
||||
self.report_data['tests'][self.model][int(test_case)] = test_result
|
||||
print(self.report_data['tests'][self.model])
|
||||
|
||||
time.sleep(10)
|
||||
|
||||
pass
|
||||
|
||||
|
||||
|
||||
def test_nat_mode(self):
|
||||
pass
|
||||
|
||||
def test_vlan_mode(self):
|
||||
pass
|
||||
|
||||
|
||||
|
||||
def main():
|
||||
parser = argparse.ArgumentParser(description="Nightly Combined Tests", add_help=False)
|
||||
@@ -427,36 +418,37 @@ def main():
|
||||
command_line_args = base.command_line_args
|
||||
|
||||
# cmd line takes precedence over env-vars.
|
||||
cloudSDK_url = command_line_args.sdk_base_url # was os.getenv('CLOUD_SDK_URL')
|
||||
cloudsdk_url = command_line_args.sdk_base_url # was os.getenv('CLOUD_SDK_URL')
|
||||
|
||||
local_dir = command_line_args.local_dir # was os.getenv('SANITY_LOG_DIR')
|
||||
report_path = command_line_args.report_path # was os.getenv('SANITY_REPORT_DIR')
|
||||
report_template = command_line_args.report_template # was os.getenv('REPORT_TEMPLATE')
|
||||
|
||||
## TestRail Information
|
||||
# TestRail Information
|
||||
tr_user = command_line_args.testrail_user_id # was os.getenv('TR_USER')
|
||||
tr_pw = command_line_args.testrail_user_password # was os.getenv('TR_PWD')
|
||||
milestoneId = command_line_args.milestone # was os.getenv('MILESTONE')
|
||||
projectId = command_line_args.testrail_project # was os.getenv('PROJECT_ID')
|
||||
testRunPrefix = command_line_args.testrail_run_prefix # os.getenv('TEST_RUN_PREFIX')
|
||||
milestone_id = command_line_args.milestone # was os.getenv('MILESTONE')
|
||||
project_id = command_line_args.testrail_project # was os.getenv('PROJECT_ID')
|
||||
test_run_prefix = command_line_args.testrail_run_prefix # os.getenv('TEST_RUN_PREFIX')
|
||||
|
||||
##Jfrog credentials
|
||||
# Jfrog credentials
|
||||
jfrog = {
|
||||
"user": command_line_args.jfrog_user_id, # was os.getenv('JFROG_USER')
|
||||
"pass": command_line_args.jfrog_user_password # was os.getenv('JFROG_PWD')
|
||||
}
|
||||
|
||||
##EAP Credentials
|
||||
# EAP Credentials
|
||||
eap_cred = {
|
||||
"identity": command_line_args.eap_id,
|
||||
"ttls_password": command_line_args.ttls_password
|
||||
}
|
||||
|
||||
## AP Credentials
|
||||
# AP Credentials
|
||||
ap_cred = {
|
||||
"username": command_line_args.ap_username
|
||||
}
|
||||
|
||||
##LANForge Information
|
||||
# LANForge Information
|
||||
lanforge = {
|
||||
"ip": command_line_args.lanforge_ip_address,
|
||||
"port": command_line_args.lanforge_port_number,
|
||||
@@ -470,55 +462,31 @@ def main():
|
||||
logger = base.logger
|
||||
hdlr = base.hdlr
|
||||
|
||||
if command_line_args.testbed == None:
|
||||
if command_line_args.testbed is None:
|
||||
print("ERROR: Must specify --testbed argument for this test.")
|
||||
sys.exit(1)
|
||||
|
||||
print("Start of Sanity Testing...")
|
||||
print("Testing Latest Build with Tag: " + build)
|
||||
if command_line_args.skip_upgrade == True:
|
||||
if command_line_args.skip_upgrade:
|
||||
print("Will skip upgrading AP firmware...")
|
||||
|
||||
######Testrail Project and Run ID Information ##############################
|
||||
# Testrail Project and Run ID Information
|
||||
|
||||
Test = RunTest(lanforge_ip=lanforge["ip"], lanforge_port=lanforge["port"], lanforge_prefix=lanforge["prefix"])
|
||||
test = RunTest(lanforge_ip=lanforge["ip"], lanforge_port=lanforge["port"], lanforge_prefix=lanforge["prefix"])
|
||||
|
||||
build_obj = GetBuild(jfrog['user'], jfrog['pass'], build)
|
||||
|
||||
# sanity_status = json.load(open("sanity_status.json"))
|
||||
obj = NightlySanity(args=command_line_args, base=base, lanforge_data=lanforge, Test=Test, reporting=reporting)
|
||||
obj = NightlySanity(args=command_line_args, base=base, lanforge_data=lanforge, Test=test, reporting=reporting,
|
||||
build=build_obj)
|
||||
obj.configure_dut()
|
||||
|
||||
projId = obj.client.get_project_id(project_name=projectId)
|
||||
print("TIP WLAN Project ID is:", projId)
|
||||
proj_id = obj.client.get_project_id(project_name=project_id)
|
||||
print("TIP WLAN Project ID is:", proj_id)
|
||||
logger.info('Start of Nightly Sanity')
|
||||
|
||||
# get latest revision
|
||||
firmware = obj.check_fw(jfrog=jfrog)
|
||||
report_data = dict()
|
||||
|
||||
# Check is current fw is there else will skip this variant test
|
||||
if (firmware["current"] is not None) and firmware["latest"] != firmware["current"]:
|
||||
do_upgrade = obj.cloud.should_upgrade_ap_fw(obj.bearer, obj.args, report_data, firmware["latest"],
|
||||
command_line_args.model,
|
||||
firmware["current"], logger)
|
||||
|
||||
elif (firmware["current"] is not None) and firmware["latest"] == firmware["current"]:
|
||||
do_upgrade = False
|
||||
print("AP ia already having Latest Firmware...")
|
||||
|
||||
else:
|
||||
print("Skipping this Profile")
|
||||
exit()
|
||||
|
||||
# exit()
|
||||
# Test till here to verify all connectivity with cloud and ap and fe upgrade logics
|
||||
|
||||
# Create session for Test
|
||||
obj.create_test_run_session()
|
||||
|
||||
# Setup Reporting
|
||||
obj.setup_report()
|
||||
|
||||
# Start Test
|
||||
obj.start_test(do_upgrade=do_upgrade)
|
||||
obj.start_test()
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
|
||||
@@ -1,14 +1,16 @@
|
||||
#!/usr/bin/python3
|
||||
|
||||
import sys
|
||||
|
||||
if sys.version_info[0] != 3:
|
||||
print("This script requires Python 3")
|
||||
exit(1)
|
||||
|
||||
import sys
|
||||
|
||||
for folder in 'py-json', 'py-scripts':
|
||||
if folder not in sys.path:
|
||||
sys.path.append(f'../libs/lanforge/lanforge-scripts/{folder}')
|
||||
sys.path.append(f'../lanforge/lanforge-scripts/{folder}')
|
||||
|
||||
sys.path.append(f'../libs/lanforge')
|
||||
sys.path.append(f'../libs/testrails')
|
||||
@@ -58,14 +60,11 @@ import glob
|
||||
|
||||
# external_results_dir=/var/tmp/lanforge
|
||||
|
||||
# To run this from your home system to NOLA-01 testbed, use this command.
|
||||
# This assumes you have set up an ssh tunnel logged to the cicd jumphost that can
|
||||
# reach the lab.
|
||||
# In separate console to set up the ssh tunnel:
|
||||
#ssh -C -L 7220:lab-ctlr:22 ubuntu@3.130.51.163
|
||||
# On local machine:
|
||||
#./query_ssids.py --testrail-user-id NONE --model ecw5410 --ap-jumphost-address localhost --ap-jumphost-port 7220 --ap-jumphost-password secret --ap-jumphost-tty /dev/ttyAP1
|
||||
|
||||
# To run this from your home system to NOLA-01 testbed, use this command. This assumes you have set up an ssh tunnel
|
||||
# logged to the cicd jumphost that can reach the lab. In separate console to set up the ssh tunnel: ssh -C -L
|
||||
# 7220:lab-ctlr:22 ubuntu@3.130.51.163 On local machine:
|
||||
# ./query_ssids.py --testrail-user-id NONE --model ecw5410
|
||||
# --ap-jumphost-address localhost --ap-jumphost-port 7220 --ap-jumphost-password secret --ap-jumphost-tty /dev/ttyAP1
|
||||
|
||||
|
||||
import testrail_api
|
||||
@@ -86,7 +85,7 @@ from cloudsdk import CreateAPProfiles
|
||||
import ap_ssh
|
||||
from ap_ssh import *
|
||||
|
||||
##Import info for lab setup and APs under test
|
||||
# Import info for lab setup and APs under test
|
||||
import lab_ap_info
|
||||
from lab_ap_info import cloud_sdk_models
|
||||
from lab_ap_info import ap_models
|
||||
@@ -95,34 +94,38 @@ from lab_ap_info import cloud_type
|
||||
from lab_ap_info import test_cases
|
||||
from lab_ap_info import radius_info
|
||||
|
||||
|
||||
class UnitTestBase:
|
||||
|
||||
def __init__(self, log_name, args, reporting):
|
||||
|
||||
self.parser = argparse.ArgumentParser(description="Sanity Testing on Firmware Build", parents=[args])
|
||||
|
||||
self.parser.add_argument("-b", "--build-id", type=str, help="FW commit ID (latest pending build on dev is default)",
|
||||
default = "pending")
|
||||
self.parser.add_argument("-b", "--build-id", type=str,
|
||||
help="FW commit ID (latest pending build on dev is default)",
|
||||
default="pending")
|
||||
self.parser.add_argument("--skip-upgrade", type=bool, help="Skip upgrading firmware",
|
||||
default = False)
|
||||
self.parser.add_argument("--force-upgrade", type=bool, help="Force upgrading firmware even if it is already current version",
|
||||
default = False)
|
||||
self.parser.add_argument("-m", "--model", type=str, choices=['ea8300', 'ecw5410', 'ecw5211', 'ec420', 'wf188n', 'None'],
|
||||
help="AP model to be run", required=True)
|
||||
default=False)
|
||||
self.parser.add_argument("--force-upgrade", type=bool,
|
||||
help="Force upgrading firmware even if it is already current version",
|
||||
default=False)
|
||||
self.parser.add_argument("-m", "--model", type=str,
|
||||
choices=['ea8300', 'ecw5410', 'ecw5211', 'ec420', 'wf188n', 'None'],
|
||||
help="AP model to be run", required=True)
|
||||
self.parser.add_argument("--equipment_id", type=str,
|
||||
help="AP model ID, as exists in the cloud-sdk. -1 to auto-detect.",
|
||||
default = "-1")
|
||||
default="-1")
|
||||
self.parser.add_argument("--object_id", type=str,
|
||||
help="Used when querying and deleting individual objects.",
|
||||
default = None)
|
||||
default=None)
|
||||
self.parser.add_argument("--customer-id", type=str,
|
||||
help="Specify cloud customer-id, default is 2",
|
||||
default = "2")
|
||||
default="2")
|
||||
self.parser.add_argument("--testbed", type=str,
|
||||
help="Testbed name, will be prefixed to profile names and similar",
|
||||
default = None)
|
||||
default=None)
|
||||
|
||||
self.parser.add_argument("--sdk-base-url", type=str, help="cloudsdk base url, default: https://wlan-portal-svc.cicd.lab.wlan.tip.build",
|
||||
self.parser.add_argument("--sdk-base-url", type=str,
|
||||
help="cloudsdk base url, default: https://wlan-portal-svc.cicd.lab.wlan.tip.build",
|
||||
default="https://wlan-portal-svc.cicd.lab.wlan.tip.build")
|
||||
self.parser.add_argument("--sdk-user-id", type=str, help="cloudsdk user id, default: support@example.conf",
|
||||
default="support@example.com")
|
||||
@@ -130,66 +133,72 @@ class UnitTestBase:
|
||||
default="support")
|
||||
|
||||
self.parser.add_argument("--jfrog-base-url", type=str, help="jfrog base url",
|
||||
default="tip.jFrog.io/artifactory/tip-wlan-ap-firmware")
|
||||
default="tip.jFrog.io/artifactory/tip-wlan-ap-firmware")
|
||||
self.parser.add_argument("--jfrog-user-id", type=str, help="jfrog user id",
|
||||
default="tip-read")
|
||||
default="tip-read")
|
||||
self.parser.add_argument("--jfrog-user-password", type=str, help="jfrog user password",
|
||||
default="tip-read")
|
||||
default="tip-read")
|
||||
|
||||
self.parser.add_argument("--testrail-base-url", type=str, help="testrail base url", # was os.getenv('TESTRAIL_URL')
|
||||
default="https://telecominfraproject.testrail.com")
|
||||
self.parser.add_argument("--testrail-base-url", type=str, help="testrail base url",
|
||||
# was os.getenv('TESTRAIL_URL')
|
||||
default="https://telecominfraproject.testrail.com")
|
||||
self.parser.add_argument("--testrail-project", type=str, help="testrail project name",
|
||||
default="opsfleet-wlan")
|
||||
self.parser.add_argument("--testrail-user-id", type=str, help="testrail user id. Use 'NONE' to disable use of testrails.",
|
||||
default="gleb@opsfleet.com")
|
||||
default="opsfleet-wlan")
|
||||
self.parser.add_argument("--testrail-user-id", type=str,
|
||||
help="testrail user id. Use 'NONE' to disable use of testrails.",
|
||||
default="gleb@opsfleet.com")
|
||||
self.parser.add_argument("--testrail-user-password", type=str, help="testrail user password",
|
||||
default="password")
|
||||
default="password")
|
||||
self.parser.add_argument("--testrail-run-prefix", type=str, help="testrail run prefix",
|
||||
default="prefix-1")
|
||||
default="prefix-1")
|
||||
self.parser.add_argument("--milestone", type=str, help="testrail milestone ID",
|
||||
default="milestone-1")
|
||||
default="milestone-1")
|
||||
|
||||
self.parser.add_argument("--lanforge-ip-address", type=str, help="ip address of the lanforge gui",
|
||||
default="127.0.0.1")
|
||||
default="127.0.0.1")
|
||||
self.parser.add_argument("--lanforge-port-number", type=str, help="port of the lanforge gui",
|
||||
default="8080")
|
||||
default="8080")
|
||||
self.parser.add_argument("--lanforge-prefix", type=str, help="LANforge api prefix string",
|
||||
default="sdk")
|
||||
default="sdk")
|
||||
self.parser.add_argument("--lanforge-2g-radio", type=str, help="LANforge 2Ghz radio to use for testing",
|
||||
default="1.1.wiphy0")
|
||||
default="1.1.wiphy0")
|
||||
self.parser.add_argument("--lanforge-5g-radio", type=str, help="LANforge 5Ghz radio to use for testing",
|
||||
default="1.1.wiphy1")
|
||||
default="1.1.wiphy1")
|
||||
|
||||
self.parser.add_argument("--local_dir", type=str, help="Sanity logging directory",
|
||||
default="logs")
|
||||
default="logs")
|
||||
self.parser.add_argument("--report-path", type=str, help="Sanity report directory",
|
||||
default="reports")
|
||||
default="reports")
|
||||
self.parser.add_argument("--report-template", type=str, help="Sanity report template",
|
||||
default="reports/report_template.php")
|
||||
default="reports/report_template.php")
|
||||
|
||||
self.parser.add_argument("--eap-id", type=str, help="EAP indentity",
|
||||
default="lanforge")
|
||||
default="lanforge")
|
||||
self.parser.add_argument("--ttls-password", type=str, help="TTLS password",
|
||||
default="lanforge")
|
||||
default="lanforge")
|
||||
|
||||
self.parser.add_argument("--ap-ip", type=str, help="AP IP Address, for direct ssh access if not using jumphost",
|
||||
default="127.0.0.1")
|
||||
default="127.0.0.1")
|
||||
self.parser.add_argument("--ap-username", type=str, help="AP username",
|
||||
default="root")
|
||||
default="root")
|
||||
self.parser.add_argument("--ap-password", type=str, help="AP password",
|
||||
default="root")
|
||||
self.parser.add_argument("--ap-jumphost-address", type=str, help="IP of system that we can ssh in to get serial console access to AP",
|
||||
default=None)
|
||||
self.parser.add_argument("--ap-jumphost-port", type=str, help="SSH port to use in case we are using ssh tunneling or other non-standard ports",
|
||||
default="22")
|
||||
self.parser.add_argument("--ap-jumphost-username", type=str, help="User-ID for system that we can ssh in to get serial console access to AP",
|
||||
default="lanforge")
|
||||
self.parser.add_argument("--ap-jumphost-password", type=str, help="Passwort for system that we can ssh in to get serial console access to AP",
|
||||
default="lanforge")
|
||||
default="root")
|
||||
self.parser.add_argument("--ap-jumphost-address", type=str,
|
||||
help="IP of system that we can ssh in to get serial console access to AP",
|
||||
default=None)
|
||||
self.parser.add_argument("--ap-jumphost-port", type=str,
|
||||
help="SSH port to use in case we are using ssh tunneling or other non-standard ports",
|
||||
default="22")
|
||||
self.parser.add_argument("--ap-jumphost-username", type=str,
|
||||
help="User-ID for system that we can ssh in to get serial console access to AP",
|
||||
default="lanforge")
|
||||
self.parser.add_argument("--ap-jumphost-password", type=str,
|
||||
help="Passwort for system that we can ssh in to get serial console access to AP",
|
||||
default="lanforge")
|
||||
self.parser.add_argument("--ap-jumphost-wlan-testing", type=str, help="wlan-testing repo dir on the jumphost",
|
||||
default="git/wlan-testing")
|
||||
default="git/wlan-testing")
|
||||
self.parser.add_argument("--ap-jumphost-tty", type=str, help="Serial port for the AP we wish to talk to",
|
||||
default="UNCONFIGURED-JUMPHOST-TTY")
|
||||
default="UNCONFIGURED-JUMPHOST-TTY")
|
||||
|
||||
self.parser.add_argument('--skip-update-firmware', dest='update_firmware', action='store_false')
|
||||
self.parser.set_defaults(update_firmware=True)
|
||||
@@ -200,28 +209,28 @@ class UnitTestBase:
|
||||
self.command_line_args = self.parser.parse_args()
|
||||
|
||||
# cmd line takes precedence over env-vars.
|
||||
self.cloudSDK_url = self.command_line_args.sdk_base_url # was os.getenv('CLOUD_SDK_URL')
|
||||
self.local_dir = self.command_line_args.local_dir # was os.getenv('SANITY_LOG_DIR')
|
||||
self.report_path = self.command_line_args.report_path # was os.getenv('SANITY_REPORT_DIR')
|
||||
self.cloudSDK_url = self.command_line_args.sdk_base_url # was os.getenv('CLOUD_SDK_URL')
|
||||
self.local_dir = self.command_line_args.local_dir # was os.getenv('SANITY_LOG_DIR')
|
||||
self.report_path = self.command_line_args.report_path # was os.getenv('SANITY_REPORT_DIR')
|
||||
self.report_template = self.command_line_args.report_template # was os.getenv('REPORT_TEMPLATE')
|
||||
|
||||
## TestRail Information
|
||||
self.tr_user = self.command_line_args.testrail_user_id # was os.getenv('TR_USER')
|
||||
self.tr_pw = self.command_line_args.testrail_user_password # was os.getenv('TR_PWD')
|
||||
self.milestoneId = self.command_line_args.milestone # was os.getenv('MILESTONE')
|
||||
self.projectId = self.command_line_args.testrail_project # was os.getenv('PROJECT_ID')
|
||||
self.testRunPrefix = self.command_line_args.testrail_run_prefix # os.getenv('TEST_RUN_PREFIX')
|
||||
self.tr_user = self.command_line_args.testrail_user_id # was os.getenv('TR_USER')
|
||||
self.tr_pw = self.command_line_args.testrail_user_password # was os.getenv('TR_PWD')
|
||||
self.milestoneId = self.command_line_args.milestone # was os.getenv('MILESTONE')
|
||||
self.projectId = self.command_line_args.testrail_project # was os.getenv('PROJECT_ID')
|
||||
self.testRunPrefix = self.command_line_args.testrail_run_prefix # os.getenv('TEST_RUN_PREFIX')
|
||||
|
||||
##Jfrog credentials
|
||||
self.jfrog_user = self.command_line_args.jfrog_user_id # was os.getenv('JFROG_USER')
|
||||
self.jfrog_pwd = self.command_line_args.jfrog_user_password # was os.getenv('JFROG_PWD')
|
||||
self.jfrog_user = self.command_line_args.jfrog_user_id # was os.getenv('JFROG_USER')
|
||||
self.jfrog_pwd = self.command_line_args.jfrog_user_password # was os.getenv('JFROG_PWD')
|
||||
|
||||
##EAP Credentials
|
||||
self.identity = self.command_line_args.eap_id # was os.getenv('EAP_IDENTITY')
|
||||
self.ttls_password = self.command_line_args.ttls_password # was os.getenv('EAP_PWD')
|
||||
self.identity = self.command_line_args.eap_id # was os.getenv('EAP_IDENTITY')
|
||||
self.ttls_password = self.command_line_args.ttls_password # was os.getenv('EAP_PWD')
|
||||
|
||||
## AP Credentials
|
||||
self.ap_username = self.command_line_args.ap_username # was os.getenv('AP_USER')
|
||||
self.ap_username = self.command_line_args.ap_username # was os.getenv('AP_USER')
|
||||
|
||||
##LANForge Information
|
||||
self.lanforge_ip = self.command_line_args.lanforge_ip_address
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
|
||||
import os
|
||||
from datetime import date, datetime
|
||||
from shutil import copyfile
|
||||
import json
|
||||
|
||||
|
||||
class Reporting:
|
||||
|
||||
def __init__(self, reports_root="../reports/"):
|
||||
@@ -11,7 +11,7 @@ class Reporting:
|
||||
self.reports_root = reports_root
|
||||
self.report_id = self.create_report_id()
|
||||
self.report_path = self.reports_root + self.report_id
|
||||
self.templates_root = os.path.abspath(self.reports_root+"../templates")
|
||||
self.templates_root = os.path.abspath(self.reports_root + "../templates")
|
||||
try:
|
||||
os.mkdir(self.report_path)
|
||||
print("Successfully created the directory %s " % self.report_path)
|
||||
@@ -23,10 +23,9 @@ class Reporting:
|
||||
except:
|
||||
print("No report template created. Report data will still be saved. Continuing with tests...")
|
||||
|
||||
|
||||
def create_report_id(self):
|
||||
today = str(date.today())
|
||||
now = str(datetime.now()).split(" ")[1].split(".")[0].replace(":","-")
|
||||
now = str(datetime.now()).split(" ")[1].split(".")[0].replace(":", "-")
|
||||
id = today + "-" + now
|
||||
return id
|
||||
|
||||
@@ -38,15 +37,10 @@ class Reporting:
|
||||
except Exception as e:
|
||||
print(e)
|
||||
|
||||
def update_report_instance(self):
|
||||
pass
|
||||
|
||||
def cleanup_report_instance(self):
|
||||
pass
|
||||
|
||||
|
||||
def main():
|
||||
Reporting()
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
main()
|
||||
|
||||
Reference in New Issue
Block a user