Обновления
Предложения обновлений от хаба и запрос на установку.
Операции этой группы с правилом доступа, правилом повтора, параметрами и ответами. Каждый запрос несёт ключ: Authorization: Bearer <ключ> (см. «Аутентификация»).
Операции
Получить состояние обновлений
GET HEAD /api/v1/system/updates
Доступ: Администратор · Повтор: Можно повторять (чтение)
Возвращает то, что сообщает служба обновления хоста: установленную версию и схему, новейший найденный релиз (latest), настройки автоматического обновления (automatic, hourUTC, pin, channel, statistics), фазу phase (idle, checking, updating, failed), последнюю ошибку error, последний heartbeat и revision настроек, а также запрос, всё ещё ожидающий в почтовом ящике службы обновления (pending). snapshot равен null, если служба обновления хоста не подключена. Передайте revision в requestSystemUpdate.
Ответ 200
| Поле | Тип | Обязателен | Правила |
|---|---|---|---|
snapshot | object | да | может быть null |
snapshot.revision | integer | да | 0–2147483646 |
snapshot.currentVersion | string | да | по шаблону ^(0|[1-9][0-9]{0,5})\.(0|[1-9][0-9]{0,5})\.(0|[1-9][0-9]{0,5})$ |
snapshot.currentSchema | integer | да | 0–2147483647 |
snapshot.automatic | boolean | да | — |
snapshot.hourUTC | integer | да | 0–23 |
snapshot.pin | string | да | по шаблону ^(0|[1-9][0-9]{0,5})\.(0|[1-9][0-9]{0,5})\.(0|[1-9][0-9]{0,5})$; может быть null |
snapshot.heartbeatAt | string (date-time) | да | — |
snapshot.checkedAt | string (date-time) | да | может быть null |
snapshot.latest | object | да | может быть null |
snapshot.latest.version | string | да | по шаблону ^(0|[1-9][0-9]{0,5})\.(0|[1-9][0-9]{0,5})\.(0|[1-9][0-9]{0,5})$ |
snapshot.latest.schema | integer | да | 0–2147483647 |
snapshot.latest.sha256 | string | да | SHA-256: 64 строчные шестнадцатеричные цифры |
snapshot.phase | string | да | одно из idle, checking, updating, failed |
snapshot.error | string | да | одно из check_failed, update_failed, conflict, maintenance_required, recovery_required, null; может быть null |
snapshot.lastAttemptDay | string | да | может быть null |
snapshot.lastRequestId | string (uuid) | да | может быть null |
snapshot.statistics | boolean | нет | — |
snapshot.channel | string | нет | одно из stable, beta |
pending | object | да | одно из null |
pending.id | string (uuid) | да | — |
pending.expectedRevision | integer | да | 0–2147483646 |
pending.kind | string | да | одно из check |
pending.version | string | да | по шаблону ^(0|[1-9][0-9]{0,5})\.(0|[1-9][0-9]{0,5})\.(0|[1-9][0-9]{0,5})$ |
pending.sha256 | string | да | SHA-256: 64 строчные шестнадцатеричные цифры |
pending.automatic | boolean | да | — |
pending.hourUTC | integer | да | 0–23 |
pending.statistics | boolean | нет | — |
Ответы: 200, 400, 401, 403, 404, 409, 422, 503, 507
Пример
curl -X GET "$ARKVORY_URL/api/v1/system/updates" \
-H "Authorization: Bearer $ARKVORY_TOKEN"Запросить действие обновления
POST /api/v1/system/updates/requests
Доступ: Администратор · Повтор: Повтор только с ожидаемой ревизией (compare-and-swap)
Передаёт службе обновления хоста, которая и выполняет работу, одну команду: kind check ищет новый релиз, apply устанавливает указанную стабильную version с её sha256, configure задаёт automatic, hourUTC и при необходимости statistics. Передайте новый UUID как id и expectedRevision из getSystemUpdates; 409 revision_mismatch означает, что настройки изменились, 503 busy — что запрос уже ожидает или служба занята, 503 unavailable — что служба обновления не подключена или её heartbeat старше пяти минут. Ответ 202 означает лишь, что запрос поставлен в очередь: следите за phase, currentVersion и lastRequestId в getSystemUpdates. Повтор с тем же id и телом безопасен.
Тело запроса (application/json)
| Поле | Тип | Обязателен | Правила |
|---|---|---|---|
id | string (uuid) | да | — |
expectedRevision | integer | да | 0–2147483646 |
kind | string | да | одно из check |
version | string | да | по шаблону ^(0|[1-9][0-9]{0,5})\.(0|[1-9][0-9]{0,5})\.(0|[1-9][0-9]{0,5})$ |
sha256 | string | да | SHA-256: 64 строчные шестнадцатеричные цифры |
automatic | boolean | да | — |
hourUTC | integer | да | 0–23 |
statistics | boolean | нет | — |
Ответ 202
| Поле | Тип | Обязателен | Правила |
|---|---|---|---|
id | string (uuid) | да | — |
Ответы: 202, 400, 401, 403, 404, 405, 409, 413, 415, 422, 503, 507
Пример
curl -X POST "$ARKVORY_URL/api/v1/system/updates/requests" \
-H "Authorization: Bearer $ARKVORY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"id":"00000000-0000-4000-8000-000000000000","expectedRevision":0,"kind":"check"}'