PyONE - это имплементация XML-RPC  в Python, которую можно использовать в ПК СВ "Брест".

Предварительная настройка окружения

Для работы с PyONE предварительно необходимо:

  1. Установить пакеты Python и PIP:
    sudo apt install python3
    sudo apt install python3-pip

  2. Установить инструменты и библиотеки:
    sudo python3 -m pip install dict2xml
    sudo python3 -m pip install lxml
    sudo python3 -m pip install pyone

Создание скрипта в PyONE

Создание файла для скрипта PyONE

Создать файл с именем будущего скрипта и расширением .py.

Структура скрипта

В примерах будут рассмотрены скрипты со следующей структурой:

БлокОписание
import pyone
Подключение пакетов PyONE

auth_url = "http://<идентификатор_сервера>:2633/RPC2"

auth_user = "<имя_пользователя>"

auth_token="<токен>"

В переменной auth_url задается IP-адрес, порт и протокол сервера для подключения

В переменной auth_user задается имя пользователя для подключения

В переменной auth_token задается токен, назначенный пользователю.

Получить токен можно двумя способами:

client = pyone.OneServer(auth_url, session=auth_user + ':' + auth_token)

Задает данные подключения во время создания нового экземпляра класса OneServer, результат передается в переменную client

<дополнительные_переменные> 

В некоторых случаях необходимо задавать дополнительные переменные для выполнения метода XML-RPC.

Например в методе one.datastore.allocate необходимо задать переменную с шаблоном, в котором будут указаны параметры создаваемого хранилища:

template = """ NAME=ds_sys2

               TM_MAD=fs_lvm

               TYPE=system_ds

           """
CODE


 

result = <xml-rpc_метод_для_исполнения><дополнительные_параметры_IN>)

В одном скрипте можно указать несколько значений для одного запроса.

При заданной переменной client в методе необходимо заменять one на client.

Информация о возможных дополнительных параметрах ввода (IN) описана в методах XML-RPC

 print(<параметры_для_вывода>)Для вывода нужной информации, после выполнения скрипта, следует использовать функцию print

Выполнение

Для выполнения скрипта необходимо воспользоваться командой:

sudo python3 <имя_скрипта>.py