From 0dbbae7260e3f548e2d89845650b9281ce8144f7 Mon Sep 17 00:00:00 2001 From: Sergey Filimonov Date: Thu, 6 Feb 2025 10:26:54 +0700 Subject: [PATCH] FIX: cloud getVM() --- app.py | 29 +++++++++++++++-------------- cloud.py | 4 ++-- config.py-example | 9 --------- config.yaml-example | 8 ++++++++ readme.md | 8 ++++---- 5 files changed, 29 insertions(+), 29 deletions(-) delete mode 100644 config.py-example create mode 100644 config.yaml-example diff --git a/app.py b/app.py index f5f83b7..69b34a3 100644 --- a/app.py +++ b/app.py @@ -1,16 +1,17 @@ import yaml -#import cloud +import cloud -y = yaml.safe_load(open("config.yaml", "r")) - -print(dict(y[0]).keys()) - -for config in y: - print(config["SITE"]) - # c = cloud.cloud(config.API_TOKEN) - - -# print(c.getVMList()) - - - \ No newline at end of file +# Загрузка конфигурации из файла config.yaml +for config in yaml.safe_load(open("config.yaml", "r")): + # Создание объекта cloud с параметрами из конфигурации + c = cloud.cloud( + config['API_TOKEN'], + config['API_VERSION'], + config['SITE'], + config['TENANT']) + + # Получение списка виртуальных машин + for vm in c.getVMList(): + sep = ";" + # Вывод информации о виртуальных машинах в формате "name;OS;ipAddress;status" + print(sep.join(vm.values())) diff --git a/cloud.py b/cloud.py index 2506002..555e276 100644 --- a/cloud.py +++ b/cloud.py @@ -2,13 +2,13 @@ import requests import xml.dom.minidom class cloud: - def __init__(self, API_KEY: str, API_VERSION: str, SITE: str, TENANT: str): + def __init__(self, API_TOKEN: str, API_VERSION: str, SITE: str, TENANT: str): ''' Запрос списка машин с перечнем атрибутов: Имя, ОС, IP-адрес, Состояние На входе нужен Access Token получить который можно при помощи функции getAccessToken(API Token) ''' - self.API_KEY = API_KEY + self.API_TOKEN = API_TOKEN self.API_VERSION = API_VERSION self.SITE = SITE self.TENANT = TENANT diff --git a/config.py-example b/config.py-example deleted file mode 100644 index eb76667..0000000 --- a/config.py-example +++ /dev/null @@ -1,9 +0,0 @@ -API_TOKEN = "YOU TOKEN" -API_VERSION = "38.1" -SITE = "SITE NAME" -TENANT = "TENANT NAME" - -AD_SERVER = "x.x.x.x" -AD_USERNAME = "UserLogin@domain.name" -AD_PASSWORD = "VeeeeryStrongPassword" -AD_BASE_DN = "OU=Super,OU=Users,dc=consto,dc=com" \ No newline at end of file diff --git a/config.yaml-example b/config.yaml-example new file mode 100644 index 0000000..b57b374 --- /dev/null +++ b/config.yaml-example @@ -0,0 +1,8 @@ +- API_TOKEN: "new_token_value_1" + API_VERSION: "new_version_value_1" + SITE: "new_site_value_1" + TENANT: "new_tenant_value_1" +- API_TOKEN: "new_token_value_2" + API_VERSION: "new_version_value_2" + SITE: "new_site_value_2" + TENANT: "new_tenant_value_2" diff --git a/readme.md b/readme.md index 298ce64..1d5db64 100644 --- a/readme.md +++ b/readme.md @@ -2,10 +2,10 @@ Набор инструментов дял получения данных из cloud.ru ## Что нужно для запуска -1. Установить библиотеку ldap3 +1. Установить библиотеку ldap3 (опционально) 2. Для запуска необхдоимо получить API-токен на cloud.ru (инструкция находится в pdf-файле) -3. Переименовать файл config.py-example в config.py -4. Заполнить содержимое config.py актуальными данными. +3. Переименовать файл config.yaml-example в config.yaml +4. Заполнить содержимое config.yaml актуальными данными. ## Структура @@ -18,5 +18,5 @@ #### ./cloudad.py Описание класса для взаимодействия с ActiveDirectory -#### ./config.py +#### ./config.yaml Конфигурационный файл с описанием глобальных переменных.