Integration Service Client documentation¶
Пример реализации клиента для Сервиса Интеграции АРМ Орион Икс.
Использование¶
Описание¶
Integration Service Client - это приложение для демонстрации и тестирования возможностей Сервиса Интеграции. Предоставляет примеры работы с методами, поддерживаемыми Сервисом Интеграции, а так же примеры обработки и отображения полученных данных.
Сборка¶
- Установите Python 3.9+, pip
Для Linux так же требуется установка python3-tk
Установите зависимости
python -m pip install deps/requirements.txt
Сборка исполняемого файла (необязательна, т.к. возможен запуск через интерпретатор):
python3 -m PyInstaller --onefile \ --distpath bin_dir \ --workpath build_dir \ --name is_client \ src/main.py \ src/app_context.py \ src/gui.py \ src/requests_data.py \ src/requests_handler.py \ src/settings.py \ src/shared.py
Запуск¶
Запустите исполняемый файл или запустите приложение из директории:
python main.py Для работы с типами и связями требуется наличие файла "data/links_description.json" (путь относительно исполняемого файла/рабочей директории при запуске через интерпретатор)
Введите адрес сервера и нажмите «Старт».
После запуска в директории приложения создается client.log, в который пишутся запросы и ответы сервера.
App Context¶
Контекст приложения, содержащий параметры GUI и состояние клиента.
Описание¶
AppContext объединяет элементы интерфейса и состояние для управления взаимодействием с сервером. Он содержит все необходимые виджеты и параметры для работы GUI.
ClientState хранит состояние клиента для управления авторизацией и WebSocket-соединениями, включая токены, nonce и другие параметры сессии.
Классы¶
- class app_context.AppContext(root: Tk, server: str)¶
Базовые классы:
objectКонтекст приложения, содержащий параметры GUI и состояние клиента.
Этот класс объединяет элементы интерфейса и состояние для управления взаимодействием с сервером.
- root¶
Главное окно приложения.
- Type
tk.Tk
- server_entry¶
Поле ввода адреса сервера.
- Type
tk.Entry
- use_https_var¶
Флаг использования HTTPS.
- Type
tk.BooleanVar
- output_widget¶
Текстовый виджет для вывода сообщений.
- Type
tk.Text
- response_label¶
Виджет для отображения кода ответа сервера.
- Type
tk.Label
- countdown_label¶
Виджет для отображения таймера.
- Type
tk.Label
- stop_button¶
Кнопка для разрыва соединения и сброса состояния.
- Type
tk.Button
- disconnect_button¶
Кнопка для отключения WebSocket.
- Type
tk.Button
- combobox¶
Выпадающий список для выбора запрашиваемого типа.
- Type
ttk.Combobox
- create_combobox¶
Выпадающий список для выбора создаваемого типа.
- Type
ttk.Combobox
- search_combobox¶
Выпадающий список для выбора типа для поиска.
- Type
ttk.Combobox
- computers_combobox¶
Выпадающий список для выбора comp_id из полученных.
- Type
ttk.Combobox
- message_types_combobox¶
Выпадающий список для выбора типа для получения описания сообщений.
- Type
ttk.Combobox
- proto_combobox¶
Выпадающий список для выбора прототипа для получения его типов.
- Type
ttk.Combobox
- events_direction_combobox_combobox¶
Получать события до или после указанного времени.
- Type
ttk.Combobox
- tree¶
Основная таблица для отображения данных.
- Type
ttk.Treeview
- secondary_tree¶
Дополнительная таблица.
- Type
ttk.Treeview
- keep_alive_var¶
Флаг использования heartbeat.
- Type
tk.BooleanVar
- use_pass_phrase_var¶
Флаг использования pass_phrase.
- Type
tk.BooleanVar
- login_entry¶
Поле ввода логина.
- Type
tk.Entry
- password_entry¶
Поле ввода пароля.
- Type
tk.Entry
- pass_phrase_entry¶
Поле ввода pass_phrase.
- Type
tk.Entry
- messages_cache¶
Кэш: {type: {action: description}}.
- Type
Optional[Dict[str, Dict[int, Dict[str, Any]]]]
- commands_info¶
Хранит {«type»: str, «id»: str} для списка команд.
- Type
Optional[Dict[str, str]]
- elements_data¶
Данные поддерживаемых типов (загружаются из JSON).
- Type
Dict[str, Any]
- cert_path¶
Путь к SSL-сертификату.
- Type
str
- cert_path_var¶
Путь к SSL-сертификату.
- Type
str
- cert_label¶
Виджет для отображения имени SSL-сертификата.
- Type
tk.Label
- server¶
Адрес сервера по умолчанию.
- Type
str
- state¶
Объект состояния клиента.
- Type
- __init__(root: Tk, server: str)¶
Инициализирует контекст приложения.
- Параметры
root (tk.Tk) – Главное окно приложения.
server (str) – Адрес сервера по умолчанию.
- get_server() str¶
Возвращает адрес сервера из поля ввода или значение по умолчанию.
- Результат
Адрес сервера (например, „localhost:6659“).
- Тип результата
str
- get_use_https() bool¶
Возвращает состояние флага HTTPS.
- Результат
True, если HTTPS вкл, иначе False.
- Тип результата
bool
- load_certificate()¶
- class app_context.ClientState¶
Базовые классы:
objectХранит состояние клиента для управления авторизацией и WebSocket-соединениями.
- nonce¶
Уникальный идентификатор для авторизации, полученный при старте.
- Type
Optional[str]
- token¶
Токен сессии, используемый для аутентификации запросов, полученный при логине.
- Type
Optional[str]
- events_channel¶
Канал событий для WebSocket-соединения, полученный при логине.
- Type
Optional[str]
- primary_type¶
Основной тип данных, выбранный для запросов в главной таблице.
- Type
Optional[str]
- secondary_type¶
Вторичный тип данных, выбранный для запросов в дополнительной таблице.
- Type
Optional[str]
- connection_timer¶
Идентификатор таймера.
- Type
Optional[int]
- countdown_timer¶
Идентификатор таймера.
- Type
Optional[int]
- active_websockets¶
Список активных WebSocket-соединений.
- Type
List[websocket.WebSocketApp]
- request_id¶
Счетчик для id запросов.
- Type
Optional[int]
- client_private_key¶
Приватный ключ клиента.
- Type
RSAPrivateKey
- client_public_key¶
Публичный ключ клиента.
- Type
RSAPublicKey
- server_public_key¶
Публичный ключ сервера.
- Type
RSAPublicKey
- login_completed¶
Флаг выполнения логина.
- Type
Bool
- __init__()¶
Инициализирует состояние клиента с пустыми значениями.
- clear_nonce() None¶
Очищает значение nonce.
Используется для сброса nonce после истечения времени, заданного в NONCE_LIFETIME.
- next_request_id() int¶
Генерирует следующий уникальный id запроса.
Requests Handler¶
Обработчик запросов к серверу и WebSocket.
Описание¶
Модуль requests_handler содержит всю логику взаимодействия с сервером через HTTP/HTTPS и WebSocket соединения. Он обрабатывает все типы запросов, управляет авторизацией и обновляет интерфейс в соответствии с полученными данными.
Функции¶
- requests_handler.start_request(context: AppContext, user: str) None¶
Выполняет стартовый запрос для получения nonce и ключа сервера.
Выполняется генерация ключей и HMAC-подписи, обработка ответа сервера. nonce и server_public_key сохраняются в context. Перед выполнением запроса предыдущие значения удаляются.
Генерирует RSA-ключи клиента (2048)
Формирует public_key в PEM-формате
Вычисляет HMAC-подпись (если используется pass_phrase)
Отправляет запрос с user, public_key, signature
Обрабатывает ответ: расшифровывает server_public_key_b64 и сохраняет его
- Параметры
context (AppContext) – Контекст приложения.
user (str) – Логин пользователя.
- Исключение
requests.RequestException – При ошибке соединения с сервером.
- requests_handler.login_request(context: AppContext, password: str) None¶
Выполняет запрос авторизации для получения token и events_channel.
Шифрует пароль и кодирует в Base64
Отправляет запрос с nonce и зашифрованным паролем
Сохраняет token и events_channel из ответа
token и events_channel сохраняются в context. После окончания времени жизни token выполняется renew_connection().
- Параметры
context (AppContext) – Контекст приложения. password (str): Пароль пользователя.
- Исключение
requests.RequestException – При ошибке соединения с сервером.
- requests_handler.renew_connection(context: AppContext) None¶
Поддерживает соединение с сервером через периодический heartbeat.
При ответе сервера True соединение продлевается на SESSION_LIFETIME, затем снова вызывается renew_connection().
- Параметры
context (AppContext) – Контекст приложения.
- Исключение
requests.RequestException – При ошибке соединения с сервером.
- requests_handler.send_request(context: AppContext, request_body: Union[Dict[str, Any], List[Dict[str, Any]]], show_elapsed_time: bool = True, table_widget: Optional[Treeview] = None) Union[Response, List[Response]]¶
Отправляет HTTP/HTTPS-запрос к серверу и возвращает ответ. Поддерживает batch.
В Python библиотека requests сама заботится о сборке чанков (chunks) и возвращает полное тело ответа. В зависимости от реализации, может потребоваться собирать чанки.
- Параметры
context (AppContext) – Контекст приложения, содержащий настройки и состояние клиента.
request_body (Dict[str, Any] | List[Dict[str,Any]]) – Тело запроса в формате JSON-RPC. Один запрос (dict) или batch (lists of dicts).
show_elapsed_time (bool, optional) – Выводить ли время выполнения запроса. Defaults to True.
table_widget (ttk.Treeview, optional) – Очищать ли таблицу. Defaults to None.
- Результат
Ответ сервера.
- Тип результата
requests.Response
- Исключение
requests.RequestException – Если произошла ошибка соединения с сервером.
Примеры
>>> send_request(context, {"method": "start", "params": {"user": "root"}}, True)
- requests_handler.process_response(response: Response, context: AppContext, table_widget: Optional[Treeview] = None, return_full_batch: bool = False) Union[Dict[str, Any], List[Dict[str, Any]]]¶
Обрабатывает ответ сервера и обновляет интерфейс.
- Параметры
response (requests.Response) – Ответ сервера на HTTP/HTTPS-запрос.
context (AppContext) – Контекст приложения.
table_widget (ttk.Treeview, optional) – Таблица для отображения данных. Defaults to None.
return_full_batch (bool) – Если True и batch - в возвращаемом списке полные тела ответов.
- Результат
Распарсенные данные ответа или пустой словарь при ошибке.
- Тип результата
Dict[str, Any] | List[Dict[str, Any]]
Примеры
>>> process_response(response, context, context.tree)
Элементы¶
- requests_handler.create_element(context: AppContext, element_type: str, name: str, additional_params: Optional[List[Dict[str, Any]]] = None) None¶
Создает элемент под корневым узлом.
Отправляет запрос на создание элемента с указанным типом и именем непосредственно под корневым.
- Параметры
context (AppContext) – Контекст приложения.
element_type (str) – Тип создаваемого элемента.
name (str) – Имя создаваемого элемента.
additional_params (List[Dict[str, Any]]) – Параметры для доп.таблиц. Default to None.
- Исключение
requests.RequestException – При ошибке соединения с сервером.
- requests_handler.create_child_element(context: AppContext, element_type: str, link_type: str, link_id: str, name: str, additional_params: Optional[List[Dict[str, Any]]] = None) None¶
Создает дочерний элемент.
Отправляет запрос на создание элемента с указанным типом, именем и связью с родительским элементом. Обновляет таблицу, если в ней выведен данный тип.
- Параметры
context (AppContext) – Контекст приложения.
element_type (str) – Тип создаваемого элемента.
link_type (str) – Тип родительского элемента.
link_id (str) – id родительского элемента.
name (str) – Имя создаваемого элемента.
additional_params (List[Dict[str, Any]]) – Параметры для доп.таблиц. Default to None.
- Исключение
requests.RequestException – При ошибке соединения с сервером.
- requests_handler.delete_element_request(context: AppContext, element_id: str, current_type: str) None¶
Удаляет элемент по типу и id.
После получения ответа проверяется, что 200, выводится подтверждение, удаляется строка из таблицы, если загружен данный тип.
- Параметры
context (AppContext) – Контекст приложения.
element_id (str) – Идентификатор элемента.
current_type (str) – Тип элемента.
- Исключение
requests.RequestException – При ошибке соединения с сервером.
- requests_handler.update_element(context: AppContext, element_type: str, element_id: str, name: str, field_name: str, field_value: str) None¶
Обновление значения выбранного поля
- Параметры
context (AppContext) – Контекст приложения.
element_type (str) – Тип элемента.
element_id (str) – id элемента.
name (str) – Имя элемента.
field_name (str) – Ключ изменяемого значения.
field_value (str) – Новое значение.
- Исключение
requests.RequestException – При ошибке соединения с сервером.
- requests_handler.get_all_elements_request(context: AppContext) None¶
Запрашивает все экземпляры выбранного типа.
- Параметры
context (AppContext) – Контекст приложения.
- Исключение
requests.RequestException – При ошибке соединения с сервером.
- requests_handler.get_element_request(context: AppContext, element_id: str, current_type: str, action: Optional[str] = None) None¶
Запрашивает данные элемента по его id.
Выводит данные в дополнительную таблицу.
- Параметры
context (AppContext) – Контекст приложения.
element_id (str) – Идентификатор элемента.
current_type (str) – Тип элемента.
action (str, optional) – Action из сообщения WebSocket. Default to None.
- Исключение
requests.RequestException – При ошибке соединения с сервером.
- requests_handler.get_elements_by_request(context: AppContext, element_id: str, linked_type: str, is_left: bool, current_type: str) None¶
Запрашивает элементы, связанные с выбранным.
Выводит данные в дополнительную таблицу.
- Параметры
context (AppContext) – Контекст приложения.
element_id (str) – Идентификатор исходного элемента.
linked_type (str) – Тип запрашиваемых элементов.
is_left (bool) – Направление связи (left или right).
current_type (str) – Тип исходного элемента.
- Исключение
requests.RequestException – При ошибке соединения с сервером.
- requests_handler.get_elements_by_comp_id_request(context: AppContext) None¶
Запрашивает все экземпляры выбранного типа для указанного comp_id.
Дублирует get_all_requests(), в запросе отличается значение «method» и в «params» добавляется «comp_id».
- Параметры
context (AppContext) – Контекст приложения.
- Исключение
requests.RequestException – При ошибке соединения с сервером.
Связи¶
- requests_handler.create_link(context: AppContext, left_type: str, left_id: str, right_type: str, right_id: str) None¶
Создание связи между двумя элементами.
- Параметры
context (AppContext) – Контекст приложения.
left_type (str) – Тип главного элемента.
left_id (str) – id главного элемента.
right_type (str) – Тип привязываемого элемента.
right_id (str) – id привязываемого элемента.
- Исключение
requests.RequestException – При ошибке соединения с сервером.
- requests_handler.delete_link(context: AppContext, left_type: str, left_id: str, right_type: str, right_id: str) None¶
Удаление связи между двумя элементами.
Практически полностью дублирует create_link().
- Параметры
context (AppContext) – Контекст приложения.
left_type (str) – Тип главного элемента.
left_id (str) – id главного элемента.
right_type (str) – Тип привязываемого элемента.
right_id (str) – id привязываемого элемента.
- Исключение
requests.RequestException – При ошибке соединения с сервером.
Поиск¶
- requests_handler.find_elements_by_name(context: AppContext, element_type: str, name: str, case_insensitive: bool, exact: bool) None¶
Поиск элементов по имени.
- Параметры
context (AppContext) – Контекст приложения.
element_type (str) – Тип элемента, поиск которого выполняется.
name (str) – Значение, по которому выполняется поиск.
case_insensitive (bool) – Учитывать регистр.
exact (bool) – Точное совпадение всего значения поля.
- Исключение
requests.RequestException – При ошибке соединения с сервером.
- requests_handler.find_elements_by_param_s(context: AppContext, element_type: str, param_name: str, param_value: str, additional: bool, case_insensitive: bool, exact: bool) None¶
Поиск элементов по строковому параметру.
Поиск выполняется по строке в указанном параметре для указанного типа.
- Параметры
context (AppContext) – Контекст приложения.
element_type (str) – Тип элемента, поиск которого выполняется.
param_name (str) – Название поля, в котором выполняется поиск.
param_value (str) – Значение, по которому выполняется поиск.
additional (bool) – Выполнять поиск в доп. таблицах.
case_insensitive (bool) – Учитывать регистр.
exact (bool) – Точное совпадение всего значения поля.
- Исключение
requests.RequestException – При ошибке соединения с сервером.
- requests_handler.find_elements_by_param_i(context: AppContext, element_type: str, param_name: str, param_value: str, additional: bool, case_insensitive: bool, exact: bool) None¶
Поиск элементов по числовому параметру.
Поиск выполняется по числу в указанном параметре для указанного типа.
- Параметры
context (AppContext) – Контекст приложения.
element_type (str) – Тип элемента, поиск которого выполняется.
param_name (str) – Название поля, в котором выполняется поиск.
param_value (str) – Значение, по которому выполняется поиск.
additional (bool) – Выполнять поиск в доп. таблицах.
- Исключение
requests.RequestException – При ошибке соединения с сервером.
- requests_handler.find_elements_by_any_param_s(context: AppContext, element_type: str, param_value: str, additional: bool, case_insensitive: bool, exact: bool) None¶
Поиск элементов по строковому параметру в любом поле.
Поиск выполняется по строке во всех параметрах для указанного типа.
- Параметры
context (AppContext) – Контекст приложения.
element_type (str) – Тип элемента, поиск которого выполняется.
param_value (str) – Значение, по которому выполняется поиск.
additional (bool) – Выполнять поиск в доп. таблицах.
case_insensitive (bool) – Учитывать регистр.
exact (bool) – Точное совпадение всего значения поля.
- Исключение
requests.RequestException – При ошибке соединения с сервером.
- requests_handler.find_elements_by_additional_param_s(context: AppContext, element_type: str, additional_param_value: str, case_insensitive: bool, exact: bool) None¶
Поиск элементов по строковому параметру в доп.таблице.
Поиск пользователя по его ключу. Для расширения возможностей нужно будет добавить параметры, т.к. в запросе передается имя доп.таблицы и имя параметра, в котором производится поиск.
- Параметры
context (AppContext) – Контекст приложения.
element_type (str) – Тип элемента, поиск которого выполняется.
additional_param_value (str) – Значение, по которому выполняется поиск.
case_insensitive (bool) – Учитывать регистр.
exact (bool) – Точное совпадение всего значения поля.
- Исключение
requests.RequestException – При ошибке соединения с сервером.
WebSocket¶
- requests_handler.connect_websocket(context: AppContext) None¶
Устанавливает соединение с WebSocket.
- Параметры
context (AppContext) – Контекст приложения.
- requests_handler.disconnect_websocket(context: AppContext) None¶
Закрывает активное WebSocket-соединение.
- Параметры
context (AppContext) – Контекст приложения.
- requests_handler.on_right_click(context: AppContext, event: Event, table_widget: Treeview) None¶
Обрабатывает правый клик по таблице, открывая контекстное меню.
Формирует команды меню на основе типа данных таблицы. Если context.state.primary_type не установлен, пытается взять тип из колонки „device_type“ выделенной строки. Возможные действия: получение элемента, создание/удаление связей, изменение значений, удаление, отправка команд.
- Параметры
context (AppContext) – Контекст приложения.
event (tk.Event) – Событие клика мыши.
table_widget (ttk.Treeview) – Таблица, на которой произошло событие.
Вспомогательные функции¶
- requests_handler.get_computers(context: AppContext) None¶
Получение списка компьютеров.
- Параметры
context (AppContext) – Контекст приложения.
- Исключение
requests.RequestException – При ошибке соединения с сервером.
- requests_handler.get_events(context: AppContext, date_time: str, count: str) None¶
Получение списка событий.
- Параметры
context (AppContext) – Контекст приложения.
date_time (str) – Дата и время поиска событий.
count (str) – Количество событий.
- Исключение
requests.RequestException – При ошибке соединения с сервером.
- requests_handler.get_events_with_desc(context: AppContext, date_time: str, count: str) None¶
Получает список событий и добавляет описания из кэша.
- Параметры
context (AppContext) – Контекст приложения.
date_time (str) – Дата и время поиска событий.
count (str) – Количество событий.
- Исключение
requests.RequestException – При ошибке соединения с сервером.
- requests_handler.get_messages_desc(context: AppContext) None¶
Запрашивает описания сообщений для выбранного типа.
- Параметры
context (AppContext) – Контекст приложения.
- Исключение
requests.RequestException – При ошибке соединения с сервером.
- requests_handler.get_messages_desc_for_cache(context: AppContext, type_name: str) List[Dict[str, Any]]¶
Запрашивает описания сообщений для выбранного типа.
- Параметры
context (AppContext) – Контекст приложения.
type_name (str) – Тип для запроса.
- Исключение
requests.RequestException – При ошибке соединения с сервером.
- Результат
Список описаний сообщений.
- Тип результата
List[Dict[str, Any]]
- requests_handler.get_types_by_tag(context: AppContext) None¶
Запрашивает все типы, входящие в указанный прототип (tag).
- Параметры
context (AppContext) – Контекст приложения.
- Исключение
requests.RequestException – При ошибке соединения с сервером.
- requests_handler.get_types_by_tag_for_cache(context: AppContext) List[str]¶
Получает и возвращает список типов по прототипу orion_device.
- Параметры
context (AppContext) – Контекст приложения.
- Исключение
requests.RequestException – При ошибке соединения с сервером.
- Результат
Список типов.
- Тип результата
List[str]
- requests_handler.get_custom_request(context: AppContext, request_type: str) None¶
Выполняет запрос, определенный в request_type.
- Параметры
context (AppContext) – Контекст приложения.
request_type (str) – Тип запроса (например, „incident_types“).
- Исключение
requests.RequestException – При ошибке соединения с сервером.
- requests_handler.build_messages_cache(context: AppContext) None¶
Создает кэш описаний сообщений для всех типов.
Получает список типов для прототипа orion_device, используя get_types_by_tag_for_cache.
К полученному списку добавляет типы, отображаемые в комбобоксе (возможно, достаточно только их)
Для каждого типа запрашивается описание и сохраняется в context.messages_cache.
- Параметры
context (AppContext) – Контекст приложения.
- requests_handler.create_with_name(context: AppContext, create_func: Callable, *args, **kwargs) None¶
Вспомогательная функция для создания элемента с проверкой имени.
- Параметры
context (AppContext) – Контекст приложения.
create_func (Callable) – Функция создания (create_element или create_child_element)
*args – Позиционные аргументы для create_func.
**kwargs – Именованные аргументы для create_func.
- requests_handler.update_field(context: AppContext, table_widget: Treeview, element_id: str, field_name: str, element_type: str) None¶
Открывает окно для ввода нового значения поля и обновляет строку в таблице.
- Параметры
context (AppContext) – Контекст приложения.
table_widget (ttk.Treeview) – Таблица.
element_id (str) – id выбранного элемента.
field_name (str) – Ключ изменяемого значения.
element_type (str) – Тип элемента.
Requests Data¶
Определения тел запросов в формате JSON-RPC.
Описание¶
Модуль requests_data содержит все предопределенные тела запросов в формате JSON-RPC, используемые в приложении. Каждая константа представляет собой готовое тело запроса, которое может быть отправлено на сервер.
Константы¶
Авторизация¶
- requests_data.START_REQUEST_BODY = {'id': 1, 'jsonrpc': '2.0', 'method': 'start', 'params': {'public_key': '', 'signature': '', 'user': None, 'version': '1.0'}}¶
Тело запроса для авторизации и получения token и events_channel.
- requests_data.LOGIN_REQUEST_BODY = {'id': 2, 'jsonrpc': '2.0', 'method': 'login', 'params': {'encrypted_password_b64': None, 'nonce': None}}¶
Тело запроса для продления сессии (heartbeat).
- requests_data.RENEW_CONNECTION_BODY = {'id': 1, 'jsonrpc': '2.0', 'method': 'renew_connection', 'params': {'security': {'token': None, 'type': 'user'}}}¶
Тело запроса для получения списка компьютеров.
Элементы¶
- requests_data.CREATE_ELEMENT_REQUEST_BODY = {'id': 1, 'jsonrpc': '2.0', 'method': 'create_element', 'params': {'additional_params': [], 'name': 'Главный Отдел Станции Ракетных Катеров', 'params': {}, 'security': {'token': None}, 'type': 'department'}}¶
Тело запроса для создания дочернего элемента.
- requests_data.CREATE_ELEMENT_BY_LINK_REQUEST_BODY = {'id': 1, 'jsonrpc': '2.0', 'method': 'create_element_by_link', 'params': {'additional_params': [{'name': 'keys', 'params': [{'key_code': '1234567', 'locked': 0, 'type_key': 0}]}], 'link_id': '44fd6edf-dd62-443a-87d6-83b59c5ac2ae', 'link_type': 'department', 'name': 'Леди Баг и Супер Кот', 'params': {}, 'security': {'token': None}, 'type': 'user'}}¶
Тело запроса для удаления элемента.
- requests_data.DELETE_ELEMENT_REQUEST_BODY = {'id': 1, 'jsonrpc': '2.0', 'method': 'delete_element', 'params': {'id': '36adda5d-3556-4ac0-a980-8a1bc0d667bc', 'security': {'token': None}, 'type': 'user'}}¶
Тело запроса для изменения данных элемента.
- requests_data.UPDATE_ELEMENT_REQUEST_BODY = {'id': 1, 'jsonrpc': '2.0', 'method': 'update_element', 'params': {'additional_params': [], 'id': '36adda5d-3556-4ac0-a980-8a1bc0d667bc', 'name': 'Леди Баг и Супер Кот 2', 'params': {}, 'security': {'token': None}, 'type': 'user'}}¶
Тело запроса для создания связи между двумя элементами.
- requests_data.GET_ELEMENT_REQUEST_BODY = {'id': 1, 'jsonrpc': '2.0', 'method': 'get_element', 'params': {'id': None, 'security': {'token': None}, 'type': 'user'}}¶
Тело запроса для получения элементов указанного типа, связанных с выбранным.
- requests_data.GET_ELEMENTS_REQUEST_BODY = {'id': None, 'jsonrpc': '2.0', 'method': 'get_elements', 'params': {'security': {'token': None}, 'type': 'user'}}¶
Тело запроса для получения всех элементов указанного типа для указанного comp_id.
- requests_data.GET_COMPUTER_ELEMENTS_REQUEST_BODY = {'id': 1, 'jsonrpc': '2.0', 'method': 'get_computer_elements', 'params': {'comp_id': '8cab1d51-9d91-4336-badc-2a9b97ea8b96', 'security': {'token': None}, 'type': 'user'}}¶
Тело запроса для получения элемента указанного типа по его id.
Связи¶
- requests_data.CREATE_LINK_REQUEST_BODY = {'id': 1, 'jsonrpc': '2.0', 'method': 'create_link', 'params': {'left_id': '99ed6ae1-c157-427c-a7d3-0d87240b415c', 'left_type': 'user', 'right_id': 'ded6255a-ffdc-4fdb-b81a-d1bcf8902be9', 'right_type': 'car', 'security': {'token': None}}}¶
Тело запроса для удаления связи между двумя элементами.
- requests_data.DELETE_LINK_REQUEST_BODY = {'id': 1, 'jsonrpc': '2.0', 'method': 'delete_link', 'params': {'left_id': 'e44bec25-373f-4bb8-ad7a-094eb78b6651', 'left_type': 'user', 'right_id': 'f29f0d64-659c-4942-8249-03d276e0da19', 'right_type': 'car', 'security': {'token': None}}}¶
Тело запроса для поиска элемента по значению (число) указанного параметра для указанного типа.
Поиск¶
- requests_data.FIND_ELEMENTS_BY_NAME_REQUEST_BODY = {'id': 1, 'jsonrpc': '2.0', 'method': 'find_elements_by_name', 'params': {'case_insensitive': True, 'exact': True, 'name': 'Пользователь tt 1 ', 'security': {'token': None}, 'type': 'user'}}¶
Тело запроса для поиска элемента по значению в доп.таблице (по ключу).
- requests_data.FIND_ELEMENTS_BY_PARAM_S_REQUEST_BODY = {'id': 1, 'jsonrpc': '2.0', 'method': 'find_elements_by_param_s', 'params': {'additional': True, 'case_insensitive': False, 'exact': False, 'param_name': 'key_code', 'param_value': '523', 'security': {'token': None}, 'type': 'user'}}¶
Тело запроса для поиска элемента по значению (строка) во всех параметрах для указанного типа.
- requests_data.FIND_ELEMENTS_BY_PARAM_I_REQUEST_BODY = {'id': 1, 'jsonrpc': '2.0', 'method': 'find_elements_by_param_i', 'params': {'additional': True, 'param_name': 'status', 'param_value': 4, 'security': {'token': None}, 'type': 'user'}}¶
Тело запроса для поиска элемента по значению (строка) указанного параметра для указанного типа.
- requests_data.FIND_ELEMENTS_BY_ANY_PARAM_S_REQUEST_BODY = {'id': 1, 'jsonrpc': '2.0', 'method': 'find_elements_by_any_param_s', 'params': {'additional': True, 'case_insensitive': False, 'exact': False, 'param_value': '523', 'security': {'token': None}, 'type': 'user'}}¶
Тело запроса для поиска элемента по его имени.
- requests_data.FIND_ELEMENTS_BY_ADDITIONAL_PARAM_S_REQUEST_BODY = {'id': 1, 'jsonrpc': '2.0', 'method': 'find_elements_by_additional_param_s', 'params': {'additional_param_name': 'key_code', 'additional_param_value': '523', 'additional_params_name': 'keys', 'case_insensitive': True, 'exact': False, 'security': {'token': None}, 'type': 'user'}}¶
Тело запроса для получения списка типов по прототипу.
Вспомогательные¶
- requests_data.GET_COMPUTERS_REQUEST_BODY = {'id': 1, 'jsonrpc': '2.0', 'method': 'get_computers', 'params': {'security': {'token': None}}}¶
Тело запроса для получения всех элементов указанного типа.
- requests_data.GET_EVENTS_REQUEST_BODY = {'id': 4, 'jsonrpc': '2.0', 'method': 'get_events', 'params': {'count': 100500, 'date_time': '2025-05-04T00:00:00.0000000Z', 'direction': '+', 'security': {'token': None}}}¶
Тело запроса для получения списка возможных команд для указанного элемента.
- requests_data.GET_MESSAGES_DESC_REQUEST_BODY = {'id': 1, 'jsonrpc': '2.0', 'method': 'get_messages_desc', 'params': {'security': {'token': None}, 'type': 'user'}}¶
Тело запроса для создания элемента под корневым.
- requests_data.GET_MESSAGE_GROUPS_REQUEST_BODY = {'id': 1, 'jsonrpc': '2.0', 'method': 'get_message_groups', 'params': {'security': {'token': None}}}¶
Тело запроса для получения списка описаний сообщений.
- requests_data.GET_INCIDENT_TYPES_REQUEST_BODY = {'id': 1, 'jsonrpc': '2.0', 'method': 'get_incident_types', 'params': {'security': {'token': None}}}¶
Тело запроса для получения списка групп сообщений.
- requests_data.GET_TYPES_BY_TAG_REQUEST_BODY = {'id': 1, 'jsonrpc': '2.0', 'method': 'types_by_tag', 'params': {'security': {'token': None}, 'tag': 'orion_device'}}¶
Тело запроса для получения списка событий.
Settings¶
Конфигурационные константы приложения.
Описание¶
Модуль settings определяет все конфигурационные константы приложения, включая:
- настройки по умолчанию для подключения к серверу
- временные параметры для управления сессией и авторизацией
- пути к конфигурационным файлам
- параметры повторных попыток и буферизации
Временные параметры¶
- settings.NONCE_LIFETIME = 30¶
int([x]) -> integer int(x, base=10) -> integer
Convert a number or string to an integer, or return 0 if no arguments are given. If x is a number, return x.__int__(). For floating point numbers, this truncates towards zero.
If x is not a number or if base is given, then x must be a string, bytes, or bytearray instance representing an integer literal in the given base. The literal can be preceded by „+“ or „-“ and be surrounded by whitespace. The base defaults to 10. Valid bases are 0 and 2-36. Base 0 means to interpret the base from the string as an integer literal. >>> int(„0b100“, base=0) 4
- settings.TOKEN_LIFETIME = 62¶
int([x]) -> integer int(x, base=10) -> integer
Convert a number or string to an integer, or return 0 if no arguments are given. If x is a number, return x.__int__(). For floating point numbers, this truncates towards zero.
If x is not a number or if base is given, then x must be a string, bytes, or bytearray instance representing an integer literal in the given base. The literal can be preceded by „+“ or „-“ and be surrounded by whitespace. The base defaults to 10. Valid bases are 0 and 2-36. Base 0 means to interpret the base from the string as an integer literal. >>> int(„0b100“, base=0) 4
- settings.SESSION_LIFETIME = 30¶
int([x]) -> integer int(x, base=10) -> integer
Convert a number or string to an integer, or return 0 if no arguments are given. If x is a number, return x.__int__(). For floating point numbers, this truncates towards zero.
If x is not a number or if base is given, then x must be a string, bytes, or bytearray instance representing an integer literal in the given base. The literal can be preceded by „+“ or „-“ and be surrounded by whitespace. The base defaults to 10. Valid bases are 0 and 2-36. Base 0 means to interpret the base from the string as an integer literal. >>> int(„0b100“, base=0) 4
Пути к файлам¶
- settings.POSSIBLE_LINKS_FILE = 'bin/data/links_description.json'¶
str(object=““) -> str str(bytes_or_buffer[, encoding[, errors]]) -> str
Create a new string object from the given object. If encoding or errors is specified, then the object must expose a data buffer that will be decoded using the given encoding and error handler. Otherwise, returns the result of object.__str__() (if defined) or repr(object). encoding defaults to sys.getdefaultencoding(). errors defaults to „strict“.
GUI¶
Графический интерфейс приложения.
Описание¶
Модуль gui содержит всю логику создания и управления графическим интерфейсом приложения. Он создает главное окно, все необходимые виджеты и настраивает их взаимодействие.
Функция create_gui() является точкой входа для создания интерфейса и принимает контекст приложения для доступа к всем необходимым параметрам и состоянию.
Основные функции¶
- gui.create_gui(context: AppContext)¶
Создает графический интерфейс.
- Параметры
context (AppContext) – Контекст приложения.
Main¶
Точка входа в приложение.
Описание¶
Модуль main содержит точку входа в приложение. Функция main() инициализирует контекст приложения, создает графический интерфейс и запускает основной цикл приложения.