Тревоги

Запросы на создание, чтение, обновление, удаление тревог.

async alerts_api_crud_svc.create(payload: dict, error_handler: ErrorHandler = Depends(ErrorHandler))

Метод добавляет тревогу в модель.

Запрос:

http

POST /v1/alerts/ HTTP/1.1
Host: localhost
Accept: application/json
Content-Type: application/json
Authorization: No Auth

{
    "parentId": "id of parent node",
    "attributes": {
        "cn": "alert_name",
        "description": "test_alert",
        "prsJsonConfigString": "{\"value\": 10, \"high\": true, \"autoAck\": true}",
        "prsActive": true,
        "prsIndex": 1
    }
}

response

HTTP/1.1 200 OK
Content-Type: application/json
Access-Control-Allow-Origin: *
Content-type: application/json

{
    "id": "3e21924a-cc59-103e-9312-555c1a8a1358"
}
  • parentId (str) - id тега, к которому привязывается тревога. Обязательный атрибут.

  • attributes (dict) - параметры создаваемой тревоги. Необязательное поле.

    • cn (str) - имя тревоги. Необязательный атрибут.

    • description (str) - описание тревоги. Необязательный атрибут.

    • prsJsonConfigString (str) - Строка содержит, в случае необходимости, конфигурацию тревоги. При создании тревоги атрибут prsJsonConfigString имеет формат:

      {
          # "тревожное" значение тега
          "value": 0,
          # способ сравнения значения тега с "тревожным":
          # если high = true, то тревога возникает, если значение тега >= value
          # иначе - значение тега < value
          "high": True,
          # флаг автоквитирования
          "autoAck": True
      }
      

      Обязательный аттрибут.

    • prsActive (bool) - Определяет, активна ли тревога. По умолчанию = true. Необязательный атрибут.

    • prsIndex (int) - Если у узлов одного уровня иерархии проставлены индексы, то перед отдачей клиенту списка экземпляров они сортируются в соответствии с их индексами. Необязательный атрибут.

Ответ:

  • id (str) - идентификатор созданной тревоги.

  • detail (str) - пояснение к возникшей ошибке.

async alerts_api_crud_svc.delete(payload: NodeDelete, error_handler: ErrorHandler = Depends(ErrorHandler))

Метод удаляет тревогу из иерархии.

Запрос:

http

DELETE /v1/alerts/ HTTP/1.1
Host: localhost
Accept: application/json
Content-Type: application/json
Authorization: No Auth

{
    "id": "id of an alert to delete"
}

response

HTTP/1.1 200 OK
Content-Type: application/json
Access-Control-Allow-Origin: *
Content-type: application/json

    null
  • id (str | [str]) - id или список id тревоги (тревог) для удаления. Обязательное поле.

Ответ:

  • null - в случае успешного запроса

  • detail (list) - список с пояснениями к ошибке

async alerts_api_crud_svc.read(q: str | None = None, payload: AlertRead | None = None, error_handler: ErrorHandler = Depends(ErrorHandler))

Метод ищет тревоги в модели и возвращает запрошенные по ним данные.

Пример запроса в формате JSON.

http

GET /v1/alerts/ HTTP/1.1
Host: localhost
Accept: application/json
Content-Type: application/json
Authorization: No Auth

{
    "base": "id of a node where to search",
    "id": "id of an alert to find",
    "deref": true,
    "scope":1,
    "filter": {
        "cn": ["alert*"],
        "prsActive": [true],
        "prsIndex": [1, 2, 3]
    },
    "attributes": ["cn"]
}

response

HTTP/1.1 200 OK
Content-Type: application/json
Access-Control-Allow-Origin: *
Content-type: application/json

{
    "data": [
        {
            "id": "fd58e5c0-cc61-103e-9325-555c1a8a1358",
            "attributes": {
                "cn": [
                    "alert1"
                ],
                "prsActive": [
                    "TRUE"
                ],
                "prsDefault": [
                    "TRUE"
                ],
                "objectClass": [
                    "prsAlert"
                ]
            }
        }
    ]
}

Пример query запроса.

http

GET /v1/alerts/?q={"base":"id_of_a_node_where_to_search","id":"id_of_an_alert_to_find","deref":true,"scope":1} HTTP/1.1
Host: localhost
Accept: application/json
Content-Type: application/json
Authorization: No Auth

response

HTTP/1.1 200 OK
Content-Type: application/json
Access-Control-Allow-Origin: *
Content-type: application/json

{
    "data": [
        {
            "id": "fd58e5c0-cc61-103e-9325-555c1a8a1358",
            "attributes": {
                "cn": [
                    "alert1"
                ],
                "prsActive": [
                    "TRUE"
                ],
                "prsDefault": [
                    "TRUE"
                ],
                "objectClass": [
                    "prsAlert"
                ]
            }
        }
    ]
}

Параметры запроса:

  • id (str | list(str)) - идентификатор тревоги (тревог), данные о которой(-ых) хотим прочитать. Необязательный атрибут.

  • base (str) - Базовый узел для поиска. В случае отсутствия поиск проводится по всей модели. Необязательный атрибут.

  • deref (bool) - Флаг разыменования ссылок. По умолчанию true. Необязательный атрибут.

  • scope (int) - Масштаб поиска. По умолчанию 1.

    0 - получение данных по указанному в ключе base узлу

    1 - поиск среди непосредственных потомков указанного в base узла

    2 - поиск по всему дереву, начиная с указанного в base узла.

    Необязательный атрибут.

  • filter (dict) - Словарь из атрибутов и их значений, из которых формируется фильтр для поиска. В случае отсутствия возвращаются все тревоги, найденные под узлом, указанным в атрибуте base. При формировании фильтра значения ключей объединяются логической операцией ИЛИ, а сами ключи - операцией И. При указании значения строкового атрибута можно использовать символ маски *. Пример фильтра:

    {
        "cn": ["alert*"],
        "prsActive": [true],
        "prsIndex": [1, 2, 3]
    } 
    

    Данный фильтр вернёт тревоги, у которых:

    (Имя начинается с alert) И (флаг активности = true) И (индекс равен 1 ИЛИ 2 ИЛИ 3).

  • attributes (list[str]) - Список атрибутов, значения которых необходимо вернуть в ответе. По умолчанию - [“*“], то есть все атрибуты (кроме системных).

Ответ:

  • data (list) - найденные тревоги с их параметрами.

  • detail (str) - пояснение к возникшей ошибке.

async alerts_api_crud_svc.update(payload: dict, error_handler: ErrorHandler = Depends(ErrorHandler))

Метод обновляет тревогу в модели.

Запрос:

http

PUT /v1/alerts/ HTTP/1.1
Host: localhost
Accept: application/json
Content-Type: application/json
Authorization: No Auth

{
    "id":"id of an alert to update",
    "attributes": {
        "cn": "alert name",
        "description": "description of the alert",
        "prsJsonConfigString": "node configuration",
        "prsActive": true,
        "prsDefault": false,
        "prsIndex": 12345
    }
}

response

HTTP/1.1 200 OK
Content-Type: application/json
Access-Control-Allow-Origin: *
Content-type: application/json

{
    {}
}
  • id (str) - id тревоги для обновления. Обязательное поле.

  • attributes (dict) - словарь с параметрами для обновления. Соответствует атрибутам из команды create.

Ответ:

  • {} - пустой словарь в случае успешного запроса.

  • detail (list) - список с пояснениями к ошибке.