Получить ID операции

Центральный Пульт не имеет специальных запросов на получение списка Операций Объекта, Класса или Связи. Вместо этого, список операций хранится в поле operations соответствующих моделей. Это поле можно получить несколькими способами.

Чтобы получить операции определённой сущности, можно использовать запрос Получить сущность по ID. Этот запрос возвращает данные сущности, которые включают в себя список операций в объекте operations. Вы можете использовать поле operations.id для запросов, которые требуют ID операции (например для выполнения операции с помощью запроса Выполнить операцию сущности).

Также, вы можете получить операции всех сущностей в системе. Используйте запросы Получить все объекты и Получить все связи для получения всех соответствующих сущностей в системе.

Запросы на получение всех сущностей не возвращают поле operations по умолчанию. Для получения этого поля, вам нужно указать его в параметре запроса fields:

GET /node/api/objects?fields=operations

Вы можете использовать запрос Получить все корневые сущности, чтобы получить объекты и связи, которые являются дочерними к корневому объекту. Этот запрос возвращает поле operations без дополнительных параметров запроса.

Аналогично работает получение списка операций Классов. Получить операцию одного класса можно с помощью запроса Получить класс по ID, а операции всех классов – запросом Получить все классы. Список операций также хранится в поле operations.

Пример

Этот пример показывает как выполнить все запросы в определённой сущности.

Пример использует запрос Получить сущность по ID для получения указанной сущности, а затем использует запрос Выполнить операцию сущности для выполнения всех операций.

import requests
import json

# Настройки запроса
login = <...>
password = <...>
saymon_hostname = <...>
entity_id = <...>

# Получить указанную сущность
get_entity_url = "http://" + saymon_hostname + "/node/api/entities/" + entity_id
response = requests.request("GET", get_entity_url, auth=(login, password))

# Получить список всех операций полученной сущности
entity = json.loads(response.text)
ops = entity['operations']

# Выполнить все операции полученной сущности
for operation in ops:
    op_id = operation['id']
    execute_op_url = "http://" + saymon_hostname + "/node/api/entities/" + entity_id + "/operations/" + op_id + "/execute"

    response = requests.request("POST", execute_op_url, auth=(login, password))
    print("Executed operation with id " + op_id + "; created job ID: " + response.text)