import config import requests import xml.dom.minidom class cloud: def __init__(self, API_KEY: str): ''' Запрос списка машин с перечнем атрибутов: Имя, ОС, IP-адрес, Состояние На входе нужен Access Token получить который можно при помощи функции getAccessToken(API Token) ''' url = "https://" + config.SITE + "/oauth/tenant/" + config.TENANT + "/token" headers = { "Accept": "application/json", "Content-Type": "application/x-www-form-urlencoded", "Content-Length": "71" } data = "grant_type=refresh_token&refresh_token=" + config.API_TOKEN try: token = requests.post(url=url, headers=headers, data=data).json()['access_token'] self.__access_token = token except: raise SystemError("Ошибка иницализации Access Token.") def getVMList(self) -> list: ''' Запрос списка машин с перечнем атрибутов: Имя, ОС, IP-адрес, Состояние ''' url = "https://" + config.SITE + "/api/query/?type=vm&fields=name,detectedGuestOs,ipAddress,status&filter=isVAppTemplate==false" headers = { "Accept": "application/*;version=" + config.API_VERSION, "Authorization": "Bearer " + self.__access_token } res = requests.get(url=url, headers=headers) dom = xml.dom.minidom.parseString(res.text) return [{ "name": e.attributes['name'].value, "detectedGuestOs": e.attributes['detectedGuestOs'].value, "ipAddress": e.attributes['ipAddress'].value, "status": e.attributes['status'].value} for e in dom.getElementsByTagName("VMRecord")] def getUserList(self) -> list: ''' Запрос списка пользователей На выходе имеем список словарей: [{ "name": "str('name')", "fullName": "str('fullName)", "isEnabled": bool('isEnabled') }, { ..... }] ''' url = "https://" + config.SITE + "/api/query?type=user&fields=name,fullName,isEnabled" headers = { "Accept": "application/*;version=" + config.API_VERSION, "Authorization": "Bearer " + self.__access_token } res = requests.get(url=url, headers=headers) dom = xml.dom.minidom.parseString(res.text) return [{"name": e.attributes['name'].value, "fullName": e.attributes['fullName'].value, "isEnabled": bool(e.attributes['isEnabled'].value)} for e in dom.getElementsByTagName("UserRecord")]