Довідник API адміністрування
У цьому розділі представлено список адміністративних методів API в алфавітному порядку.
Audit Trail
API журналу аудиту використовується для взаємодії з таблицями журналу аудиту в мікросервісі сховища. У Fledge інформація журналу зберігається в системному журналі, де розміщений мікросервіс. Натомість вся необхідна для аудиту інформація зберігається всередині Fledge, і вона доступна через Admin REST API. API дозволяє читати, а також додавати додаткові журнали аудиту, так, ніби такі журнали створюються всередині системи.
audit
Методи audit реалізують журнал аудиту, вони використовуються для створення та отримання журналів аудиту.
Набір можливих джерел аудиту включає в себе
| Джерело | Опис |
|---|---|
| PURGE | Data Purging Process |
| LOGGN | Logging Process |
| STRMN | Streaming Process |
| SYPRG | System Purge |
| START | System Startup |
| FSTOP | System Shutdown |
| CONCH | Configuration Change |
| CONAD | Configuration Addition |
| SCHCH | Schedule Change |
| SCHAD | Schedule Addition |
| SRVRG | Service Registered |
| SRVUN | Service Unregistered |
| SRVFL | Service Fail |
| NHCOM | North Process Complete |
| NHDWN | North Destination Unavailable |
| NHAVL | North Destination Available |
| UPEXC | Update Complete |
| BKEXC | Backup Complete |
| NTFDL | Notification Deleted |
| NTFAD | Notification Added |
| NTFSN | Notification Sent |
| NTFCL | Notification Cleared |
| NTFST | Notification Server Startup |
| NTFSD | Notification Server Shutdown |
| PKGIN | Package installation |
| PKGUP | Package updated |
| PKGRM | Package purged |
| DSPST | Dispatcher Startup |
| DSPSD | Dispatcher Shutdown |
| ESSRT | External Service Startup |
| ESSTP | External Service Shutdown |
GET Audit Entries
GET /fledge/audit - повертає список записів журналу аудиту,
відсортованих за останніми.
Параметри запиту
- limit - обмежити кількість повернених записів аудиту вказаною кількістю
- skip - пропустити перші n записів у таблиці аудиту, що використовується з обмеженням для реалізації сторінкових інтерфейсів
- source - фільтрувати записи аудиту, щоб вони були лише з указаного джерела
- severity - відфільтрувати записи аудиту лише за вказаною серйозністю
Response Payload
Корисне навантаження відповіді – це масив об’єктів JSON із записами журналу аудиту.
| Назва | Тип | Опис | Приклад |
|---|---|---|---|
| timestamp | timestamp | Позначка часу, коли було записано елемент контрольного журналу. | 2018-04-16 14:33:18.215 |
| source | string | Джерело запису контрольного сліду. | CoAP |
| severity | string | Серйозність події, яка ініціюва ла запис контрольного журналу. Це буде один із SUCCESS, FAILURE, WARNING чи INFORMATION. | FAILURE |
| details | object | Об’єкт JSON, який описує деталі події журналу аудиту. | { "message" : "Sensor readings discarded due to malformed payload" } |
Example
$ curl -s http://localhost:8081/fledge/audit?limit=2
{ "totalCount" : 24,
"audit" : [ { "timestamp" : "2018-02-25 18:58:07.748",
"source" : "SRVRG",
"details" : { "name" : "COAP" },
"severity" : "INFORMATION" },
{ "timestamp" : "2018-02-25 18:58:07.742",
"source" : "SRVRG",
"details" : { "name" : "HTTP_SOUTH" },
"severity" : "INFORMATION" },
{ "timestamp" : "2018-02-25 18:58:07.390",
"source" : "START",
"details" : {},
"severity" : "INFORMATION" }
]
}
$ curl -s http://localhost:8081/fledge/audit?source=SRVUN&limit=1
{ "totalCount" : 4,
"audit" : [ { "timestamp" : "2018-02-25 05:22:11.053",
"source" : "SRVUN",
"details" : { "name": "COAP" },
"severity" : "INFORMATION" }
]
}
.
#### POST Audit Entries
`POST /fledge/audit` - створити новий запис контрольного журналу.
Мета методу створення запису в журналі аудиту полягає в тому, щоб
дозволити користувацькому інтерфейсу або додатку, який використовує API
Fledge, використовувати журнал аудиту Fledge і механізм сповіщень для
підняття визначених користувачем записів журналу аудиту.
**Request Payload**
Корисне навантаження запиту – це об’єкт JSON із записом контрольного
журналу без мітки часу.
| Назва | Tип | Опис | Приклад |
|----------|--------|-------------------------------------------------------------------------------------------------------------------------|-----------------------------------------|
| source | string | Джерело запису контрольного сліду. | LOGGN |
| severity | string | Серйозність події, яка ініціювала запис контрольного журналу. Це буде один із SUCCESS, FAILURE, WARNING чи INFORMATION. | FAILURE |
| details | object | Об’єкт JSON, який описує деталі події журналу аудиту. |` { "message" : "Internal System Error" } `|
**Response Payload**
Корисне навантаження відповіді – це щойно створений запис контрольного
журналу.
| Назва | Tип | Опис | Приклад |
|-----------|-----------|-------------------------------------------------------------------------------------------------------------------------|-----------------------------------------|
| timestamp | timestamp | Позначка часу, коли було записано елемент контрольного журналу. | 2018-04-16 14:33:18.215 |
| source | string | Джерело запису контрольного сліду. | LOGGN |
| severity | string | Серйозність події, яка ініціювала запис контрольного журналу. Це буде один із SUCCESS, FAILURE, WARNING чи INFORMATION. | FAILURE |
| details | object | Об’єкт JSON, який описує деталі події журналу аудиту. | `{ "message" : "Internal System Error" }` |
**Example**
``` console
$ curl -X POST http://localhost:8081/fledge/audit \
-d '{ "severity": "FAILURE", "details": { "message": "Internal System Error" }, "source": "LOGGN" }'
{ "source": "LOGGN",
"timestamp": "2018-04-17 11:49:55.480",
"severity": "FAILURE",
"details": { "message": "Internal System Error" }
}
$
$ curl -X GET http://localhost:8081/fledge/audit?severity=FAILURE
{ "totalCount": 1,
"audit": [ { "timestamp": "2018-04-16 18:32:28.427",
"source" : "LOGGN",
"details" : { "message": "Internal System Error" },
"severity" : "FAILURE" }
]
}
.
## Управління конфігурацією
Управління конфігурацією є важливим аспектом REST API, однак через
відкриту форму конфігурації Fledge сам API досить невеликий.
Конфігураційний REST API взаємодіє з менеджером конфігурації для
створення, отримання, оновлення та видалення категорій і значень
конфігурації. Зокрема, всі оновлення повинні проходити через рівень
керування, оскільки він використовується для надсилання сповіщень
компонентам, які виявили зацікавленість у категоріях конфігурації. Це
засіб, за допомогою якого досягається динамічна реконфігурація Fledge.
### category
Інтерфейс *category* є частиною керування конфігурацією для Fledge і
використовується для створення, отримання, оновлення та видалення
категорій і елементів конфігурації.
#### GET categor(ies)
`GET /fledge/category` - повертає список відомих категорій у базі даних
конфігурації
**Response Payload**
Корисне навантаження відповіді – це об’єкт JSON із масивом об’єктів
JSON, по одному на дійсну категорію.
| Назва | Тип | Опис | Приклад |
|-------------|--------|----------------------------------------------------------------------------------|------------------|
| key | string | Ключ категорії, кожна категорія має унікальний текстовий ключ, який її визначає. | network |
| description | string | Опис категорії, який можна використовувати для відображення. | Network Settings |
| displayName | string | Назва категорії, яку можна використовувати для відображення. | Network Settings |
**Example**
``` console
$ curl -X GET http://localhost:8081/fledge/category
{
"categories":
[
{
"key": "SCHEDULER",
"description": "Scheduler configuration",
"displayName": "Scheduler"
},
{
"key": "SMNTR",
"description": "Service Monitor",
"displayName": "Service Monitor"
},
{
"key": "rest_api",
"description": "Fledge Admin and User REST API",
"displayName": "Admin API"
},
{
"key": "service",
"description": "Fledge Service",
"displayName": "Fledge Service"
},
{
"key": "Installation",
"description": "Installation",
"displayName": "Installation"
},
{
"key": "General",
"description": "General",
"displayName": "General"
},
{
"key": "Advanced",
"description": "Advanced",
"displayName": "Advanced"
},
{
"key": "Utilities",
"description": "Utilities",
"displayName": "Utilities"
}
]
}
.
#### GET category
`GET /fledge/category/{name}` - повернути елементи конфігураці ї у
вказаній категорії.
**Параметри шляху**
- **name** це назва однієї з категорій, яку повертає виклик GET
/fledge/category.
**Response Payload**
Корисне навантаження відповіді — це набір елементів конфігурації в
категорії, кожен елемент — це об’єкт JSON із наведеним нижче набором
властивостей.
| Назва | Тип | Опис | Приклад |
|-------------|---------|----------------------------------------------------------------------------------------------------------|-------------------------------------|
| description | string | Опис елемента конфігурації, який можна використовувати в інтерфейсі користувача. | Мережева адреса IPv4 сервера Fledge |
| type | string | Тип, який може використовуватися інтерфейсом користувача, щоб знати, як відобразити елемент. | IPv4 |
| default | string | Додаткове значення за умовчанням для елемента конфігурації. | 127.0.0.1 |
| displayName | string | Назва категорії, яку можна використовувати для відображення. | IPv4 address |
| order | integer | Порядок відображення назви категорії. | 1 |
| value | string | Поточне налаштоване значення елемента конфігурації. Це може бути порожнім, якщо значення не встановлено. | 192.168.0.27 |
**Example**
``` console
$ curl -X GET http://localhost:8081/fledge/category/rest_api
{
"enableHttp": {
"description": "Enable HTTP (disable to use HTTPS)",
"type": "boolean",
"default": "true",
"displayName": "Enable HTTP",
"order": "1",
"value": "true"
},
"httpPort": {
"description": "Port to accept HTTP connections on",
"type": "integer",
"default": "8081",
"displayName": "HTTP Port",
"order": "2",
"value": "8081"
},
"httpsPort": {
"description": "Port to accept HTTPS connections on",
"type": "integer",
"default": "1995",
"displayName": "HTTPS Port",
"order": "3",
"validity": "enableHttp==\"false\"",
"value": "1995"
},
"certificateName": {
"description": "Certificate file name",
"type": "string",
"default": "fledge",
"displayName": "Certificate Name",
"order": "4",
"validity": "enableHttp==\"false\"",
"value": "fledge"
},
"authentication": {
"description": "API Call Authentication",
"type": "enumeration",
"options": [
"mandatory",
"optional"
],
"default": "optional",
"displayName": "Authentication",
"order": "5",
"value": "optional"
},
"authMethod": {
"description": "Authentication method",
"type": "enumeration",
"options": [
"any",
"password",
"certificate"
],
"default": "any",
"displayName": "Authentication method",
"order": "6",
"value": "any"
},
"authCertificateName": {
"description": "Auth Certificate name",
"type": "string",
"default": "ca",
"displayName": "Auth Certificate",
"order": "7",
"value": "ca"
},
"allowPing": {
"description": "Allow access to ping, regardless of the authentication required and authentication header",
"type": "boolean",
"default": "true",
"displayName": "Allow Ping",
"order": "8",
"value": "true"
},
"passwordChange": {
"description": "Number of days after which passwords must be changed",
"type": "integer",
"default": "0",
"displayName": "Password Expiry Days",
"order": "9",
"value": "0"
},
"authProviders": {
"description": "Authentication providers to use for the interface (JSON array object)",
"type": "JSON",
"default": "{\"providers\": [\"username\", \"ldap\"] }",
"displayName": "Auth Providers",
"order": "10",
"value": "{\"providers\": [\"username\", \"ldap\"] }"
}
}
.
#### GET category item
`GET /fledge/category/{name}/{item}` - повернути елемент конфігурації у
вказаній категорії.
**Параметри шляху**
- **name** - назва однієї з категорій, що повертається викликом GET
/fledge/category.
- **item** - елемент у категорії для повернення.
**Response Payload**
Корисне навантаження відповіді є елементом конфігурації в категорії,
кожен елемент є об’єктом JSON з наступним набором властивостей.
| Назва | Тип | Опис | Приклад |
|-------------|---------|----------------------------------------------------------------------------------------------------------|-------------------------------------|
| description | string | Опис елемента конфігурації, який можна використовувати в інтерфейсі користувача. | Мережева адреса IPv4 сервера Fledge |
| type | string | Тип, який може використовуватися інтерфейсом користувача, щоб знати, як відобразити елемент. | IPv4 |
| default | string | Додаткове значення за умовчанням для елемента конфігурації. | 127.0.0.1 |
| displayName | string | Назва категорії, яку можна використовувати для відображення. | IPv4 address |
| order | integer | Порядок відображення назви категорії. | 1 |
| value | string | Поточне налаштоване значення елемента конфігурації. Це може бути порожнім, якщо значення не встановлено. | 192.168.0.27 |
**Example**
``` console
$ curl -X GET http://localhost:8081/fledge/category/rest_api/httpsPort
{
"description": "Port to accept HTTPS connections on",
"type": "integer",
"default": "1995",
"displayName": "HTTPS Port",
"order": "3",
"validity": "enableHttp==\"false\"",
"value": "1995"
}
.
#### PUT category item
`PUT /fledge/category/{name}/{item}` - встановити значення елемента
конфігурації у вказаній категорії.
**Параметри шляху**
- **name** - назва однієї з категорій, що повертається викликом GET
/fledge/category.
- **item** - елемент у категорії для встановлення.
**Request Payload**
Об’єкт JSON із новим значенням для призначення елементу конфігурації.
| Назва | Тип | Опис | Приклад |
|-------|--------|--------------------------------------|--------------|
| value | string | Нове значення елемента конфігурації. | 192.168.0.27 |
**Response Payload**
Корисне навантаження відповіді — це нещодавно оновлений елемент
конфігурації в категорії, елемент — це об’єкт JSON із таким набором
властивостей.
| Назва | Тип | Опис | Приклад |
|-------------|---------|----------------------------------------------------------------------------------------------------------|-------------------------------------|
| description | string | Опис елемента конфігурації, який можна використовувати в інтерфейсі користувача. | Мережева адреса IPv4 сервера Fledge |
| type | string | Тип, який може використовуватися інтерфейсом користувача, щоб знати, як відобразити елемент. | IPv4 |
| default | string | Додаткове значення за умовчанням для елемента конфігурації. | 127.0.0.1 |
| displayName | string | Назва категорії, яку можна використовувати для відображення. | IPv4 address |
| order | integer | Порядок відображення назви категорії. | 1 |
| value | string | Поточне налаштоване значення елемента конфігурації. Це може бути порожнім, якщо значення не встановлено. | 192.168.0.27 |
**Example**
``` console
$ curl -X PUT http://localhost:8081/fledge/category/rest_api/httpsPort \
-d '{ "value" : "1996" }'
{
"description": "Port to accept HTTPS connections on",
"type": "integer",
"default": "1995",
"displayName": "HTTPS Port",
"order": "3",
"validity": "enableHttp==\"false\"",
"value": "1996"
}
.
#### DELETE category item
`DELETE /fledge/category/{name}/{item}/value` - скинути значення
елемента конфігурації в даній категорії.
Це призведе до того, що значення буде повернуто до значення за
замовчуванням, якщо таке визначено. Якщо ні, значення буде порожнім,
тобто властивість value об'єкта JSON буде існувати з порожнім значенням.
**Параметри шляху**
- **name** - назва однієї з категорій, що повертається викликом GET
/fledge/category.
- **item** - елемент у категорії для повернення.
**Response Payload**
Корисне навантаження відповіді — це нещодавно оновлений елемент
конфігурації в категорії, елемент — це об’єкт JSON із таким набором
властивостей.
| Назва | Тип | Опис | Приклад |
|-------------|---------|----------------------------------------------------------------------------------------------------------|-------------------------------------|
| description | string | Опис елемента конфігурації, який можна використовувати в інтерфейсі користувача. | Мережева адреса IPv4 сервера Fledge |
| type | string | Тип, який може використовуватися інтерфейсом користувача, щоб знати, як відобразити елемент. | IPv4 |
| default | string | Додаткове значення за умовчанням для елемента конфігурації. | 127.0.0.1 |
| displayName | string | Назва категорії, яку можна використовувати для відображення. | IPv4 address |
| order | integer | Порядок відображення назви категорії. | 1 |
| value | string | Поточне налаштоване значення елемента конфігурації. Це може бути порожнім, якщо значення не встановлено. | 127.0.0.1 |
**Example**
``` console
$ curl -X DELETE http://localhost:8081/fledge/category/rest_api/httpsPort/value
{
"description": "Port to accept HTTPS connections on",
"type": "integer",
"default": "1995",
"displayName": "HTTPS Port",
"order": "3",
"validity": "enableHttp==\"false\"",
"value": "1995"
}
.
#### POST category
`POST /fledge/category` - створює нову категорію
**Request Payload**
Об’єкт JSON, який визначає категорію.
| Назва | Тип | Опис | Приклад |
|---------------|--------|---------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------|
| key | string | Ключ, який ідентифікує категорію. Якщо ключ уже існує як категорія, тоді вміст цього запиту об’єднується зі збереженими даними. | backup |
| description | string | Опис категорії конфігурації | Backup configuration |
| items | list | Додатковий список елементів для створення в цій категорії | |
| *name* | string | Ім'я елемента конфігурації | destination |
| *description* | string | Опис елемента конфігурації | The destination to which the backup will be written |
| *type* | string | Тип елемента конфігурації | string |
| *default* | string | Додаткове значення за умовчанням для елемента конфігурації | /backup |
**Примітка:** зі списком ми маємо на увазі список об’єктів JSON у формі `{ obj1,obj2 тощо. }`, щоб відрізнятися від онцепц ії *масиву*, тобто \[ obj1,obj2 тощо. \]
**Example**
``` console
$ curl -X POST http://localhost:8081/fledge/category
-d '{ "key": "My Configuration", "description": "This is my new configuration",
"value": { "item one": { "description": "The first item", "type": "string", "default": "one" },
"item two": { "description": "The second item", "type": "string", "default": "two" },
"item three": { "description": "The third item", "type": "string", "default": "three" } } }'
{ "description": "This is my new configuration", "key": "My Configuration", "value": {
"item one": { "default": "one", "type": "string", "description": "The first item", "value": "one" },
"item two": { "default": "two", "type": "string", "description": "The second item", "value": "two" },
"item three": { "default": "three", "type": "string", "description": "The third item", "value": "three" } }
}
.
## Управління завданнями
API управління завданнями дозволяють адміністративному користувачеві
відстежувати і контролювати завдання, які запускаються планувальником
завдань або за розкладом, або в результаті запиту API.
### task
Інтерфейс *task* дозволяє адміністративному користувачеві відстежувати і
контролювати завдання Fledge.
#### GET task
`GET /fledge/task` - повертає список усіх відомих запущених або
виконаних завдань
**Параметри запиту**
- **name** - додаткова назва завдання для фільтрації, звітуватиметься
лише про виконання певного завдання.
- **state** - додатковий параметр запиту, який повертатиме лише ті
завдання в заданому стані.
**Response Payload**
Корисне навантаження відповіді – це об’єкт JSON із масивом об’єктів
завдання.
| Назва | Тип | Опис | Приклад |
|-----------|-----------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------|
| id | string | Унікальний ідентифікатор завдання. Це набуває форми uuid, а не ідентифікатора процесу Linux, оскільки ідентифікатори мають витримати перезапуски та відновлення після відмови | 0a787bf3-4f48-4235-ae9a-2816f8ac76cc |
| name | string | Назва завдання | purge |
| state | string | Поточний стан завдання | Running |
| startTime | timestamp | Дата й час початку завдання | 2018-04-17 08:32:15.071 |
| endTime | timestamp | Дата й час завершення завдання Це може не існувати, якщо завдання не завершено. | 2018-04-17 08:32:14.872 |
| exitCode | integer | Код виходу із завдання. | 0 |
| reason | string | Додатковий рядок причини, який описує, чому завдання не вдалося. | No destination available to write backup |
**Example**
``` console
$ curl -X GET http://localhost:8081/fledge/task
{
"tasks": [
{
"id": "a9967d61-8bec-4d0b-8aa1-8b4dfb1d9855",
"name": "stats collection",
"processName": "stats collector",
"state": "Complete",
"startTime": "2020-05-28 09:21:58.650",
"endTime": "2020-05-28 09:21:59.155",
"exitCode": 0,
"reason": ""
},
{
"id": "7706b23c-71a4-410a-a03a-9b517dcd8c93",
"name": "stats collection",
"processName": "stats collector",
"state": "Complete",
"startTime": "2020-05-28 09:22:13.654",
"endTime": "2020-05-28 09:22:14.160",
"exitCode": 0,
"reason": ""
},
... ] }
$
$ curl -X GET http://localhost:8081/fledge/task?name=purge
{
"tasks": [
{
"id": "c24e006d-22f2-4c52-9f3a-391a9b17b6d6",
"name": "purge",
"processName": "purge",
"state": "Complete",
"startTime": "2020-05-28 09:44:00.175",
"endTime": "2020-05-28 09:44:13.915",
"exitCode": 0,
"reason": ""
},
{
"id": "609f35e6-4e89-4749-ac17-841ae3ee2b31",
"name": "purge",
"processName": "purge",
"state": "Complete",
"startTime": "2020-05-28 09:44:15.165",
"endTime": "2020-05-28 09:44:28.154",
"exitCode": 0,
"reason": ""
},
... ] }
$
$ curl -X GET http://localhost:8081/fledge/task?state=complete
{
"tasks": [
{
"id": "a9967d61-8bec-4d0b-8aa1-8b4dfb1d9855",
"name": "stats collection",
"processName": "stats collector",
"state": "Complete",
"startTime": "2020-05-28 09:21:58.650",
"endTime": "2020-05-28 09:21:59.155",
"exitCode": 0,
"reason": ""
},
{
"id": "7706b23c-71a4-410a-a03a-9b517dcd8c93",
"name": "stats collection",
"processName": "stats collector",
"state": "Complete",
"startTime": "2020-05-28 09:22:13.654",
"endTime": "2020-05-28 09:22:14.160",
"exitCode": 0,
"reason": ""
},
... ] }
.
#### GET task latest
`GET /fledge/task/latest` - повертає список останніх виконаних завдань
для кожного імені.
Цей виклик призначено для того, щоб інтерфейс моніторингу показував,
коли кожне завдання було запущено востаннє та який був статус цього
завдання.
**Параметри запиту**
- **name** - додаткова назва завдання для фільтрації, звітуватиметься
лише про виконання певного завдання.
- **state** - додатковий параметр запиту, який повертатиме лише ті
завдання в заданому стані.
**Response Payload**
Корисне навантаження відповіді – це об’єкт JSON із масивом об’єктів
завдання.
| Назва | Тип | Опис | Приклад |
|-----------|-----------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------|
| id | string | Унікальний ідентифікатор завдання. Це набуває форми uuid, а не ідентифікатора процесу Linux, оскільки ідентифікатори мають витримати перезапуски та відновлення після відмови | 0a787bf3-4f48-4235-ae9a-2816f8ac76cc |
| name | string | Назва завдання | purge |
| state | string | Поточний стан завдання | Running |
| startTime | timestamp | Дата й час початку завдання | 2018-04-17 08:32:15.071 |
| endTime | timestamp | Дата й час завершення завдання Це може не існувати, якщо завдання не завершено. | 2018-04-17 08:32:14.872 |
| exitCode | integer | Код виходу із завдання. | 0 |
| reason | string | Додатковий рядок причини, який описує, чому завдання не вдалося. | No destination available to write backup |
| pid | integer | ID процесу завдання. | 17481 |
**Example**
``` console
$ curl -X GET http://localhost:8081/fledge/task/latest
{
"tasks": [
{
"id": "ea334d3b-8a33-4a29-845c-8be50efd44a4",
"name": "certificate checker",
"processName": "certificate checker",
"state": "Complete",
"startTime": "2020-05-28 09:35:00.009",
"endTime": "2020-05-28 09:35:00.057",
"exitCode": 0,
"reason": "",
"pid": 17481
},
{
"id": "794707da-dd32-471e-8537-5d20dc0f401a",
"name": "stats collection",
"processName": "stats collector",
"state": "Complete",
"startTime": "2020-05-28 09:37:28.650",
"endTime": "2020-05-28 09:37:29.138",
"exitCode": 0,
"reason": "",
"pid": 17926
}
... ] }
$
$ curl -X GET http://localhost:8081/fledge/task/latest?name=purge
{
"tasks": [
{
"id": "609f35e6-4e89-4749-ac17-841ae3ee2b31",
"name": "purge",
"processName": "purge",
"state": "Complete",
"startTime": "2020-05-28 09:44:15.165",
"endTime": "2020-05-28 09:44:28.154",
"exitCode": 0,
"reason": "",
"pid": 20914
}
]
}
.
#### GET task by ID
`GET /fledge/task/{id}` - повертає інформацію про завдання для даного
завдання
**Параметри шляху**
- **id** - uuid завдання, дані якого мають бути повернуті.
**Response Payload**
Корисне навантаження відповіді – це об’єкт JSON, що містить деталі
завдання.
| Назва | Тип | Опис | Приклад |
|-----------|-----------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------|
| id | string | Унікальний ідентифікатор завдання. Це набуває форми uuid, а не ідентифікатора процесу Linux, оскільки ідентифікатори мають витримати перезапуски та відновлення після відмови | 0a787bf3-4f48-4235-ae9a-2816f8ac76cc |
| name | string | Назва завдання | purge |
| state | string | Поточний стан завдання | Running |
| startTime | timestamp | Дата й час початку завдання | 2018-04-17 08:32:15.071 |
| endTime | timestamp | Дата й час завершення завдання Це може не існувати, якщо завдання не завершено. | 2018-04-17 08:32:14.872 |
| exitCode | integer | Код виходу із завдання. | 0 |
| reason | string | Додатковий рядок причини, який описує, чому завдання не вдалося. | No destination available to write backup |
**Example**
``` console
$ curl -X GET http://localhost:8081/fledge/task/ea334d3b-8a33-4a29-845c-8be50efd44a4
{
"id": "ea334d3b-8a33-4a29-845c-8be50efd44a4",
"name": "certificate checker",
"processName": "certificate checker",
"state": "Complete",
"startTime": "2020-05-28 09:35:00.009",
"endTime": "2020-05-28 09:35:00.057",
"exitCode": 0,
"reason": ""
}
.
#### Cancel task by ID
`PUT /fledge/task/{id}/cancel` - відміняє завдання.
**Path Parameters**
- **id** - uuid завдання, яке потрібно скасувати.
**Response Payload**
Корисне навантаження відповіді – це об’єкт JSON, що містить деталі
завдання.
| Назва | Тип | Опис | Приклад |
|-----------|-----------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------|
| id | string | Унікальний ідентифікатор завдання. Це набуває форми uuid, а не ідентифікатора процесу Linux, оскільки ідентифікатори мають витримати перезапуски та відновлення після відмови | 0a787bf3-4f48-4235-ae9a-2816f8ac76cc |
| name | string | Назва завдання | purge |
| state | string | Поточний стан завдання | Running |
| startTime | timestamp | Дата й час початку завдання | 2018-04-17 08:32:15.071 |
| endTime | timestamp | Дата й час завершення завдання Це може не існувати, якщо завдання не завершено. | 2018-04-17 08:32:14.872 |
| reason | string | Додатковий рядок причини, який описує, чому завдання не вдалося. | No destination available to write backup |
**Example**
``` console
$ curl -X PUT http://localhost:8081/fledge/task/ea334d3b-8a33-4a29-845c-8be50efd44a4/cancel
{"id": "ea334d3b-8a33-4a29-845c-8be50efd44a4", "message": "Task cancelled successfully"}
.
## Інші Адміністративні API виклики
### shutdown
Опція *shutdown* призведе до повного завершення роботи всіх сервісів
Fledge. Будь-які дані, що зберігаються у буферах пам'яті сервісів,
будуть надіслані на рівень зберігання, а плагіни Fledge збережуть
будь-який необхідний стан під час перезапуску.
``` console
$ curl -X PUT /fledge/shutdown
Примітка
Якщо налаштовано рівень зберігання в пам'яті, він не буде збережений до будь-якого постійного сховища, і вміст рівня зберігання в пам'яті буде втрачено.
restart
Опція restart призведе до повного завершення роботи всіх сервісів Fledge, а потім їх перезапуску. Будь-які дані, що зберігаються у буферах пам'яті сервісів, будуть надіслані на рівень зберігання, а плагіни Fledge збережуть будь-який необхідний стан під час перезапуску.
$ curl -X PUT /fledge/restart
Примітка
Якщо налаштовано рівень зберігання в пам'яті, він не буде збережений до будь-якого постійного сховища, і вміст рівня зберігання в пам'яті буде втрачено.
ping
Інтерфейс ping дає базову перевірку впевненості в тому, що пристрій Fledge працює, а аспект API пристрою є функціональним. Він розроблений як простий тест, який може бути застосований користувачем або системою моніторингу HA для перевірки життєздатності та швидкості реагування системи.
GET ping
GET /fledge/ping - повернути життєвість Fledge
Примітка: метод GET може бути виконаний без автентифікації, навіть якщо автентифікація потрібна. Цю поведінку можна налаштувати за допомогою параметра конфігурації.
Response Payload
Корисне навантаження відповіді – це деяка основна інформація про працездатність в об’єкті JSON.
| Назва | Тип | Опис | Приклад |
|---|---|---|---|
| uptime | numeric | Час у секундах від початку роботи Fledge | 2113.076449394226 |
| dataRead | numeric | Підрахунок кількості зчитувань датчика | 1452 |
| dataSent | numeric | Підрахунок кількості зчитувань, надісланих до PI | 347 |
| dataPurged | numeric | Підрахунок кількості видалених зчитувань | 226 |
| authenticationOptional | boolean | Якщо значення true, REST API не вимагає автентифікації. Якщо значення false, користувачі повинні успішно авторизуватися, щоб викликати REST API. За замовчуванням true. | true |
| serviceName | string | Назва сервісу | Fledge |
| hostName | string | Ім'я хост-машини | fledge |
| ipAddresses | list | Адреса IPv4 та IPv6 хост-машини | ["10.0.0.0","123:234:345:456:567:678:789:890"] |
| health | string | Стан сервісів Fledge | "green" |
| safeMode | boolean | Вірно, якщо Fledge запущено в безпечному режимі (будуть запущені лише ядро та сервіси зберігання) | 2113.076449394226 |
Example
$ curl -s http://localhost:8081/fledge/ping
{
"uptime": 276818,
"dataRead": 0,
"dataSent": 0,
"dataPurged": 0,
"authenticationOptional": true,
"serviceName": "Fledge",
"hostName": "fledge",
"ipAddresses": [
"x.x.x.x",
"x:x:x:x:x:x:x:x"
],
"health": "green",
"safeMode": false
}
.