forked from ISPsystem/isp-maintenance
		
	Refactoring: move API init statments to settings
This commit is contained in:
		
							parent
							
								
									5405679640
								
							
						
					
					
						commit
						8ad5e2a230
					
				| @ -3,52 +3,25 @@ import json | ||||
| import urllib | ||||
| import requests | ||||
| 
 | ||||
| from mgrctl.settings.api import INPUT_URL, HEADERS | ||||
| from mgrctl.settings.platform import ( | ||||
|     PLATFORM_TYPE, | ||||
|     PLATFORM_VERIFY_SSL, | ||||
|     PLATFORM_DUMMY, | ||||
|     PLATFORM_DUMMY_VM6_API_URL, | ||||
|     PLATFORM_DUMMY_VM6_EMAIL, | ||||
|     PLATFORM_DUMMY_VM6_PASSWORD, | ||||
|     PLATFORM_DUMMY_VM6_TOKEN, | ||||
|     PLATFORM_DUMMY_DCI6_API_URL, | ||||
|     PLATFORM_DUMMY_DCI6_EMAIL, | ||||
|     PLATFORM_DUMMY_DCI6_PASSWORD, | ||||
|     PLATFORM_DUMMY_DCI6_TOKEN | ||||
| from mgrctl.settings.api import ( | ||||
|     API_URL, | ||||
|     API_HEADERS, | ||||
|     API_EMAIL, | ||||
|     API_PASSWORD, | ||||
|     API_VERIFY_SSL | ||||
| ) | ||||
| 
 | ||||
| 
 | ||||
| class BaseAPI(object): | ||||
|     def __init__(self): | ||||
|         """Announces required parameters""" | ||||
|         if PLATFORM_TYPE == 'vm': | ||||
|             if PLATFORM_DUMMY: | ||||
|                 self.API_URL = PLATFORM_DUMMY_VM6_API_URL | ||||
|                 self.AUTH_TYPE = 'Public' | ||||
|                 self.HEADERS = {'x-xsrf-token': PLATFORM_DUMMY_VM6_TOKEN} | ||||
|                 self.EMAIL = PLATFORM_DUMMY_VM6_EMAIL | ||||
|                 self.PASSWORD = PLATFORM_DUMMY_VM6_PASSWORD | ||||
|             else: | ||||
|                 self.API_URL = INPUT_URL | ||||
|                 self.AUTH_TYPE = 'Internal' | ||||
|                 self.HEADERS = HEADERS | ||||
| 
 | ||||
|         if PLATFORM_TYPE == 'dci': | ||||
|             if PLATFORM_DUMMY: | ||||
|                 self.API_URL = PLATFORM_DUMMY_DCI6_API_URL | ||||
|                 self.AUTH_TYPE = 'Public' | ||||
|                 self.HEADERS = {'x-xsrf-token': PLATFORM_DUMMY_DCI6_TOKEN} | ||||
|                 self.EMAIL = PLATFORM_DUMMY_DCI6_EMAIL | ||||
|                 self.PASSWORD = PLATFORM_DUMMY_DCI6_PASSWORD | ||||
|             else: | ||||
|                 self.API_URL = INPUT_URL | ||||
|                 self.AUTH_TYPE = 'Internal' | ||||
|                 self.HEADERS = HEADERS | ||||
| 
 | ||||
|         self.API_URL = API_URL | ||||
|         self.API_HEADERS = API_HEADERS | ||||
|         self.API_EMAIL = API_EMAIL | ||||
|         self.API_PASSWORD = API_PASSWORD | ||||
|         self.API_VERIFY_SSL = API_VERIFY_SSL | ||||
|         self.API_VERSION = 'v3' | ||||
|         self.API_DEFINITION = 'api' | ||||
|         self.VERIFY_SSL = PLATFORM_VERIFY_SSL | ||||
| 
 | ||||
|     def _gen_request_url(self, url): | ||||
|         return f'{self.API_URL}/{self.API_DEFINITION}/{self.API_VERSION}{url}' | ||||
| @ -58,21 +31,21 @@ class BaseAPI(object): | ||||
|         with requests.Session() as session: | ||||
|             try: | ||||
|                 url = self._gen_request_url(url) | ||||
|                 headers = self.HEADERS if not headers else headers | ||||
|                 headers = self.API_HEADERS if not headers else headers | ||||
|                 params_str = urllib.parse.urlencode(data, safe="+'()") | ||||
|                 if method == 'POST': | ||||
|                     api_request = session.post( | ||||
|                         url=url, | ||||
|                         json=data, | ||||
|                         headers=headers, | ||||
|                         verify=self.VERIFY_SSL | ||||
|                         verify=self.API_VERIFY_SSL | ||||
|                     ) | ||||
|                 if method == 'GET': | ||||
|                     url = f'{url}?{params_str}' if params_str else url | ||||
|                     api_request = session.get( | ||||
|                         url=url, | ||||
|                         headers=headers, | ||||
|                         verify=self.VERIFY_SSL | ||||
|                         verify=self.API_VERIFY_SSL | ||||
|                     ) | ||||
|             except Exception as error: | ||||
|                 api_request = { | ||||
| @ -103,8 +76,8 @@ class BaseAuthAPI(BaseAPI): | ||||
|         self.API_DEFINITION = 'auth' | ||||
| 
 | ||||
|     def get_auth_token(self, email=None, password=None) -> dict: | ||||
|         email = self.EMAIL if not email else email | ||||
|         password = self.PASSWORD if not password else password | ||||
|         email = self.API_EMAIL if not email else email | ||||
|         password = self.API_PASSWORD if not password else password | ||||
|         return self.call_api( | ||||
|             url='/public/token', | ||||
|             method='POST', | ||||
| @ -113,7 +86,7 @@ class BaseAuthAPI(BaseAPI): | ||||
| 
 | ||||
|     def get_auth_key(self, token=None, user=None) -> dict: | ||||
|         headers = {} | ||||
|         user = self.EMAIL if not user else user | ||||
|         user = self.API_EMAIL if not user else user | ||||
|         if token: | ||||
|             headers = self.make_auth_header(token) | ||||
|         return self.call_api( | ||||
|  | ||||
| @ -1,20 +1,30 @@ | ||||
| from requests.packages import urllib3 | ||||
| 
 | ||||
| from mgrctl.settings.platform import ( | ||||
|     PLATFORM_TYPE, | ||||
|     PLATFORM_VERIFY_SSL_WARNING | ||||
|     PLATFORM_VERIFY_SSL, | ||||
|     PLATFORM_VERIFY_SSL_WARNING, | ||||
|     PLATFORM_DUMMY, | ||||
|     PLATFORM_DUMMY_API_URL, | ||||
|     PLATFORM_DUMMY_EMAIL, | ||||
|     PLATFORM_DUMMY_PASSWORD, | ||||
|     PLATFORM_DUMMY_TOKEN, | ||||
| ) | ||||
| 
 | ||||
| # Name of nginx container: | ||||
| INPUT_HOSTNAME = 'input' if PLATFORM_TYPE == 'vm' else 'dci_input_1' | ||||
| API_INPUT_HOSTNAME = 'input' if PLATFORM_TYPE == 'vm' else 'dci_input_1' | ||||
| 
 | ||||
| # Port that nginx container is listening: | ||||
| INPUT_PORT = '1500' | ||||
| API_INPUT_PORT = '1500' | ||||
| 
 | ||||
| # Internal API url: | ||||
| INPUT_URL = f'http://{INPUT_HOSTNAME}:{INPUT_PORT}' | ||||
| API_URL = f'http://{API_INPUT_HOSTNAME}:{API_INPUT_PORT}' | ||||
| 
 | ||||
| # Headers for internal auth: | ||||
| HEADERS = {"Internal-Auth": "on", "Accept": "application/json"} | ||||
| API_HEADERS = {"Internal-Auth": "on", "Accept": "application/json"} | ||||
| 
 | ||||
| # Alias for import: | ||||
| API_VERIFY_SSL = PLATFORM_VERIFY_SSL | ||||
| 
 | ||||
| # Suppress warning from urllib3: | ||||
| if not PLATFORM_VERIFY_SSL_WARNING: | ||||
| @ -23,3 +33,10 @@ if not PLATFORM_VERIFY_SSL_WARNING: | ||||
|     urllib3.disable_warnings( | ||||
|         category=urllib3.exceptions.InsecureRequestWarning | ||||
|     ) | ||||
| 
 | ||||
| # Development mode: | ||||
| if PLATFORM_DUMMY: | ||||
|     API_URL = PLATFORM_DUMMY_API_URL | ||||
|     API_HEADERS = {'x-xsrf-token': PLATFORM_DUMMY_TOKEN} | ||||
|     API_EMAIL = PLATFORM_DUMMY_EMAIL | ||||
|     API_PASSWORD = PLATFORM_DUMMY_PASSWORD | ||||
|  | ||||
| @ -22,12 +22,14 @@ PLATFORM_URL = env.str( | ||||
| # Development mode: | ||||
| PLATFORM_DUMMY = env.bool('PLATFORM_DUMMY', False) | ||||
| 
 | ||||
| PLATFORM_DUMMY_VM6_API_URL = env.str('PLATFORM_DUMMY_VM6_API_URL', '') | ||||
| PLATFORM_DUMMY_VM6_EMAIL = env.str('PLATFORM_DUMMY_VM6_EMAIL', '') | ||||
| PLATFORM_DUMMY_VM6_PASSWORD = env.str('PLATFORM_DUMMY_VM6_PASSWORD', '') | ||||
| PLATFORM_DUMMY_VM6_TOKEN = env.str('PLATFORM_DUMMY_VM6_TOKEN', '') | ||||
| 
 | ||||
| PLATFORM_DUMMY_DCI6_API_URL = env.str('PLATFORM_DUMMY_DCI6_API_URL', '') | ||||
| PLATFORM_DUMMY_DCI6_EMAIL = env.str('PLATFORM_DUMMY_DCI6_EMAIL', '') | ||||
| PLATFORM_DUMMY_DCI6_PASSWORD = env.str('PLATFORM_DUMMY_DCI6_PASSWORD', '') | ||||
| PLATFORM_DUMMY_DCI6_TOKEN = env.str('PLATFORM_DUMMY_DCI6_TOKEN', '') | ||||
| if PLATFORM_DUMMY: | ||||
|     if PLATFORM_TYPE == 'vm': | ||||
|         PLATFORM_DUMMY_API_URL = env.str('PLATFORM_DUMMY_VM6_API_URL', '') | ||||
|         PLATFORM_DUMMY_EMAIL = env.str('PLATFORM_DUMMY_VM6_EMAIL', '') | ||||
|         PLATFORM_DUMMY_PASSWORD = env.str('PLATFORM_DUMMY_VM6_PASSWORD', '') | ||||
|         PLATFORM_DUMMY_TOKEN = env.str('PLATFORM_DUMMY_VM6_TOKEN', '') | ||||
|     if PLATFORM_TYPE == 'dci': | ||||
|         PLATFORM_DUMMY_API_URL = env.str('PLATFORM_DUMMY_DCI6_API_URL', '') | ||||
|         PLATFORM_DUMMY_EMAIL = env.str('PLATFORM_DUMMY_DCI6_EMAIL', '') | ||||
|         PLATFORM_DUMMY_PASSWORD = env.str('PLATFORM_DUMMY_DCI6_PASSWORD', '') | ||||
|         PLATFORM_DUMMY_TOKEN = env.str('PLATFORM_DUMMY_DCI6_TOKEN', '') | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user