Перейти к содержимому

Обновления ​

Предложения обновлений от хаба и запрос на установку.

Операции этой группы с правилом доступа, правилом повтора, параметрами и ответами. Каждый запрос несёт ключ: 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

ПолеТипОбязателенПравила
snapshotobjectдаможет быть null
snapshot.revisionintegerда0–2147483646
snapshot.currentVersionstringдапо шаблону ^(0|[1-9][0-9]{0,5})\.(0|[1-9][0-9]{0,5})\.(0|[1-9][0-9]{0,5})$
snapshot.currentSchemaintegerда0–2147483647
snapshot.automaticbooleanда—
snapshot.hourUTCintegerда0–23
snapshot.pinstringдапо шаблону ^(0|[1-9][0-9]{0,5})\.(0|[1-9][0-9]{0,5})\.(0|[1-9][0-9]{0,5})$; может быть null
snapshot.heartbeatAtstring (date-time)да—
snapshot.checkedAtstring (date-time)даможет быть null
snapshot.latestobjectдаможет быть null
snapshot.latest.versionstringдапо шаблону ^(0|[1-9][0-9]{0,5})\.(0|[1-9][0-9]{0,5})\.(0|[1-9][0-9]{0,5})$
snapshot.latest.schemaintegerда0–2147483647
snapshot.latest.sha256stringдаSHA-256: 64 строчные шестнадцатеричные цифры
snapshot.phasestringдаодно из idle, checking, updating, failed
snapshot.errorstringдаодно из check_failed, update_failed, conflict, maintenance_required, recovery_required, null; может быть null
snapshot.lastAttemptDaystringдаможет быть null
snapshot.lastRequestIdstring (uuid)даможет быть null
snapshot.statisticsbooleanнет—
snapshot.channelstringнетодно из stable, beta
pendingobjectдаодно из null
pending.idstring (uuid)да—
pending.expectedRevisionintegerда0–2147483646
pending.kindstringдаодно из check
pending.versionstringдапо шаблону ^(0|[1-9][0-9]{0,5})\.(0|[1-9][0-9]{0,5})\.(0|[1-9][0-9]{0,5})$
pending.sha256stringдаSHA-256: 64 строчные шестнадцатеричные цифры
pending.automaticbooleanда—
pending.hourUTCintegerда0–23
pending.statisticsbooleanнет—

Ответы: 200, 400, 401, 403, 404, 409, 422, 503, 507

Пример

bash
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)

ПолеТипОбязателенПравила
idstring (uuid)да—
expectedRevisionintegerда0–2147483646
kindstringдаодно из check
versionstringдапо шаблону ^(0|[1-9][0-9]{0,5})\.(0|[1-9][0-9]{0,5})\.(0|[1-9][0-9]{0,5})$
sha256stringдаSHA-256: 64 строчные шестнадцатеричные цифры
automaticbooleanда—
hourUTCintegerда0–23
statisticsbooleanнет—

Ответ 202

ПолеТипОбязателенПравила
idstring (uuid)да—

Ответы: 202, 400, 401, 403, 404, 405, 409, 413, 415, 422, 503, 507

Пример

bash
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"}'

Arkvory · ProAnimaStudio