Консольная утилита для получения и переопределения конфигруации модулей isp
- Linux
yum install ispctl
ispctl [flag...] status [local_flag]
ispctl [flag...] get module_name property_path [local_flag]
ispctl [flag...] set module_name property_path [new_object]
ispctl [flag...] delete module_name property_path
ispctl [flag...] schema module_name [local_flag]
Команды | Описание |
---|---|
status |
возвращает доступные конфигурации модулей, их состояния и подключения |
get |
возвращает объект конфигурации указанного модуля |
set |
изменяет объект конфигурации указанного модуля |
delete |
удаляет объект конфигурации указанного модуля |
merge |
поблочно производит слияние конфигурации модуля с json конфигом через stdin |
gitget |
скачивает из репозитория указанный файлы с указанного комита |
schema |
возвращает схему конфигурации указанного модуля |
Флаги | Параметры | Описание |
---|---|---|
-g |
string | адрес isp-config-service |
-unsafe |
отключает проверку схемы перед изменением конфигурации | |
Аргументы | Описание |
---|---|
module_name |
Название модуля с которым происходит взаимодействие |
property_path |
Путь к объекту конфигурации, при значении . работа происходит со всей конфигурацией модуля |
new_object |
Новый объект, значение должно быть экранировано с помощью ' ' , при отсутсвии ожидается ввод из stdin |
Локальные флаги | Параметры | Команды | Описание |
---|---|---|---|
-o |
string | schema | определяет формат вывода схемы в stdout; по умолчанию json ; возможные значения json , html |
-full |
bool | get | осуществляет взаимодействие с объектами конфигурации модуля с учетом объектом общих конфигураций, которые имеют связь с модулем |
ispctl [flag...] status [local_flag]
[local_flag]
- локальный флаг -o
определяет формат вывода доступных конфигураций и состояний модулей. Доступные значения: json
.
По умолчанию вывод осуществляется в виде таблицы.
Запрос
ispctl status
Ответ
MODULE NAME | STATUS | ADDRESSES
+------------------------+---------------+-------------------------+
admin | CONNECTED | 127.0.0.1
auth | NOT_CONNECTED |
config | CONNECTED | 127.0.0.1
converter | CONNECTED | 127.0.0.1
journal | NOT_CONNECTED |
ispctl [flag...] get module_name property_path
- Получение полной конфигурации
Запрос
ispctl get example .
Ответ
{
"journal": {
"bufferSize": 4092,
"compress": true,
"enable": false,
"enableRemoteTransfer": true,
"filename": "/var/log/example-service/runtime.log",
"maxSizeMb": 512,
"rotateTimeoutMs": 86400000
},
"metrics": {
"address": {
"ip": "127.0.0.1",
"path": "/metrics",
"port": 1
},
"gc": 2,
"memory": true
}
}
- Получение конкретного объекта конфигурации
Запрос
ispctl get example .metrics.address
Ответ
{
"ip": "127.0.0.1",
"path": "/metrics",
"port": 1
}
ispctl [flag...] set module_name property_path [new_object]
При указании new_object
необходимо его экранировать. При его отсутсвии ожидается ввод из stdin
до EOF
- Вставка нового поля в объект конфигурации
Запрос
ispctl set example .metrics.newField '"1000"'
Ответ
{
"journal": {
"bufferSize": 4092,
"compress": true,
"enable": false,
"enableRemoteTransfer": true,
"filename": "/var/log/example-service/runtime.log",
"maxSizeMb": 512,
"rotateTimeoutMs": 86400000
},
"metrics": {
"address": {
"ip": "127.0.0.1",
"path": "/metrics",
"port": 1
},
"gc": 2,
"memory": true,
"newField": "1000"
}
}
- Изменение объекта конфигурации
Запрос
ispctl set example .metrics '{"address":{"ip":"198.0.0.1","newField":"100","port":1},"gc":1,"memory":false}'
Ответ
{
"journal": {
"bufferSize": 4092,
"compress": true,
"enable": false,
"enableRemoteTransfer": true,
"filename": "/var/log/example-service/runtime.log",
"maxSizeMb": 512,
"rotateTimeoutMs": 86400000
},
"metrics": {
"address": {
"ip": "198.0.0.1",
"newField": "100",
"port": 1
},
"gc": 1,
"memory": false
}
}
- Полное обновление конфигурации
Запрос
ispctl set example . '{"journal":{"bufferSize":1111,"compress":false,"enable":true,"filename":"/var/log/example-service/runtime.log","newField":"1000"},"metrics":{"address":{"ip":"198.0.0.1","newField":"100","port":1},"gc":1,"memory":false}}'
Ответ
{
"journal": {
"bufferSize": 1111,
"compress": false,
"enable": true,
"filename": "/var/log/example-service/runtime.log",
"newField": "1000"
},
"metrics": {
"address": {
"ip": "198.0.0.1",
"newField": "100",
"port": 1
},
"gc": 1,
"memory": false
}
}
ispctl [flag...] delete module_name property_path
- Удаление объекта конфигурации
Запрос
ispctl delete example .journal
Ответ
{
"metrics": {
"address": {
"ip": "198.0.0.1",
"newField": "100",
"port": 1
},
"gc": 1,
"memory": false
}
}
- Удаление поля из конфигурации
Запрос
ispctl delete example .metrics.address.ip
Ответ
{
"metrics": {
"address": {
"newField": "100",
"port": 1
},
"gc": 1,
"memory": false
}
}
- Удаление конфигурации
Запрос
ispctl delete example .
Ответ
{}
ispctl [flag...] schema module_name [local_flag]
- Получение схемы конфигурации
Запрос
ispctl schema example
Ответ
{
"title": "example"
"schema": {
"title": "Remote config",
"type": "object",
"required": [
"journal",
],
...
...
...
}
}
Запрос
ispctl schema example -o html
Ответ
<html>
<head>
...
...
...
<body>
<div class="results"></div>
<script>
var schema = [
{"schema":{"required":["journal"]...
...
...
</script>
</body>
</html>
Содержание файла example.json
{
"metrics": {
"gc": 1,
"memory": false
},
"property": "replaced"
}
Конфигурация модуля example
{
"database": {
"host": "127.0.0.1"
},
"property": "original"
}
ispctl merge example < example.json
Результат в конфигурации модуля
{
"metrics": {
"gc": 1,
"memory": false
},
"property": "replaced",
"database": {
"host": "127.0.0.1"
}
}
ispctl gitget git@github.com:integration-system/ispctl.git main.go d4d7c679aad47ae204c2b3a4587b032a723fe315
Запрос
ispctl -g '127.0.0.1:9002' set example . '{"metrics":{"address":{"ip":"127.0.0.1","newField":"100","port":1},"gc":1,"memory":false}}'
Ответ
{
"metrics": {
"address": {
"ip": "127.0.0.1",
"newField": "100",
"port": 1
},
"gc": 1,
"memory": false
}
}