mirror of
				https://github.com/Telecominfraproject/wlan-testing.git
				synced 2025-10-31 02:48:11 +00:00 
			
		
		
		
	profile creation done, will need to verify profile push and vif config next
Signed-off-by: shivam <shivam.thakur@candelatech.com>
This commit is contained in:
		| @@ -2,6 +2,8 @@ | ||||
| import swagger_client | ||||
| from testbed_info import SDK_BASE_URLS | ||||
| from testbed_info import LOGIN_CREDENTIALS | ||||
| import datetime | ||||
| import time | ||||
|  | ||||
| """ | ||||
|     Library for setting up the configuration for cloud connectivity | ||||
| @@ -108,8 +110,8 @@ class CloudSDK(ConfigureCloudSDK): | ||||
|                 "maxItemsPerPage": 10 | ||||
|         }""" | ||||
|  | ||||
|         # print(self.equipment_client.get_equipment_by_customer_id(customer_id=customer_id, | ||||
|         #                                                          pagination_context=pagination_context)) | ||||
|         print(self.equipment_client.get_equipment_by_customer_id(customer_id=customer_id, | ||||
|                                                                  pagination_context=pagination_context)) | ||||
|  | ||||
|     def request_ap_reboot(self): | ||||
|         pass | ||||
| @@ -125,6 +127,28 @@ class CloudSDK(ConfigureCloudSDK): | ||||
|         # print(self.profile_client.get_profile_by_id(profile_id=profile_id)) | ||||
|         pass | ||||
|  | ||||
|     """  | ||||
|     default templates are as follows :  | ||||
|         profile_name=   TipWlan-rf/ | ||||
|                         Radius-Profile/ | ||||
|                         TipWlan-2-Radios/ | ||||
|                         TipWlan-3-Radios/ | ||||
|                         TipWlan-Cloud-Wifi/ | ||||
|                         Captive-Portal | ||||
|     """ | ||||
|  | ||||
|     def get_profile_template(self, customer_id=None, profile_name=None): | ||||
|         pagination_context = """{ | ||||
|                         "model_type": "PaginationContext", | ||||
|                         "maxItemsPerPage": 100 | ||||
|                 }""" | ||||
|         profiles = self.profile_client.get_profiles_by_customer_id(customer_id=customer_id, | ||||
|                                                                    pagination_context=pagination_context)._items | ||||
|         for i in profiles: | ||||
|             if i._name == profile_name: | ||||
|                 return i | ||||
|         return None | ||||
|  | ||||
|     def get_profiles_by_customer_id(self, customer_id=None): | ||||
|         pagination_context = """{ | ||||
|                 "model_type": "PaginationContext", | ||||
| @@ -161,36 +185,190 @@ class APUtils: | ||||
|                                                       to control Access Points | ||||
|     """ | ||||
|  | ||||
|     def __init__(self): | ||||
|         pass | ||||
|     def __init__(self, sdk_client=None, testbed=None): | ||||
|         if sdk_client is None: | ||||
|             sdk_client = CloudSDK(testbed=testbed) | ||||
|         self.sdk_client = sdk_client | ||||
|         self.profile_client = swagger_client.ProfileApi(api_client=self.sdk_client.api_client) | ||||
|         self.profile_creation_ids = { | ||||
|             "ssid": [], | ||||
|             "ap": [], | ||||
|             "radius": [], | ||||
|             "rf": [] | ||||
|         } | ||||
|         self.profile_ids = [] | ||||
|  | ||||
|     """ | ||||
|         method call: used to create the rf profile and push set the parameters accordingly and update | ||||
|     """ | ||||
|  | ||||
|     def set_rf_profile(self): | ||||
|         pass | ||||
|     def select_rf_profile(self, profile_data=None): | ||||
|         default_profile = self.sdk_client.get_profile_template(customer_id=2, profile_name="TipWlan-rf") | ||||
|         if profile_data is None: | ||||
|             self.profile_creation_ids['rf'].append(default_profile._id) | ||||
|         # Need to add functionality to add similar Profile and modify accordingly | ||||
|  | ||||
|     """ | ||||
|         method call: used to create a ssid profile with the given parameters | ||||
|     """ | ||||
|  | ||||
|     def set_ssid_profile(self): | ||||
|         pass | ||||
|     def create_open_ssid_profile(self, two4g=True, fiveg=True, profile_data=None): | ||||
|         if profile_data is None: | ||||
|             return False | ||||
|         default_profile = self.sdk_client.get_profile_template(customer_id=2, profile_name="TipWlan-Cloud-Wifi") | ||||
|         default_profile._details['appliedRadios'] = [] | ||||
|         if two4g is True: | ||||
|             default_profile._details['appliedRadios'].append("is2dot4GHz") | ||||
|         if fiveg is True: | ||||
|             default_profile._details['appliedRadios'].append("is5GHzU") | ||||
|             default_profile._details['appliedRadios'].append("is5GHz") | ||||
|             default_profile._details['appliedRadios'].append("is5GHzL") | ||||
|         default_profile._name = profile_data['profile_name'] | ||||
|         default_profile._details['ssid'] = profile_data['ssid_name'] | ||||
|         default_profile._details['forwardMode'] = profile_data['mode'] | ||||
|         default_profile._details['secureMode'] = 'open' | ||||
|         profile_id = self.profile_client.create_profile(body=default_profile)._id | ||||
|         self.profile_creation_ids['ssid'].append(profile_id) | ||||
|         self.profile_ids.append(profile_id) | ||||
|         return True | ||||
|  | ||||
|     def create_wpa_ssid_profile(self, two4g=True, fiveg=True, profile_data=None): | ||||
|         if profile_data is None: | ||||
|             return False | ||||
|         default_profile = self.sdk_client.get_profile_template(customer_id=2, profile_name="TipWlan-Cloud-Wifi") | ||||
|         default_profile._details['appliedRadios'] = [] | ||||
|         if two4g is True: | ||||
|             default_profile._details['appliedRadios'].append("is2dot4GHz") | ||||
|         if fiveg is True: | ||||
|             default_profile._details['appliedRadios'].append("is5GHzU") | ||||
|             default_profile._details['appliedRadios'].append("is5GHz") | ||||
|             default_profile._details['appliedRadios'].append("is5GHzL") | ||||
|         default_profile._name = profile_data['profile_name'] | ||||
|         default_profile._details['ssid'] = profile_data['ssid_name'] | ||||
|         default_profile._details['keyStr'] = profile_data['security_key'] | ||||
|         default_profile._details['forwardMode'] = profile_data['mode'] | ||||
|         default_profile._details['secureMode'] = 'wpaPSK' | ||||
|         profile_id = self.profile_client.create_profile(body=default_profile)._id | ||||
|         self.profile_creation_ids['ssid'].append(profile_id) | ||||
|         self.profile_ids.append(profile_id) | ||||
|         return True | ||||
|  | ||||
|     def create_wpa2_personal_ssid_profile(self, two4g=True, fiveg=True, profile_data=None): | ||||
|         if profile_data is None: | ||||
|             return False | ||||
|         default_profile = self.sdk_client.get_profile_template(customer_id=2, profile_name="TipWlan-Cloud-Wifi") | ||||
|         default_profile._details['appliedRadios'] = [] | ||||
|         if two4g is True: | ||||
|             default_profile._details['appliedRadios'].append("is2dot4GHz") | ||||
|         if fiveg is True: | ||||
|             default_profile._details['appliedRadios'].append("is5GHzU") | ||||
|             default_profile._details['appliedRadios'].append("is5GHz") | ||||
|             default_profile._details['appliedRadios'].append("is5GHzL") | ||||
|         default_profile._name = profile_data['profile_name'] | ||||
|         default_profile._details['ssid'] = profile_data['ssid_name'] | ||||
|         default_profile._details['keyStr'] = profile_data['security_key'] | ||||
|         default_profile._details['forwardMode'] = profile_data['mode'] | ||||
|         default_profile._details['secureMode'] = 'wpa2OnlyPSK' | ||||
|         profile_id = self.profile_client.create_profile(body=default_profile)._id | ||||
|         self.profile_creation_ids['ssid'].append(profile_id) | ||||
|         self.profile_ids.append(profile_id) | ||||
|         return True | ||||
|  | ||||
|     def create_wpa3_personal_ssid_profile(self, two4g=True, fiveg=True, profile_data=None): | ||||
|         if profile_data is None: | ||||
|             return False | ||||
|         default_profile = self.sdk_client.get_profile_template(customer_id=2, profile_name="TipWlan-Cloud-Wifi") | ||||
|         default_profile._details['appliedRadios'] = [] | ||||
|         if two4g is True: | ||||
|             default_profile._details['appliedRadios'].append("is2dot4GHz") | ||||
|         if fiveg is True: | ||||
|             default_profile._details['appliedRadios'].append("is5GHzU") | ||||
|             default_profile._details['appliedRadios'].append("is5GHz") | ||||
|             default_profile._details['appliedRadios'].append("is5GHzL") | ||||
|         default_profile._name = profile_data['profile_name'] | ||||
|         default_profile._details['ssid'] = profile_data['ssid_name'] | ||||
|         default_profile._details['keyStr'] = profile_data['security_key'] | ||||
|         default_profile._details['forwardMode'] = profile_data['mode'] | ||||
|         default_profile._details['secureMode'] = 'wpa3OnlyPSK' | ||||
|         profile_id = self.profile_client.create_profile(body=default_profile)._id | ||||
|         self.profile_creation_ids['ssid'].append(profile_id) | ||||
|         self.profile_ids.append(profile_id) | ||||
|         return True | ||||
|  | ||||
|     def create_wpa2_enterprise_ssid_profile(self, two4g=True, fiveg=True, profile_data=None): | ||||
|         if profile_data is None: | ||||
|             return False | ||||
|         default_profile = self.sdk_client.get_profile_template(customer_id=2, profile_name="TipWlan-Cloud-Wifi") | ||||
|         default_profile._details['appliedRadios'] = [] | ||||
|         if two4g is True: | ||||
|             default_profile._details['appliedRadios'].append("is2dot4GHz") | ||||
|         if fiveg is True: | ||||
|             default_profile._details['appliedRadios'].append("is5GHzU") | ||||
|             default_profile._details['appliedRadios'].append("is5GHz") | ||||
|             default_profile._details['appliedRadios'].append("is5GHzL") | ||||
|         default_profile._name = profile_data['profile_name'] | ||||
|         default_profile._details['ssid'] = profile_data['ssid_name'] | ||||
|         default_profile._details['forwardMode'] = profile_data['mode'] | ||||
|         default_profile._details['secureMode'] = 'wpa2OnlyRadius' | ||||
|         profile_id = self.profile_client.create_profile(body=default_profile)._id | ||||
|         self.profile_creation_ids['ssid'].append(profile_id) | ||||
|         self.profile_ids.append(profile_id) | ||||
|         return True | ||||
|  | ||||
|     def create_wpa3_enterprise_ssid_profile(self, two4g=True, fiveg=True, profile_data=None): | ||||
|         if profile_data is None: | ||||
|             return False | ||||
|         default_profile = self.sdk_client.get_profile_template(customer_id=2, profile_name="TipWlan-Cloud-Wifi") | ||||
|         default_profile._details['appliedRadios'] = [] | ||||
|         if two4g is True: | ||||
|             default_profile._details['appliedRadios'].append("is2dot4GHz") | ||||
|         if fiveg is True: | ||||
|             default_profile._details['appliedRadios'].append("is5GHzU") | ||||
|             default_profile._details['appliedRadios'].append("is5GHz") | ||||
|             default_profile._details['appliedRadios'].append("is5GHzL") | ||||
|         default_profile._name = profile_data['profile_name'] | ||||
|         default_profile._details['ssid'] = profile_data['ssid_name'] | ||||
|         default_profile._details['keyStr'] = profile_data['security_key'] | ||||
|         default_profile._details['forwardMode'] = profile_data['mode'] | ||||
|         default_profile._details['secureMode'] = 'wpa3OnlyRadius' | ||||
|         profile_id = self.profile_client.create_profile(body=default_profile)._id | ||||
|         self.profile_creation_ids['ssid'].append(profile_id) | ||||
|         self.profile_ids.append(profile_id) | ||||
|         return True | ||||
|  | ||||
|     """ | ||||
|         method call: used to create a ap profile that contains the given ssid profiles | ||||
|     """ | ||||
|  | ||||
|     def set_ap_profile(self): | ||||
|     def set_ap_profile(self, profile_data=None): | ||||
|         if profile_data is None: | ||||
|             return False | ||||
|         default_profile = self.sdk_client.get_profile_template(customer_id=2, profile_name="TipWlan-2-Radios") | ||||
|         default_profile._child_profile_ids = [] | ||||
|         for i in self.profile_creation_ids: | ||||
|             for j in self.profile_creation_ids[i]: | ||||
|                 default_profile._child_profile_ids.append(j) | ||||
|         # default_profile._details['radiusServiceId'] = self.profile_creation_ids['radius'] | ||||
|         default_profile._name = profile_data['profile_name'] | ||||
|         print(default_profile) | ||||
|         default_profile = self.profile_client.create_profile(body=default_profile) | ||||
|         self.profile_creation_ids['ap'] = default_profile._id | ||||
|         self.profile_ids.append(default_profile._id) | ||||
|         pass | ||||
|  | ||||
|     """ | ||||
|         method call: used to create a radius profile with the settings given | ||||
|     """ | ||||
|  | ||||
|     def set_radius_profile(self): | ||||
|         pass | ||||
|     def set_radius_profile(self, radius_info=None): | ||||
|         default_profile = self.sdk_client.get_profile_template(customer_id=2, profile_name="Radius-Profile") | ||||
|         default_profile._name = radius_info['name'] | ||||
|         default_profile._details['primaryRadiusAuthServer']['ipAddress'] = radius_info['ip'] | ||||
|         default_profile._details['primaryRadiusAuthServer']['port'] = radius_info['port'] | ||||
|         default_profile._details['primaryRadiusAuthServer']['secret'] = radius_info['secret'] | ||||
|         default_profile = self.profile_client.create_profile(body=default_profile) | ||||
|         self.profile_creation_ids['radius'].append(default_profile._id) | ||||
|         self.profile_ids.append(default_profile._id) | ||||
|  | ||||
|     """ | ||||
|         method call: used to create the ssid and psk data that can be used in creation of ssid profile | ||||
| @@ -203,8 +381,12 @@ class APUtils: | ||||
|         method to push the profile to the given equipment  | ||||
|     """ | ||||
|  | ||||
|     def push_profile(self): | ||||
|         pass | ||||
|     def push_profile(self, equipment_id=None): | ||||
|         default_equipment_data =self.sdk_client.equipment_client.get_equipment_by_id(equipment_id=equipment_id) | ||||
|         default_equipment_data._profile_id = self.profile_creation_ids['ap'] | ||||
|         print(default_equipment_data) | ||||
|         self.sdk_client.equipment_client.update_equipment(body=default_equipment_data) | ||||
|  | ||||
|  | ||||
|     """ | ||||
|         method to verify if the expected ssid's are loaded in the ap vif config | ||||
| @@ -213,11 +395,62 @@ class APUtils: | ||||
|     def monitor_vif_conf(self): | ||||
|         pass | ||||
|  | ||||
|     """ | ||||
|         method to delete a profile by its id | ||||
|     """ | ||||
|  | ||||
|     def delete_profile(self, profile_id=None): | ||||
|         for i in profile_id: | ||||
|             self.profile_client.delete_profile(profile_id=i) | ||||
|         pass | ||||
|  | ||||
|  | ||||
| if __name__ == "__main__": | ||||
|     obj = CloudSDK(testbed="nola-01") | ||||
|     sdk_client = CloudSDK(testbed="nola-ext-03") | ||||
|     # sdk_client.get_equipment_by_customer_id(customer_id=2) | ||||
|     ap_utils = APUtils(sdk_client=sdk_client) | ||||
|     ap_utils.select_rf_profile(profile_data=None) | ||||
|     # radius_info = { | ||||
|     #     "name": "Radius-Profile-" + str(datetime.datetime.now()), | ||||
|     #     "ip": "192.168.200.75", | ||||
|     #     "port": 1812, | ||||
|     #     "secret": "testing123" | ||||
|     # } | ||||
|     # | ||||
|     # ap_utils.set_radius_profile(radius_info=radius_info) | ||||
|     profile_data = { | ||||
|         "profile_name": "test-ssid-open", | ||||
|         "ssid_name": "test_open", | ||||
|         "mode": "BRIDGE" | ||||
|     } | ||||
|  | ||||
|     ap_utils.create_open_ssid_profile(profile_data=profile_data) | ||||
|     profile_data = { | ||||
|         "profile_name": "test-ssid-wpa", | ||||
|         "ssid_name": "test_wpa", | ||||
|         "mode": "BRIDGE", | ||||
|         "security_key": "testing12345" | ||||
|     } | ||||
|  | ||||
|     ap_utils.create_wpa_ssid_profile(profile_data=profile_data) | ||||
|     profile_data = { | ||||
|         "profile_name": "test-ssid-wpa2", | ||||
|         "ssid_name": "test_wpa2", | ||||
|         "mode": "BRIDGE", | ||||
|         "security_key": "testing12345" | ||||
|     } | ||||
|  | ||||
|     ap_utils.create_wpa2_personal_ssid_profile(profile_data=profile_data) | ||||
|     # | ||||
|     # obj.portal_ping() | ||||
|     # obj.get_equipment_by_customer_id(customer_id=2) | ||||
|     # obj.get_profiles_by_customer_id(customer_id=2) | ||||
|     # print(obj.default_profiles) | ||||
|     obj.disconnect_cloudsdk() | ||||
|     profile_data = { | ||||
|         "profile_name": "test-ap-library", | ||||
|     } | ||||
|     ap_utils.set_ap_profile(profile_data=profile_data) | ||||
|     ap_utils.push_profile(equipment_id=1) | ||||
|     sdk_client.disconnect_cloudsdk() | ||||
|     # ap_utils.delete_profile(profile_id=ap_utils.profile_ids) | ||||
|  | ||||
|   | ||||
| @@ -2,7 +2,9 @@ SDK_BASE_URLS = { | ||||
|     "nola-01": "https://wlan-portal-svc-nola-01.cicd.lab.wlan.tip.build", | ||||
|     "nola-02": "https://wlan-portal-svc-nola-02.cicd.lab.wlan.tip.build", | ||||
|     "nola-04": "https://wlan-portal-svc-nola-04.cicd.lab.wlan.tip.build", | ||||
|  | ||||
|     "nola-ext-03": "https://wlan-portal-svc-nola-ext-03.cicd.lab.wlan.tip.build", | ||||
|     "nola-ext-04": "https://wlan-portal-svc-nola-ext-04.cicd.lab.wlan.tip.build", | ||||
|     "nola-ext-05": "https://wlan-portal-svc-nola-ext-05.cicd.lab.wlan.tip.build" | ||||
| } | ||||
|  | ||||
| LOGIN_CREDENTIALS = { | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 shivam
					shivam