value - значение переменной, по умолчанию - пустая строка
mode - режим доступа к переменной для пользователя, по умолчанию только для чтения. Режимы ("r" - чтение, "w" - запись)
official - переменная для внутреннего использования в программе, по умолчанию флаг выключен. Значения (True - внутреннее использование, False - доступна всем). Если official=True - переменная не выводится на печать.
dynamic - в случае dynamic=True, при каждом вызове переменной будет вызван метод определения (осторожно, возможно рекурсивное зацикливание в случае циклических зависимостей переменных), по умолчанию dynamic=False. Значения (True - постоянный вызов метода определения, False - метод определения вызывается один раз при первом обращении(при последующих обращениях выдается сохраненное значение полученное при первом обращении))
Примеры определения переменных:
class Data:
# имя компьютера
os_net_hostname = {'mode':"w"}
# разрешенные сети
os_net_allow = {value:"192.168.0.0/24"}
# ip на всех интерфейсах
os_net_ip = {}
В этом примере будут по требованию созданы следующие переменные (значения переменных при отсутствии методов заполнения)
os_net_hostname - (значение переменной "", пользователь может изменить значение)
os_net_allow - (значение переменной "192.168.0.0/24", пользователь не может изменить значение)
os_net_ip - (значение переменной "", пользователь не может изменить значение)
Название метода определения значения переменной состоит из 'get_' и имени переменной. Пример метода определения значения для переменной os_net_ip:
class fillVars()
def get_os_net_ip(self):
return "192.168.0.1"
В этом примере значение переменной os_net_ip будет равно 192.168.0.1
Если для переменной нет метода определения значения, значением этой переменной будет значение по умолчанию из параметров переменной.
Файлы хранения параметров и методов определения значений¶
Обычно для каждого пакета утилит Calculate 2.2 используется два файла хранения параметров переменных, и два файла хранения методов определения переменных. Например для пакета calculate-desktop это:
файлы параметров:
cl_vars_desktop.py
cl_vars.py
файлы методов:
cl_fill_desktop.py
cl_fill.py
Где, первый из файлов - файл пакета, второй файл из библиотеки calculate-lib.
Cекция совпадает с названием пакета [client] calculate-client
Значение переменной может храниться в нескольких файлах хранения переменных, в этом случае значением переменной будет значение сохраненной переменной в последнем обработанном файле. То есть приоритет файлов хранения значений переменных обратный их расположению, самый приоритетный файл последний в списке (Наиболее приоритетный файл /var/calculate/remote/calculate.env).
Поиск переменных в файлах хранения значений переменных
Поиск параметров переменных для переменных найденных в файлах хранения значений
Поиск методов определения для переменных найденных в файлах хранения значений
Создание переменных на основании параметров и методов определения значений и присвоение им значений из файлов хранения значений переменных
Поиск параметров переменной. (поиск в текущем пакете, затем в библиотеке)
Поиск метода определения значения переменной (поиск в текущем пакете, затем в библиотеке)
Создание переменной на основании параметров и метода определения значения
Поиск параметров переменной происходит сначала в файле параметров этого пакета, затем в библиотеке (calculate-lib). Такой алгоритм поиска позволяет переопределить параметры для переменной для которой есть параметры в библиотеке (calculate-lib). Поиск метода определения значения переменной происходит по алгоритму поиска параметров переменных. Это позволяет переопределить метод определения значения переменной для которой есть метод в библиотеке (calculate-lib).
os_remote_auth - имя сервера, который используется для авторизации (в случае авторизации на сервере под управлением утилит Calculate2 - DNS имя сервера, в ином случае - local)
os_remote_client - версия программы которой в прошлый раз были применены шаблоны (прим: 2.1.9)
sr_jabber_crypt - шифрование при работе с настроенным сервисом Jabber под управлением утилит Calculate2 (прим: ssl)
sr_jabber_host - DNS имя сервера с настроенным сервисом Jabber под управлением утилит Calculate2 (прим: jabber.domain.ru)
sr_jabber_port - порт для подсоединения к сервису Jabber на сервере под управлением утилит Calculate2 (прим: 5223)
sr_mail_crypt - шифрование при приеме почты с настроенного сервиса Mail, под управлением утилит Calculate2 (none, tls) (прим: tls)
sr_mail_host - DNS имя сервера для приема почты, с настроенным сервисом Mail под управлением утилит Calculate2 (прим: mail.domain.ru)
sr_mail_port - порт для подсоединения к сервису Mail для приема почты, на сервере под управлением утилит Calculate2 (прим: 143)
sr_mail_send_crypt - шифрование при отправке почты на настроенный сервис Mail, под управлением утилит Calculate2
sr_mail_send_host - DNS имя сервера для отправки почты, с настроенным сервисом Mail под управлением утилит Calculate2 (прим: mail.domain.ru)
sr_mail_send_port - порт для подсоединения к сервису Mail для отправки почты, на сервер под управлением утилит Calculate2 (прим: 25)
sr_mail_type - протокол для получения почты (pop, imap) (прим: imap)
sr_proxy_host - DNS имя сервера с настроенным сервисом Proxy под управлением утилит Calculate2 (прим: proxy.domain.ru)
sr_proxy_port - порт для подсоединения к сервису Proxy на сервере под управлением утилит Calculate2 (прим: 8080)
sr_samba_host - DNS имя сервера с настроенным сервисом Samba под управлением утилит Calculate2 (прим: office.domain.ru)
ur_fullname - полное имя пользователя (прим: Иванов Иван Иванович)
ur_group - первичная группа пользователя (прим: it)