From 05ee08413308d280df4657585e1c665884c48c52 Mon Sep 17 00:00:00 2001 From: shivam Date: Thu, 11 Feb 2021 02:14:58 +0530 Subject: [PATCH] bridge and nat profile working fine in sdk_set_profile --- libs/cloudsdk/cloudsdk.py | 12 ++-- tests/Nightly_Sanity.py | 12 ++-- tests/UnitTestBase.py | 8 ++- tools/USAGE_EXAMPLES.txt | 3 +- tools/sdk_set_profile.py | 122 ++++++++++++++------------------------ 5 files changed, 67 insertions(+), 90 deletions(-) diff --git a/libs/cloudsdk/cloudsdk.py b/libs/cloudsdk/cloudsdk.py index 01bfb93ff..e56cafaaa 100755 --- a/libs/cloudsdk/cloudsdk.py +++ b/libs/cloudsdk/cloudsdk.py @@ -1269,7 +1269,7 @@ class CreateAPProfiles: 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, mode="bridge"): + def create_ap_profile(self, eq_id=None, fw_model=None, mode="bridge"): self.ssid_prof_config = [] self.ssid_config = [] self.fw_model = fw_model @@ -1313,7 +1313,7 @@ class CreateAPProfiles: 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 + "_" + mode + name = self.command_line_args.testbed + "-" + self.fw_model + "_" + self.mode print("child profiles: ", self.child_profiles) @@ -1325,17 +1325,17 @@ 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_"+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') - self.test_cases["ap_"+mode] = "passed" + self.test_cases["ap_"+self.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_"+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') - 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.bearer) diff --git a/tests/Nightly_Sanity.py b/tests/Nightly_Sanity.py index ef6a1a601..307e5c782 100755 --- a/tests/Nightly_Sanity.py +++ b/tests/Nightly_Sanity.py @@ -57,7 +57,7 @@ class NightlySanity: print("Found equipment ID: %s inventoryId: %s", e['id'], e['inventoryId']) self.equipment_id = str(e['id']) - if self.equipment_id == -1: + if self.equipment_id == "-1": print("ERROR: Could not find equipment-id.") exit() @@ -158,8 +158,8 @@ class NightlySanity: self.reporting.update_json_report(self.report_data) 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) self.ap_object.set_ssid_psk_data(ssid_2g_wpa="%s-SSID-2G-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") 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") print("Profiles Created") @@ -192,6 +192,8 @@ class NightlySanity: time.sleep(10) 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) 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), @@ -213,7 +215,7 @@ class NightlySanity: 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, 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.test_2g(mode="nat") diff --git a/tests/UnitTestBase.py b/tests/UnitTestBase.py index 60162f2a3..b60ae9106 100644 --- a/tests/UnitTestBase.py +++ b/tests/UnitTestBase.py @@ -97,7 +97,7 @@ from lab_ap_info import radius_info 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.add_argument("-b", "--build-id", type=str, @@ -240,7 +240,11 @@ class UnitTestBase: self.build = self.command_line_args.build_id self.logger = logging.getLogger(log_name) - self.hdlr = logging.FileHandler(reporting.report_path + "/test_run.log") + if reporting is not None: + 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.hdlr.setFormatter(self.formatter) self.logger.addHandler(self.hdlr) diff --git a/tools/USAGE_EXAMPLES.txt b/tools/USAGE_EXAMPLES.txt index aed2341fe..235a40538 100644 --- a/tools/USAGE_EXAMPLES.txt +++ b/tools/USAGE_EXAMPLES.txt @@ -24,7 +24,8 @@ The ports are used as: Testbed-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) diff --git a/tools/sdk_set_profile.py b/tools/sdk_set_profile.py index f230b6f08..ca582529a 100755 --- a/tools/sdk_set_profile.py +++ b/tools/sdk_set_profile.py @@ -18,54 +18,47 @@ sys.path.append(f'../tests') from UnitTestBase import * from cloudsdk import CreateAPProfiles - - - def main(): - - - parser = argparse.ArgumentParser(description="SDK Set Profile", add_help=False) 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", required=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', - 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', - help="Should we skip the WPA2 ssid or not") - parser.set_defaults(skip_radius=False) - parser.set_defaults(skip_wpa=False) - parser.set_defaults(skip_wpa2=False) + help="Should we skip the WPA2 ssid or not", default=False) parser.add_argument("--skip-profiles", dest="skip_profiles", action='store_true', - help="Should we skip creating new ssid profiles?") - parser.set_defaults(skip_profiles=False) + help="Should we skip creating new ssid profiles?", default=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.") - 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.") - 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.") - 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.") - 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.") - 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.") - 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.") - 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.") + 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/") - base = UnitTestBase("skd-set-profile", parser, reporting) + base = UnitTestBase("skd-set-profile", parser) command_line_args = base.command_line_args + print(command_line_args.mode) # cmd line takes precedence over env-vars. 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] - 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 today = str(date.today()) try: @@ -170,62 +156,46 @@ def main(): 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) 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: - obj.psk_data["5g"]["wpa2"]["name"] = command_line_args.psk_5g_wpa2 - obj.psk_data["5g"]["wpa2"]["nat"] = command_line_args.psk_5g_wpa2 - obj.psk_data["5g"]["wpa2"]["vlan"] = command_line_args.psk_5g_wpa2 - if command_line_args.psk_5g_wpa: - obj.psk_data["5g"]["wpa"]["name"] = command_line_args.psk_5g_wpa - obj.psk_data["5g"]["wpa"]["nat"] = command_line_args.psk_5g_wpa - obj.psk_data["5g"]["wpa"]["vlan"] = command_line_args.psk_5g_wpa - if command_line_args.psk_2g_wpa2: - obj.psk_data["2g"]["wpa2"]["name"] = command_line_args.psk_2g_wpa2 - obj.psk_data["2g"]["wpa2"]["nat"] = command_line_args.psk_2g_wpa2 - obj.psk_data["2g"]["wpa2"]["vlan"] =command_line_args.psk_2g_wpa2 - if command_line_args.psk_2g_wpa: - obj.psk_data["2g"]["wpa"]["name"] = command_line_args.psk_2g_wpa - obj.psk_data["2g"]["wpa"]["nat"] = command_line_args.psk_2g_wpa - obj.psk_data["2g"]["wpa"]["nat"] = command_line_args.psk_2g_wpa - if command_line_args.ssid_5g_wpa2: - obj.ssid_data["5g"]["wpa2"]["name"] = command_line_args.ssid_5g_wpa2 - 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 + + args = command_line_args + + print("Profiles Created") + + ap_object = CreateAPProfiles(args, cloud=cloud, client=client, fw_model=fw_model) + + # Logic to create AP Profiles (Bridge Mode) + + ap_object.set_ssid_psk_data(ssid_2g_wpa=args.ssid_2g_wpa, + ssid_5g_wpa=args.ssid_5g_wpa, + psk_2g_wpa=args.psk_2g_wpa, + psk_5g_wpa=args.psk_5g_wpa, + ssid_2g_wpa2=args.ssid_2g_wpa2, + ssid_5g_wpa2=args.ssid_5g_wpa2, + psk_2g_wpa2=args.psk_2g_wpa2, + psk_5g_wpa2=args.psk_5g_wpa2) + + print(ap_object) print("creating Profiles") ssid_template = "TipWlan-Cloud-Wifi" + if not args.skip_profiles: + if not args.skip_radius: + # Radius Profile needs to be set here + # obj.create_radius_profile(radius_name, rid, key) + pass + ap_object.create_ssid_profiles(ssid_template=ssid_template, skip_eap=True, mode=args.mode) - - if not command_line_args.skip_profiles: - if not command_line_args.skip_radius: - obj.create_radius_profile(radius_name, rid, key) - obj.create_ssid_profiles(ssid_template=ssid_template, skip_wpa2=command_line_args.skip_wpa2, - skip_wpa=command_line_args.skip_wpa, skip_eap=command_line_args.skip_radius) - - print("Create AP with equipment-id: ", equipment_id) - obj.create_ap_bridge_profile(eq_id=equipment_id, fw_model=fw_model) - obj.validate_changes() + print("Create AP with equipment-id: ", equipment_id) + ap_object.create_ap_profile(eq_id=equipment_id, fw_model=fw_model, mode=args.mode) + ap_object.validate_changes(mode=args.mode) print("Profiles Created") -main() +main()