bridge and nat profile working fine in sdk_set_profile

This commit is contained in:
shivam
2021-02-11 02:14:58 +05:30
parent 3b9606d83e
commit 05ee084133
5 changed files with 67 additions and 90 deletions

View File

@@ -1269,7 +1269,7 @@ class CreateAPProfiles:
msg='2.4G WPA SSID create failed - ' + mode + ' mode') msg='2.4G WPA SSID create failed - ' + mode + ' mode')
self.test_cases["ssid_2g_wpa_" + mode] = "failed" self.test_cases["ssid_2g_wpa_" + mode] = "failed"
def create_ap_bridge_profile(self, eq_id=None, fw_model=None, mode="bridge"): def create_ap_profile(self, eq_id=None, fw_model=None, mode="bridge"):
self.ssid_prof_config = [] self.ssid_prof_config = []
self.ssid_config = [] self.ssid_config = []
self.fw_model = fw_model self.fw_model = fw_model
@@ -1313,7 +1313,7 @@ class CreateAPProfiles:
self.child_profiles.append(self.radius_profile) self.child_profiles.append(self.radius_profile)
# EAP ssid profiles would have been added above if they existed. # EAP ssid profiles would have been added above if they existed.
name = self.command_line_args.testbed + "-" + self.fw_model + "_" + mode name = self.command_line_args.testbed + "-" + self.fw_model + "_" + self.mode
print("child profiles: ", self.child_profiles) print("child profiles: ", self.child_profiles)
@@ -1325,17 +1325,17 @@ class CreateAPProfiles:
self.child_profiles) self.child_profiles)
self.test_profile_id = self.create_ap_profile self.test_profile_id = self.create_ap_profile
print("Test Profile ID for Test is:", self.test_profile_id) print("Test Profile ID for Test is:", self.test_profile_id)
self.client.update_testrail(case_id=self.test_cases["ap_"+mode], run_id=self.rid, status_id=1, self.client.update_testrail(case_id=self.test_cases["ap_"+ self.mode], run_id=self.rid, status_id=1,
msg='AP profile for ' + mode + ' tests created successfully') msg='AP profile for ' + mode + ' tests created successfully')
self.test_cases["ap_"+mode] = "passed" self.test_cases["ap_"+self.mode] = "passed"
except Exception as ex: except Exception as ex:
print(ex) print(ex)
logging.error(logging.traceback.format_exc()) logging.error(logging.traceback.format_exc())
create_ap_profile = "error" create_ap_profile = "error"
print("Error creating AP profile for bridge tests. Will use existing AP profile") print("Error creating AP profile for bridge tests. Will use existing AP profile")
self.client.update_testrail(case_id=self.test_cases["ap_"+mode], run_id=self.rid, status_id=5, self.client.update_testrail(case_id=self.test_cases["ap_"+self.mode], run_id=self.rid, status_id=5,
msg='AP profile for ' + mode + ' tests could not be created using API') msg='AP profile for ' + mode + ' tests could not be created using API')
self.test_cases["ap_"+mode] = "failed" self.test_cases["ap_"+self.mode] = "failed"
self.ap_profile = self.cloud.set_ap_profile(eq_id, self.test_profile_id, self.command_line_args.sdk_base_url, self.ap_profile = self.cloud.set_ap_profile(eq_id, self.test_profile_id, self.command_line_args.sdk_base_url,
self.bearer) self.bearer)

View File

@@ -57,7 +57,7 @@ class NightlySanity:
print("Found equipment ID: %s inventoryId: %s", print("Found equipment ID: %s inventoryId: %s",
e['id'], e['inventoryId']) e['id'], e['inventoryId'])
self.equipment_id = str(e['id']) self.equipment_id = str(e['id'])
if self.equipment_id == -1: if self.equipment_id == "-1":
print("ERROR: Could not find equipment-id.") print("ERROR: Could not find equipment-id.")
exit() exit()
@@ -158,8 +158,8 @@ class NightlySanity:
self.reporting.update_json_report(self.report_data) self.reporting.update_json_report(self.report_data)
self.ap_object = CreateAPProfiles(self.args, cloud=self.cloud, client=self.client, fw_model=self.model) self.ap_object = CreateAPProfiles(self.args, cloud=self.cloud, client=self.client, fw_model=self.model)
#
# Logic to create AP Profiles (Bridge Mode) # # Logic to create AP Profiles (Bridge Mode)
nprefix = "%s-Nightly"%(self.args.testbed) nprefix = "%s-Nightly"%(self.args.testbed)
self.ap_object.set_ssid_psk_data(ssid_2g_wpa="%s-SSID-2G-WPA"%(nprefix), self.ap_object.set_ssid_psk_data(ssid_2g_wpa="%s-SSID-2G-WPA"%(nprefix),
ssid_5g_wpa="%s-SSID-5G-WPA"%(nprefix), ssid_5g_wpa="%s-SSID-5G-WPA"%(nprefix),
@@ -181,7 +181,7 @@ class NightlySanity:
self.ap_object.create_ssid_profiles(ssid_template=ssid_template, skip_eap=True, mode="bridge") self.ap_object.create_ssid_profiles(ssid_template=ssid_template, skip_eap=True, mode="bridge")
print("Create AP with equipment-id: ", self.equipment_id) 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, mode="bridge") self.ap_object.create_ap_profile(eq_id=self.equipment_id, fw_model=self.model, mode="bridge")
self.ap_object.validate_changes(mode="bridge") self.ap_object.validate_changes(mode="bridge")
print("Profiles Created") print("Profiles Created")
@@ -192,6 +192,8 @@ class NightlySanity:
time.sleep(10) time.sleep(10)
self.reporting.update_json_report(report_data=self.ap_object.report_data) self.reporting.update_json_report(report_data=self.ap_object.report_data)
self.ap_object = CreateAPProfiles(self.args, cloud=self.cloud, client=self.client, fw_model=self.model)
# Logic to create AP Profiles (NAT Mode) # Logic to create AP Profiles (NAT Mode)
self.ap_object.set_ssid_psk_data(ssid_2g_wpa="%s-SSID-NAT-2G-WPA"%(nprefix), self.ap_object.set_ssid_psk_data(ssid_2g_wpa="%s-SSID-NAT-2G-WPA"%(nprefix),
ssid_5g_wpa="%s-SSID-NAT-5G-WPA"%(nprefix), ssid_5g_wpa="%s-SSID-NAT-5G-WPA"%(nprefix),
@@ -213,7 +215,7 @@ class NightlySanity:
self.ap_object.create_ssid_profiles(ssid_template=ssid_template, skip_eap=True, mode="nat") self.ap_object.create_ssid_profiles(ssid_template=ssid_template, skip_eap=True, mode="nat")
print("Create AP with equipment-id: ", self.equipment_id) 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, mode="nat") self.ap_object.create_ap_profile(eq_id=self.equipment_id, fw_model=self.model, mode="nat")
self.ap_object.validate_changes(mode="nat") self.ap_object.validate_changes(mode="nat")
self.test_2g(mode="nat") self.test_2g(mode="nat")

View File

@@ -97,7 +97,7 @@ from lab_ap_info import radius_info
class UnitTestBase: class UnitTestBase:
def __init__(self, log_name, args, reporting): def __init__(self, log_name, args, reporting=None):
self.parser = argparse.ArgumentParser(description="Sanity Testing on Firmware Build", parents=[args]) self.parser = argparse.ArgumentParser(description="Sanity Testing on Firmware Build", parents=[args])
self.parser.add_argument("-b", "--build-id", type=str, self.parser.add_argument("-b", "--build-id", type=str,
@@ -240,7 +240,11 @@ class UnitTestBase:
self.build = self.command_line_args.build_id self.build = self.command_line_args.build_id
self.logger = logging.getLogger(log_name) self.logger = logging.getLogger(log_name)
if reporting is not None:
self.hdlr = logging.FileHandler(reporting.report_path + "/test_run.log") self.hdlr = logging.FileHandler(reporting.report_path + "/test_run.log")
else:
self.hdlr = logging.FileHandler("logs/test_run.log")
self.formatter = logging.Formatter('%(asctime)s %(levelname)s %(message)s') self.formatter = logging.Formatter('%(asctime)s %(levelname)s %(message)s')
self.hdlr.setFormatter(self.formatter) self.hdlr.setFormatter(self.formatter)
self.logger.addHandler(self.hdlr) self.logger.addHandler(self.hdlr)

View File

@@ -24,7 +24,8 @@ The ports are used as:
Testbed-01 Testbed-01
# Set AP profile on NOLA-01 # Set AP profile on NOLA-01
./sdk_set_profile.py --testrail-user-id NONE --model ecw5410 --ap-jumphost-address localhost --ap-jumphost-port 8803 --ap-jumphost-password pumpkin77 --ap-jumphost-tty /dev/ttyAP1 --lanforge-ip-address localhost --lanforge-port-number 8802 --default-ap-profile TipWlan-2-Radios --sdk-base-url https://wlan-portal-svc.cicd.lab.wlan.tip.build --skip-radius --skip-wpa --verbose --testbed "NOLA-01" --ssid-5g-wpa2 Default-SSID-5gl --psk-5g-wpa2 12345678 --ssid-2g-wpa2 Default-SSID-2g --psk-2g-wpa2 12345678 ./sdk_set_profile.py --testrail-user-id NONE --model ecw5410 --ap-jumphost-address localhost --ap-jumphost-port 8803 --ap-jumphost-password pumpkin77 --ap-jumphost-tty /dev/ttyAP1 --lanforge-ip-address localhost --lanforge-port-number 8802 --default-ap-profile TipWlan-2-Radios --sdk-base-url https://wlan-portal-svc.cicd.lab.wlan.tip.build --skip-radius --skip-wpa --verbose --testbed "NOLA-01" --ssid-5g-wpa2 Default-SSID-5gl --psk-5g-wpa2 12345678 --ssid-2g-wpa2 Default-SSID-2g --psk-2g-wpa2 12345678 --mode bridge
Testbed-09 (perfecto) Testbed-09 (perfecto)

View File

@@ -18,54 +18,47 @@ sys.path.append(f'../tests')
from UnitTestBase import * from UnitTestBase import *
from cloudsdk import CreateAPProfiles from cloudsdk import CreateAPProfiles
def main(): def main():
parser = argparse.ArgumentParser(description="SDK Set Profile", add_help=False) parser = argparse.ArgumentParser(description="SDK Set Profile", add_help=False)
parser.add_argument("--default-ap-profile", type=str, parser.add_argument("--default-ap-profile", type=str,
help="Default AP profile to use as basis for creating new ones, typically: TipWlan-2-Radios or TipWlan-3-Radios", help="Default AP profile to use as basis for creating new ones, typically: TipWlan-2-Radios or TipWlan-3-Radios",
required=True) required=True)
parser.add_argument("--skip-radius", dest="skip_radius", action='store_true', parser.add_argument("--skip-radius", dest="skip_radius", action='store_true',
help="Should we skip the RADIUS configs or not") help="Should we skip the RADIUS configs or not", default=False)
parser.add_argument("--skip-wpa", dest="skip_wpa", action='store_true', parser.add_argument("--skip-wpa", dest="skip_wpa", action='store_true',
help="Should we skip the WPA ssid or not") help="Should we skip the WPA ssid or not", default=False)
parser.add_argument("--skip-wpa2", dest="skip_wpa2", action='store_true', parser.add_argument("--skip-wpa2", dest="skip_wpa2", action='store_true',
help="Should we skip the WPA2 ssid or not") help="Should we skip the WPA2 ssid or not", default=False)
parser.set_defaults(skip_radius=False)
parser.set_defaults(skip_wpa=False)
parser.set_defaults(skip_wpa2=False)
parser.add_argument("--skip-profiles", dest="skip_profiles", action='store_true', parser.add_argument("--skip-profiles", dest="skip_profiles", action='store_true',
help="Should we skip creating new ssid profiles?") help="Should we skip creating new ssid profiles?", default=False)
parser.set_defaults(skip_profiles=False)
parser.add_argument("--psk-5g-wpa2", type=str, parser.add_argument("--psk-5g-wpa2", dest="psk_5g_wpa2", type=str,
help="Allow over-riding the 5g-wpa2 PSK value.") help="Allow over-riding the 5g-wpa2 PSK value.")
parser.add_argument("--psk-5g-wpa", type=str, parser.add_argument("--psk-5g-wpa", dest="psk_5g_wpa", type=str,
help="Allow over-riding the 5g-wpa PSK value.") help="Allow over-riding the 5g-wpa PSK value.")
parser.add_argument("--psk-2g-wpa2", type=str, parser.add_argument("--psk-2g-wpa2", dest="psk_2g_wpa2", type=str,
help="Allow over-riding the 2g-wpa2 PSK value.") help="Allow over-riding the 2g-wpa2 PSK value.")
parser.add_argument("--psk-2g-wpa", type=str, parser.add_argument("--psk-2g-wpa", dest="psk_2g_wpa", type=str,
help="Allow over-riding the 2g-wpa PSK value.") help="Allow over-riding the 2g-wpa PSK value.")
parser.add_argument("--ssid-5g-wpa2", type=str, parser.add_argument("--ssid-5g-wpa2", dest="ssid_5g_wpa2", type=str,
help="Allow over-riding the 5g-wpa2 SSID value.") help="Allow over-riding the 5g-wpa2 SSID value.")
parser.add_argument("--ssid-5g-wpa", type=str, parser.add_argument("--ssid-5g-wpa", dest="ssid_5g_wpa", type=str,
help="Allow over-riding the 5g-wpa SSID value.") help="Allow over-riding the 5g-wpa SSID value.")
parser.add_argument("--ssid-2g-wpa2", type=str, parser.add_argument("--ssid-2g-wpa2", dest="ssid_2g_wpa2", type=str,
help="Allow over-riding the 2g-wpa2 SSID value.") help="Allow over-riding the 2g-wpa2 SSID value.")
parser.add_argument("--ssid-2g-wpa", type=str, parser.add_argument("--ssid-2g-wpa", dest="ssid_2g_wpa", type=str,
help="Allow over-riding the 2g-wpa SSID value.") help="Allow over-riding the 2g-wpa SSID value.")
parser.add_argument("--mode", dest="mode", choices=['bridge', 'nat', 'vlan'], type=str,
help="Mode of AP Profile [bridge/nat/vlan]")
reporting = Reporting(reports_root=os.getcwd() + "/reports/") reporting = Reporting(reports_root=os.getcwd() + "/reports/")
base = UnitTestBase("skd-set-profile", parser, reporting) base = UnitTestBase("skd-set-profile", parser)
command_line_args = base.command_line_args command_line_args = base.command_line_args
print(command_line_args.mode)
# cmd line takes precedence over env-vars. # 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')
@@ -150,15 +143,8 @@ def main():
fw_model = ap_cli_fw.partition("-")[0] fw_model = ap_cli_fw.partition("-")[0]
print('Current Active AP FW from CLI:', ap_cli_fw) print('Current Active AP FW from CLI:', ap_cli_fw)
###Find Latest FW for Current AP Model and Get FW ID
############################################################################
#################### Create Report #########################################
############################################################################
# Create Report Folder for Today # Create Report Folder for Today
today = str(date.today()) today = str(date.today())
try: try:
@@ -170,62 +156,46 @@ def main():
logger.info('Report data can be found here: ' + report_path + today) logger.info('Report data can be found here: ' + report_path + today)
##Get Bearer Token to make sure its valid (long tests can require re-auth) # Get Bearer Token to make sure its valid (long tests can require re-auth)
bearer = cloud.get_bearer(cloudSDK_url, cloud_type) bearer = cloud.get_bearer(cloudSDK_url, cloud_type)
radius_name = "%s-%s-%s" % (command_line_args.testbed, fw_model, "Radius") radius_name = "%s-%s-%s" % (command_line_args.testbed, fw_model, "Radius")
obj = CreateAPProfiles(command_line_args, cloud=cloud, client=client, fw_model=fw_model)
# Allow cmd-line to override
if command_line_args.psk_5g_wpa2: args = command_line_args
obj.psk_data["5g"]["wpa2"]["name"] = command_line_args.psk_5g_wpa2
obj.psk_data["5g"]["wpa2"]["nat"] = command_line_args.psk_5g_wpa2 print("Profiles Created")
obj.psk_data["5g"]["wpa2"]["vlan"] = command_line_args.psk_5g_wpa2
if command_line_args.psk_5g_wpa: ap_object = CreateAPProfiles(args, cloud=cloud, client=client, fw_model=fw_model)
obj.psk_data["5g"]["wpa"]["name"] = command_line_args.psk_5g_wpa
obj.psk_data["5g"]["wpa"]["nat"] = command_line_args.psk_5g_wpa # Logic to create AP Profiles (Bridge Mode)
obj.psk_data["5g"]["wpa"]["vlan"] = command_line_args.psk_5g_wpa
if command_line_args.psk_2g_wpa2: ap_object.set_ssid_psk_data(ssid_2g_wpa=args.ssid_2g_wpa,
obj.psk_data["2g"]["wpa2"]["name"] = command_line_args.psk_2g_wpa2 ssid_5g_wpa=args.ssid_5g_wpa,
obj.psk_data["2g"]["wpa2"]["nat"] = command_line_args.psk_2g_wpa2 psk_2g_wpa=args.psk_2g_wpa,
obj.psk_data["2g"]["wpa2"]["vlan"] =command_line_args.psk_2g_wpa2 psk_5g_wpa=args.psk_5g_wpa,
if command_line_args.psk_2g_wpa: ssid_2g_wpa2=args.ssid_2g_wpa2,
obj.psk_data["2g"]["wpa"]["name"] = command_line_args.psk_2g_wpa ssid_5g_wpa2=args.ssid_5g_wpa2,
obj.psk_data["2g"]["wpa"]["nat"] = command_line_args.psk_2g_wpa psk_2g_wpa2=args.psk_2g_wpa2,
obj.psk_data["2g"]["wpa"]["nat"] = command_line_args.psk_2g_wpa psk_5g_wpa2=args.psk_5g_wpa2)
if command_line_args.ssid_5g_wpa2:
obj.ssid_data["5g"]["wpa2"]["name"] = command_line_args.ssid_5g_wpa2 print(ap_object)
obj.ssid_data["5g"]["wpa2"]["nat"] = command_line_args.ssid_5g_wpa2
obj.ssid_data["5g"]["wpa2"]["vlan"] = command_line_args.ssid_5g_wpa2
if command_line_args.ssid_5g_wpa:
obj.ssid_data["5g"]["wpa"]["name"] = command_line_args.ssid_5g_wpa
obj.ssid_data["5g"]["wpa"]["nat"] = command_line_args.ssid_5g_wpa
obj.ssid_data["5g"]["wpa"]["vlan"] = command_line_args.ssid_5g_wpa
if command_line_args.ssid_2g_wpa2:
obj.ssid_data["2g"]["wpa2"]["name"] = command_line_args.ssid_2g_wpa2
obj.ssid_data["2g"]["wpa2"]["nat"] = command_line_args.ssid_2g_wpa2
obj.ssid_data["2g"]["wpa2"]["vlan"] = command_line_args.ssid_2g_wpa2
if command_line_args.ssid_2g_wpa:
obj.ssid_data["2g"]["wpa"]["name"] = command_line_args.ssid_2g_wpa
obj.ssid_data["2g"]["wpa"]["nat"] = command_line_args.ssid_2g_wpa
obj.ssid_data["2g"]["wpa"]["vlan"] = command_line_args.ssid_2g_wpa
print("creating Profiles") print("creating Profiles")
ssid_template = "TipWlan-Cloud-Wifi" ssid_template = "TipWlan-Cloud-Wifi"
if not args.skip_profiles:
if not args.skip_radius:
if not command_line_args.skip_profiles: # Radius Profile needs to be set here
if not command_line_args.skip_radius: # obj.create_radius_profile(radius_name, rid, key)
obj.create_radius_profile(radius_name, rid, key) pass
obj.create_ssid_profiles(ssid_template=ssid_template, skip_wpa2=command_line_args.skip_wpa2, ap_object.create_ssid_profiles(ssid_template=ssid_template, skip_eap=True, mode=args.mode)
skip_wpa=command_line_args.skip_wpa, skip_eap=command_line_args.skip_radius)
print("Create AP with equipment-id: ", equipment_id) print("Create AP with equipment-id: ", equipment_id)
obj.create_ap_bridge_profile(eq_id=equipment_id, fw_model=fw_model) ap_object.create_ap_profile(eq_id=equipment_id, fw_model=fw_model, mode=args.mode)
obj.validate_changes() ap_object.validate_changes(mode=args.mode)
print("Profiles Created") print("Profiles Created")
main()
main()