mirror of
https://git.isptech.ru/ISPsystem/isp-maintenance.git
synced 2025-10-30 07:03:02 +01:00
Refactoring: move API init statments to settings
This commit is contained in:
@@ -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(
|
||||
|
||||
Reference in New Issue
Block a user