REST API

Примечание

Для получения доступа к REST API необходим токен. Получение токена описано во вкладке с дополнительной информацией.


Scheduler API

Позволяет осуществлять запуск функций модулей или платформы OpenStack в необходимый период времени или по расписанию.

Информация о модуле

Подробная информация о модуле.

GET
/info/
Получение подробной информации о модуле.
Пример запроса:
curl -X GET -H "X-Auth-Token: $token" -H "Content-Type: application/json" http://controller:10001/info/ | python -m json.tool
Ответ
Параметры ответа:

Name

In

Type

Description

info

body

object

Информация.

version

body

string

Версия.

Пример получения информации о модуле в JSON формате:

{
    "info": {
        "version": "2.0"
    }
}

Запланированные задачи

Действия с запланированными задачами.

GET
/timetable/task_objects/
Получение списка объектов для планирования задач.

Просмотр перечня типов и групп объектов, доступных для планирования задач.

Пример запроса:
curl -X GET -H "X-Auth-Token: $token" -H "Content-Type: application/json" http://controller:10001/timetable/task_objects/ | python -m json.tool
Ответ
Параметры ответа:

Name

In

Type

Description

object_types

body

object

Перечень типов и групп объектов.

hypervisor

body

array

Гипервизор.

instance

body

array

Виртуальная машина.

project

body

array

Проект.

volume

body

array

Диск.

Пример результата в JSON формате:

HTTP 200 OK
Content-Type: application/json

{
    "object_types": {
        "all": [
            "admin",
            "project",
            "identity",
            "trs"
        ],
        "hypervisor": [
            "admin"
        ],
        "instance": [
            "admin",
            "trs",
            "project"
        ],
        "project": [
            "trs",
            "identity"
        ],
        "volume": [
            "admin",
            "project"
        ]
    }
}
GET
/timetable/tasks_list/
Получение списка функций для планирования задач.

Просмотр списка доступных функций для планирования задач.

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

Name

In

Type

Description

type

query

string

Тип объекта для планирования. Возможные значения:

  • hypervisor - гипервизор;

  • instance - виртуальная машина;

  • volume - диск;

  • project - проект.

groups

query

string

Группа типа объекта для планирования. Возможные значения:

  • admin администратор;

  • project - проект;

  • trs - TRS.

locale (Optional)

query

string

Выбор языка.

Пример запроса:
curl -X GET -H "X-Auth-Token: $token" -H "Content-Type: application/json" http://controller:10001/timetable/tasks_list/?type=hypervisor'&'groups=admin | python -m json.tool
Ответ

Пример результата в JSON формате:

HTTP 200 OK
Content-Type: application/json

[
    [
        "node_power_on",
        "Power on"
    ],
    [
        "run_request",
        "Run curl request"
    ],
    [
        "host_shutdown",
        "Shutdown"
    ],
    [
        "node_power_off",
        "Power off"
    ],
    [
        "run_command",
        "Run openstack shell command"
    ]
]
GET
/timetable/tasks_monitoring/
Получение списка выполняющихся задач.

Получение списка выполняющихся задач.

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

Name

In

Type

Description

tenant_id

query

string

Идентификатор проекта.

offset (Optional)

query

string

Номер позиции для получения данных.

limit (Optional)

query

string

Ограничение количества получаемых данных.

all_tenants (Optional)

query

bool

Получение списка задач, запланированных во всех проектах, доступных пользователю, или только в текущем проекте. По умолчанию: False.

sort_key (Optional)

query

string

Наименование поля для сортировки.

locale (Optional)

query

string

Выбор языка.

filter_tenants (Optional)

query

list

Фильтрация задач по идентификаторам проектов.

start_date (Optional)

query

string

Фильтрация задач по дате создания (начальная дата).

end_date (Optional)

query

string

Фильтрация задач по дате создания (конечная дата).

show_deleted (Optional)

query

bool

Вывод удаленных задач. По умолчанию: False.

subject_id (Optional)

query

string

Идентификатор субъекта задачи.

subject_type (Optional)

query

string

Фильтрация по типу субъекта. Возможные значения:

  • hypervisor - гипервизор;

  • instance - виртуальная машина;

  • volume - диск;

  • project - проект.

subject_group (Optional)

query

string

Фильтрация по группе объекта. Возможные значения:

  • admin - администратор;

  • project - проект;

  • trs - TRS;

  • identity - идентификация.

name (Optional)

query

string

Фильтрация по описанию задачи.

status (Optional)

query

bool

Фильтрация по полю enabled периодической задачи.

type (Optional)

query

string

Фильтрация по типу задачи. Возможные значения:

  • разовая;

  • повторяющаяся.

action (Optional)

query

string

Фильтрация по наименованию действия.

Пример запроса:
curl -X GET -H "X-Auth-Token: $token" -H "Content-Type: application/json" http://controller:10001/timetable/tasks_monitoring/?tenant_id=$tenant | python -m json.tool
Ответ
Параметры ответа:

Name

In

Type

Description

rows

body

array

Список задач планировщика.

action

body

string

Наименование действия.

author_name

body

string

Пользователь, создавший задачу.

begin_date

body

string

Дата начала выполнения задачи.

begin_time

body

string

Время начала выполнения задачи.

created_at

body

string

Дата и время создания.

deleted

body

bool

Флаг, указывающий на то, что задача удалена.

deleted_at (Optional)

body

string

Дата и время удаления.

enabled

body

bool

Флаг, показывающий, активна ли задача.

expires

body

string

Время действия запланированной задачи.

timetable_id

query

string

Идентификатор задачи.

last_run_at (Optional)

body

string

Дата и время последнего запуска задачи.

name (Optional)

query

string

Фильтрация по описанию задачи.

repeat

body

string

Флаг, указывающий на то, является ли задача периодической.

schedule

body

string

Дополнительная информация.

subject

body

string

Наименование субъекта задачи.

subject_id

body

string

Идентификатор субъекта задачи.

subject_type

body

string

Тип объекта. Возможные значения:

  • hypervisor - гипервизор;

  • instance - виртуальная машина;

  • volume - диск;

  • project - проект.

subject_group

body

string

Группа объекта. Возможные значения:

  • admin - администратор;

  • project - проект;

  • trs - TRS;

  • identity - идентификация.

tenant_id

body

string

Идентификатор проекта.

timezone

body

string

Часовой пояс.

total_run_count

body

integer

Общее количество запусков задачи.

last_run_result

body

string

Результат последнего запуска.

unique_name

body

string

Наименование действия.

total_count

body

integer

Общее количество задач.

Пример результата в JSON формате:

HTTP 200 OK
Content-Type: application/json

{
    "rows": [
        {
            "action": "Suspend Instance",
            "author_name": "admin",
            "begin_date": "2018-11-23",
            "begin_time": "08:46:00",
            "created_at": "2018-11-23T08:43:04.311732Z",
            "deleted": false,
            "deleted_at": null,
            "enabled": false,
            "expires": "2018-11-23T23:59:59Z",
            "last_run_at": "2018-11-23T08:46:00.010190Z",
            "last_run_result": "success",
            "name": "test1",
            "repeat": false,
            "schedule": "<crontab: 46 8 * 23 11 (m/h/d/dM/MY)>",
            "subject": "test",
            "subject_group": "project",
            "subject_id": "19c06232-ee43-4e75-b4c9-3575bb17d753",
            "subject_type": "instance",
            "tenant_id": "db0d89f6c40c46b4a6879ee1b1a1d907",
            "timetable_id": 3,
            "timezone": "Europe/Moscow",
            "total_run_count": 1,
            "unique_name": "server_suspend"
        }
    ],
    "total_count": 1
}
GET
/timetable/{timetable_id}/
Получение подробной информации о задаче.

Получение подробной информации о задаче.

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

Name

In

Type

Description

timetable_id

query

string

Идентификатор задачи.

Пример запроса:
curl -X GET -H "X-Auth-Token: $token" -H "Content-Type: application/json" http://controller:10001/timetable/5/ | python -m json.tool
Ответ
Параметры ответа:

Name

In

Type

Description

author_name

body

string

Пользователь, создавший задачу.

begin_date

body

string

Дата начала выполнения задачи.

begin_time

body

string

Время начала выполнения задачи.

created_at

body

string

Дата и время создания.

description

body

string

Название задачи.

timetable_id

query

string

Идентификатор задачи.

periodic_task

body

object

Свойства периодичности.

args

body

string

Дополнительные аргументы.

crontab (Optional)

body

string

Настройки cron. Пример: "crontab":{"month_of_year": "5", "day_of_week": "*", "hour": "10", "minute": "35", "day_of_month": "17"}.

day_of_month

body

string

День месяца.

day_of_week

body

string

День недели.

hour

body

string

Час.

minute

body

string

Минута.

month_of_year

body

string

Месяц.

date_changed

body

string

Дата и время изменения.

description

body

string

Название задачи.

enabled

body

bool

Флаг, показывающий, активна ли задача.

exchange (Optional)

body

string

Изменение.

expires

body

string

Время действия запланированной задачи.

task_id

body

integer

Идентификатор запуска периодической задачи.

interval (Optional)

body

string

Интервал периодичности выполнения задачи.

kwargs

body

string

Дополнительные аргументы.

last_run_at (Optional)

body

string

Дата и время последнего запуска задачи.

name (Optional)

query

string

Фильтрация по описанию задачи.

next_run_time

body

string

Дата и время следующего запуска.

queue (Optional)

body

string

Очередь задач.

routing_key (Optional)

body

string

Ключ маршрутизации.

task

body

string

Имя задачи.

total_run_count

body

integer

Общее количество запусков задачи.

repeat

body

string

Флаг, указывающий на то, является ли задача периодической.

run_count_limit (Optional)

body

string

Максимальное количество повторений.

last_run_message

body

string

Сообщение после последнего запуска.

last_run_result

body

string

Результат последнего запуска.

subject

body

string

Наименование субъекта задачи.

subject_id

body

string

Идентификатор субъекта задачи.

subject_type

body

string

Тип объекта. Возможные значения:

  • hypervisor - гипервизор;

  • instance - виртуальная машина;

  • volume - диск;

  • project - проект.

subject_group

body

string

Группа объекта. Возможные значения:

  • admin - администратор;

  • project - проект;

  • trs - TRS;

  • identity - идентификация.

tenant_id

body

string

Идентификатор проекта.

timezone

body

string

Часовой пояс.

unique_name

body

string

Наименование действия.

Пример результата в JSON формате:

HTTP 200 OK
Content-Type: application/json

{
    "author_name": "admin",
    "begin_date": "2018-11-23",
    "begin_time": "08:46:00",
    "created_at": "2018-11-23T08:43:04.311732Z",
    "deleted": false,
    "description": "test1",
    "id": 3,
    "last_run_message": "Instance \"test\" is successfully suspended.",
    "last_run_result": "success",
    "periodic_task": {
        "args": "[]",
        "crontab": {
            "day_of_month": "23",
            "day_of_week": "*",
            "hour": "8",
            "minute": "46",
            "month_of_year": "11"
        },
        "date_changed": "2018-11-23T08:46:01.920124Z",
        "description": "",
        "enabled": false,
        "exchange": null,
        "expires": "2018-11-23T23:59:59Z",
        "id": 4,
        "interval": null,
        "kwargs": "{\"user_domain_name\": \"Default\", \"object_id\": \"19c06232-ee43-4e75-b4c9-3575bb17d753\", \"timetable_id\": \"3\", \"object_name\": \"test\", \"repeatable\": false, \"trust_id\": \"52fc433d2a24400b906bd223001a400a\", \"periodic_task_uuid_name\": \"df205e30-33fd-486a-8be4-bcdb536c18de\", \"user_name\": \"admin\", \"tenant\": \"db0d89f6c40c46b4a6879ee1b1a1d907\"}",
        "last_run_at": "2018-11-23T08:46:00.010190Z",
        "name": "df205e30-33fd-486a-8be4-bcdb536c18de",
        "next_run_time": null,
        "queue": null,
        "routing_key": null,
        "task": "cloud_manager.scheduler_tasks.server_suspend.server_suspend",
        "total_run_count": 1
    },
    "repeat": false,
    "run_count_limit": null,
    "subject": "test",
    "subject_group": "project",
    "subject_id": "19c06232-ee43-4e75-b4c9-3575bb17d753",
    "subject_type": "instance",
    "tenant_id": "db0d89f6c40c46b4a6879ee1b1a1d907",
    "timetable_id": 3,
    "timezone": "Europe/Moscow",
    "unique_name": "server_suspend"
}
POST
/timetable/
Создание задачи.

Создание задачи с определенными параметрами.

Запрос

Name

In

Type

Description

unique_name

body

string

Наименование действия.

subject_type

body

string

Тип объекта. Возможные значения:

  • hypervisor - гипервизор;

  • instance - виртуальная машина;

  • volume - диск;

  • project - проект.

subject_group

body

string

Группа объекта. Возможные значения:

  • admin - администратор;

  • project - проект;

  • trs - TRS;

  • identity - идентификация.

description

body

string

Название задачи.

author_name

body

string

Пользователь, создавший задачу.

expires

body

string

Время действия запланированной задачи.

repeat

body

string

Флаг, указывающий на то, является ли задача периодической.

run_count_limit (Optional)

body

string

Максимальное количество повторений.

crontab (Optional)

body

string

Настройки cron. Пример: "crontab":{"month_of_year": "5", "day_of_week": "*", "hour": "10", "minute": "35", "day_of_month": "17"}.

begin_time

body

string

Время начала выполнения задачи.

timezone

body

string

Часовой пояс.

subject

body

string

Наименование субъекта задачи.

begin_date

body

string

Дата начала выполнения задачи.

subject_id

body

string

Идентификатор субъекта задачи.

key_arguments

body

list

Параметры аутентификации и дополнительные параметры задачи. Пример: "key_arguments":"{\"user_domain_name\": \"default\", \"user_name\": \"admin\", \"user_password\": \"password\", \"tenant\": \"70ac61efe4a64d29a3839a17cd31e393\"}".

tenant_id

body

string

Идентификатор проекта.

object_id

body

string

Идентификатор объекта задачи. Аргумент запроса, необходимый для дополнительной валидации.

object_name

body

string

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

Пример запроса:
curl -X POST -H "X-Auth-Token: $token" -H "Content-Type: application/json" -d '{"unique_name":"server_suspend", "subject_type":"instance", "subject_group":"project", "begin_date":"2018-12-05", "description":"xz", "key_arguments":"{\"user_domain_name\": \"default\", \"user_name\": \"admin\", \"user_password\": \"password\", \"tenant\": \"db0d89f6c40c46b4a6879ee1b1a1d907\"}", "subject_id":"19c06232-ee43-4e75-b4c9-3575bb17d753", "expires":"2018-12-20 23:59:59", "author_name":"admin", "ending":"2018-12-20", "repeat":"False", "crontab": {"day_of_month":"*", "minute":"0", "hour":"0", "day_of_week":"*", "month_of_year":"*" }, "begin_time":"16:30:00", "timezone":"UTC", "tenant_id":"db0d89f6c40c46b4a6879ee1b1a1d907", "author_name":"admin", "subject":"test"}' http://controller:10001/timetable/ | python -m json.tool
Ответ
Параметры ответа:

Name

In

Type

Description

timetable_id

query

string

Идентификатор задачи.

author_name

body

string

Пользователь, создавший задачу.

tenant_id

body

string

Идентификатор проекта.

description

body

string

Название задачи.

unique_name

body

string

Наименование действия.

repeat

body

string

Флаг, указывающий на то, является ли задача периодической.

run_count_limit (Optional)

body

string

Максимальное количество повторений.

subject

body

string

Наименование субъекта задачи.

begin_date

body

string

Дата начала выполнения задачи.

begin_time

body

string

Время начала выполнения задачи.

timezone

body

string

Часовой пояс.

created_at

body

string

Дата и время создания.

periodic_task

body

object

Свойства периодичности.

task_id

body

integer

Идентификатор запуска периодической задачи.

name (Optional)

query

string

Фильтрация по описанию задачи.

task

body

string

Имя задачи.

args

body

string

Дополнительные аргументы.

kwargs

body

string

Дополнительные аргументы.

queue (Optional)

body

string

Очередь задач.

exchange (Optional)

body

string

Изменение.

routing_key (Optional)

body

string

Ключ маршрутизации.

expires

body

string

Время действия запланированной задачи.

enabled

body

bool

Флаг, показывающий, активна ли задача.

last_run_at (Optional)

body

string

Дата и время последнего запуска задачи.

total_run_count

body

integer

Общее количество запусков задачи.

date_changed

body

string

Дата и время изменения.

description

body

string

Название задачи.

crontab (Optional)

body

string

Настройки cron. Пример: "crontab":{"month_of_year": "5", "day_of_week": "*", "hour": "10", "minute": "35", "day_of_month": "17"}.

id

body

integer

Идентификатор.

minute

body

string

Минута.

hour

body

string

Час.

day_of_week

body

string

День недели.

day_of_month

body

string

День месяца.

month_of_year

body

string

Месяц.

subject_type

body

string

Тип объекта. Возможные значения:

  • hypervisor - гипервизор;

  • instance - виртуальная машина;

  • volume - диск;

  • project - проект.

subject_group

body

string

Группа объекта. Возможные значения:

  • admin - администратор;

  • project - проект;

  • trs - TRS;

  • identity - идентификация.

subject_id

body

string

Идентификатор субъекта задачи.

Пример результата в JSON формате:

{
    "author_name": "admin",
    "begin_date": "2018-12-05",
    "begin_time": "16:30:00",
    "created_at": "2018-12-05T13:29:07.186864Z",
    "deleted": false,
    "description": "xz",
    "id": 9,
    "last_run_message": "",
    "last_run_result": "",
    "periodic_task": {
        "args": "[]",
        "crontab": {
            "day_of_month": "*",
            "day_of_week": "*",
            "hour": "0",
            "minute": "0",
            "month_of_year": "*"
        },
        "date_changed": "2018-12-05T13:29:07.223478Z",
        "description": "",
        "enabled": true,
        "exchange": null,
        "expires": "2018-12-20T23:59:59Z",
        "id": 10,
        "interval": null,
        "kwargs": "{\"user_domain_name\": \"default\", \"object_id\": \"19c06232-ee43-4e75-b4c9-3575bb17d753\", \"timetable_id\": \"9\", \"object_name\": \"test\", \"repeatable\": false, \"trust_id\": \"1891d3254e0f4a7e9e527cca3dc26235\", \"periodic_task_uuid_name\": \"d03fe52b-4af5-44a9-8738-b9f30e54d079\", \"user_name\": \"admin\", \"tenant\": \"db0d89f6c40c46b4a6879ee1b1a1d907\"}",
        "last_run_at": null,
        "name": "d03fe52b-4af5-44a9-8738-b9f30e54d079",
        "next_run_time": "2018-12-06T00:00:00.999148",
        "queue": null,
        "routing_key": null,
        "task": "cloud_manager.scheduler_tasks.server_suspend.server_suspend",
        "total_run_count": 0
    },
    "repeat": false,
    "run_count_limit": null,
    "subject": "test",
    "subject_group": "project",
    "subject_id": "19c06232-ee43-4e75-b4c9-3575bb17d753",
    "subject_type": "instance",
    "tenant_id": "db0d89f6c40c46b4a6879ee1b1a1d907",
    "timetable_id": 9,
    "timezone": "UTC",
    "unique_name": "server_suspend"
}
PATCH
/timetable/{timetable_id}/
Обновление задачи.
Запрос
Параметры запроса:

Name

In

Type

Description

offset (Optional)

query

string

Номер позиции для получения данных.

limit (Optional)

query

string

Ограничение количества получаемых данных.

tenant_id

body

string

Идентификатор проекта.

timetable_id

query

string

Идентификатор задачи.

Пример запроса:
Любые из атрибутов задачи, кроме crontab

curl -X PATCH -H "X-Auth-Token: $token" -H "Content-Type: application/json" -d '{"unique_name":"server_suspend", "subject_type":"instance", "subject_group":"project", "begin_date":"2018-12-05", "description":"new description", "key_arguments":"{\"user_domain_name\": \"default\", \"user_name\": \"admin\", \"user_password\": \"password\", \"tenant\": \"db0d89f6c40c46b4a6879ee1b1a1d907\"}", "subject_id":"19c06232-ee43-4e75-b4c9-3575bb17d753", "expires":"2018-12-20 23:59:59", "author_name":"admin", "ending":"2018-12-20", "repeat":"False", "begin_time":"16:30:00", "timezone":"UTC", "tenant_id":"db0d89f6c40c46b4a6879ee1b1a1d907", "author_name":"admin", "subject":"test"}' http://controller:10001/timetable/9/ | python -m json.tool
Ответ
Параметры ответа:

Name

In

Type

Description

author_name

body

string

Пользователь, создавший задачу.

begin_date

body

string

Дата начала выполнения задачи.

begin_time

body

string

Время начала выполнения задачи.

created_at

body

string

Дата и время создания.

description

body

string

Название задачи.

timetable_id

query

string

Идентификатор задачи.

password

body

string

Пароль пользователя, создавшего задачу.

periodic_task

body

object

Свойства периодичности.

crontab (Optional)

body

string

Настройки cron. Пример: "crontab":{"month_of_year": "5", "day_of_week": "*", "hour": "10", "minute": "35", "day_of_month": "17"}.

day_of_month

body

string

День месяца.

day_of_week

body

string

День недели.

hour

body

string

Час.

task_id

body

integer

Идентификатор запуска периодической задачи.

minute

body

string

Минута.

month_of_year

body

string

Месяц.

date_changed

body

string

Дата и время изменения.

description

body

string

Название задачи.

enabled

body

bool

Флаг, показывающий, активна ли задача.

exchange (Optional)

body

string

Изменение.

expires

body

string

Время действия запланированной задачи.

id

body

integer

Идентификатор.

kwargs

body

string

Дополнительные аргументы.

last_run_at (Optional)

body

string

Дата и время последнего запуска задачи.

name (Optional)

query

string

Фильтрация по описанию задачи.

queue (Optional)

body

string

Очередь задач.

routing_key (Optional)

body

string

Ключ маршрутизации.

task

body

string

Имя задачи.

total_run_count

body

integer

Общее количество запусков задачи.

repeat

body

string

Флаг, указывающий на то, является ли задача периодической.

subject

body

string

Наименование субъекта задачи.

subject_id

body

string

Идентификатор субъекта задачи.

subject_type

body

string

Тип объекта. Возможные значения:

  • hypervisor - гипервизор;

  • instance - виртуальная машина;

  • volume - диск;

  • project - проект.

subject_group

body

string

Группа объекта. Возможные значения:

  • admin - администратор;

  • project - проект;

  • trs - TRS;

  • identity - идентификация.

tenant_id

body

string

Идентификатор проекта.

timezone

body

string

Часовой пояс.

unique_name

body

string

Наименование действия.

Пример результата в JSON формате:

HTTP 200 OK
Content-Type: application/json

{
    "author_name": "admin",
    "begin_date": "2018-12-05",
    "begin_time": "16:30:00",
    "created_at": "2018-12-05T13:29:07.186864Z",
    "deleted": false,
    "description": "new description",
    "id": 9,
    "last_run_message": "",
    "last_run_result": "",
    "periodic_task": {
        "args": "[]",
        "crontab": {
            "day_of_month": "*",
            "day_of_week": "*",
            "hour": "0",
            "minute": "0",
            "month_of_year": "*"
        },
        "date_changed": "2018-12-05T13:29:07.223478Z",
        "description": "",
        "enabled": true,
        "exchange": null,
        "expires": "2018-12-20T23:59:59Z",
        "id": 10,
        "interval": null,
        "kwargs": "{\"user_domain_name\": \"default\", \"object_id\": \"19c06232-ee43-4e75-b4c9-3575bb17d753\", \"timetable_id\": \"9\", \"object_name\": \"test\", \"repeatable\": false, \"trust_id\": \"1891d3254e0f4a7e9e527cca3dc26235\", \"periodic_task_uuid_name\": \"d03fe52b-4af5-44a9-8738-b9f30e54d079\", \"user_name\": \"admin\", \"tenant\": \"db0d89f6c40c46b4a6879ee1b1a1d907\"}",
        "last_run_at": null,
        "name": "d03fe52b-4af5-44a9-8738-b9f30e54d079",
        "next_run_time": "2018-12-06T00:00:00.999148",
        "queue": null,
        "routing_key": null,
        "task": "cloud_manager.scheduler_tasks.server_suspend.server_suspend",
        "total_run_count": 0
    },
    "repeat": false,
    "run_count_limit": null,
    "subject": "test",
    "subject_group": "project",
    "subject_id": "19c06232-ee43-4e75-b4c9-3575bb17d753",
    "subject_type": "instance",
    "tenant_id": "db0d89f6c40c46b4a6879ee1b1a1d907",
    "timetable_id": 9,
    "timezone": "UTC",
    "unique_name": "server_suspend"
}
PUT
/timetable/{timetable_id}/
Обновление расписания задачи.
Запрос
Параметры запроса:

Name

In

Type

Description

offset (Optional)

query

string

Номер позиции для получения данных.

limit (Optional)

query

string

Ограничение количества получаемых данных.

tenant_id

body

string

Идентификатор проекта.

timetable_id

query

string

Идентификатор задачи.

Пример запроса:
Любые из атрибутов задачи, включая crontab

curl -X PUT -H "X-Auth-Token: $token" -H "Content-Type: application/json" -d '{"unique_name":"server_suspend", "subject_type":"instance", "subject_group":"project", "begin_date":"2018-12-05", "description":"xz", "key_arguments":"{\"user_domain_name\": \"default\", \"user_name\": \"admin\", \"user_password\": \"password\", \"tenant\": \"db0d89f6c40c46b4a6879ee1b1a1d907\"}", "subject_id":"19c06232-ee43-4e75-b4c9-3575bb17d753", "expires":"2018-12-20 23:59:59", "author_name":"admin", "ending":"2018-12-20", "repeat":"False", "crontab": {"day_of_month":"*", "minute":"0", "hour":"0", "day_of_week":"*", "month_of_year":"*" }, "begin_time":"16:30:00", "timezone":"UTC", "tenant_id":"db0d89f6c40c46b4a6879ee1b1a1d907", "author_name":"admin", "subject":"test"}' http://controller:10001/timetable/ | python -m json.tool
Ответ
Параметры ответа:

Name

In

Type

Description

timetable_id

query

string

Идентификатор задачи.

author_name

body

string

Пользователь, создавший задачу.

tenant_id

body

string

Идентификатор проекта.

description

body

string

Название задачи.

unique_name

body

string

Наименование действия.

repeat

body

string

Флаг, указывающий на то, является ли задача периодической.

run_count_limit (Optional)

body

string

Максимальное количество повторений.

subject

body

string

Наименование субъекта задачи.

begin_date

body

string

Дата начала выполнения задачи.

begin_time

body

string

Время начала выполнения задачи.

timezone

body

string

Часовой пояс.

created_at

body

string

Дата и время создания.

periodic_task

body

object

Свойства периодичности.

task_id

body

integer

Идентификатор запуска периодической задачи.

name (Optional)

query

string

Фильтрация по описанию задачи.

task

body

string

Имя задачи.

args

body

string

Дополнительные аргументы.

kwargs

body

string

Дополнительные аргументы.

queue (Optional)

body

string

Очередь задач.

exchange (Optional)

body

string

Изменение.

routing_key (Optional)

body

string

Ключ маршрутизации.

expires

body

string

Время действия запланированной задачи.

enabled

body

bool

Флаг, показывающий, активна ли задача.

last_run_at (Optional)

body

string

Дата и время последнего запуска задачи.

total_run_count

body

integer

Общее количество запусков задачи.

date_changed

body

string

Дата и время изменения.

description

body

string

Название задачи.

crontab (Optional)

body

string

Настройки cron. Пример: "crontab":{"month_of_year": "5", "day_of_week": "*", "hour": "10", "minute": "35", "day_of_month": "17"}.

id

body

integer

Идентификатор.

minute

body

string

Минута.

hour

body

string

Час.

day_of_week

body

string

День недели.

day_of_month

body

string

День месяца.

month_of_year

body

string

Месяц.

subject_type

body

string

Тип объекта. Возможные значения:

  • hypervisor - гипервизор;

  • instance - виртуальная машина;

  • volume - диск;

  • project - проект.

subject_group

body

string

Группа объекта. Возможные значения:

  • admin - администратор;

  • project - проект;

  • trs - TRS;

  • identity - идентификация.

subject_id

body

string

Идентификатор субъекта задачи.

Пример результата в JSON формате:

HTTP 200 OK
Content-Type: application/json

{
    "author_name": "admin",
    "begin_date": "2018-12-05",
    "begin_time": "16:30:00",
    "created_at": "2018-12-05T13:29:07.186864Z",
    "deleted": false,
    "description": "xz",
    "id": 9,
    "last_run_message": "",
    "last_run_result": "",
    "periodic_task": {
        "args": "[]",
        "crontab": {
            "day_of_month": "*",
            "day_of_week": "*",
            "hour": "0",
            "minute": "0",
            "month_of_year": "*"
        },
        "date_changed": "2018-12-05T13:29:07.223478Z",
        "description": "",
        "enabled": true,
        "exchange": null,
        "expires": "2018-12-20T23:59:59Z",
        "id": 10,
        "interval": null,
        "kwargs": "{\"user_domain_name\": \"default\", \"object_id\": \"19c06232-ee43-4e75-b4c9-3575bb17d753\", \"timetable_id\": \"9\", \"object_name\": \"test\", \"repeatable\": false, \"trust_id\": \"1891d3254e0f4a7e9e527cca3dc26235\", \"periodic_task_uuid_name\": \"d03fe52b-4af5-44a9-8738-b9f30e54d079\", \"user_name\": \"admin\", \"tenant\": \"db0d89f6c40c46b4a6879ee1b1a1d907\"}",
        "last_run_at": null,
        "name": "d03fe52b-4af5-44a9-8738-b9f30e54d079",
        "next_run_time": "2018-12-06T00:00:00.999148",
        "queue": null,
        "routing_key": null,
        "task": "cloud_manager.scheduler_tasks.server_suspend.server_suspend",
        "total_run_count": 0
    },
    "repeat": false,
    "run_count_limit": null,
    "subject": "test",
    "subject_group": "project",
    "subject_id": "19c06232-ee43-4e75-b4c9-3575bb17d753",
    "subject_type": "instance",
    "tenant_id": "db0d89f6c40c46b4a6879ee1b1a1d907",
    "timetable_id": 9,
    "timezone": "UTC",
    "unique_name": "server_suspend"
}
DELETE
/timetable/{timetable_id}/
Удаление задачи.

Удаление конкретной задачи.

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

Name

In

Type

Description

offset (Optional)

query

string

Номер позиции для получения данных.

limit (Optional)

query

string

Ограничение количества получаемых данных.

timetable_id

query

string

Идентификатор задачи.

Пример запроса:
curl -X DELETE -H "X-Auth-Token: $token" -H "Content-Type: application/json" http://controller:10001/timetable/5/

Эта операция не имеет содержания ответа.

DELETE
/timetable/tasks_monitoring/
Удаление задач заданного объекта.
Запрос

Name

In

Type

Description

subject_type

path

string

Тип объекта. Возможные значения:

  • hypervisor - гипервизор;

  • instance - виртуальная машина;

  • volume - диск;

  • project - проект.

subject_id

path

string

Идентификатор объекта задачи. Аргумент запроса, необходимый для дополнительной валидации.

Пример запроса:
curl -X DELETE -H "X-Auth-Token: $token" "http://controller:10001/timetable/tasks_monitoring/?subject_type=instance&subject_id=19c06232-ee43-4e75-b4c9-3575bb17d753"

Эта операция не имеет содержания ответа.

Подробное описание кодов ответа на запросы доступно во вкладке с дополнительной информацией.