Skip to content

Repository files navigation

ispctl

Консольная утилита для получения и переопределения конфигруации модулей 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]
ispctl [flag...] vars get variable_name
ispctl [flag...] vars list
ispctl [flag...] vars set [local_flag] variable_name variable_value
ispctl [flag...] vars delete variable_name
ispctl [flag...] vars upload csv_filepath

Описание

КомандыОписание
statusвозвращает доступные конфигурации модулей, их состояния и подключения
getвозвращает объект конфигурации указанного модуля
setизменяет объект конфигурации указанного модуля
deleteудаляет объект конфигурации указанного модуля
mergeпоблочно производит слияние конфигурации модуля с json конфигом через stdin
gitgetскачивает из репозитория указанный файлы с указанного комита
schemaвозвращает схему конфигурации указанного модуля
vars getвыводит информацию о переменной в json формате
vars listвыводит список переменных в виде ASCII-таблицы
vars setизменяет значение переменной
vars deleteудаляет переменную по имени
vars uploadзагружает переменные из csv файла
ФлагиПараметрыОписание
-gstringадрес isp-config-service
-unsafeотключает проверку схемы перед изменением конфигурации
АргументыОписание
module_nameНазвание модуля с которым происходит взаимодействие
property_pathПуть к объекту конфигурации, при значении . работа происходит со всей конфигурацией модуля
new_objectНовый объект, значение должно быть экранировано с помощью ' ', при отсутсвии ожидается ввод из stdin
variable_nameНазвание переменной с которой происходит взаимодействие
variable_valueЗначение переменной
csv_filepathПуть к csv файлу с переменными для загрузки
Локальные флагиПараметрыКомандыОписание
-ostringschemaопределяет формат вывода схемы в stdout; по умолчанию json; возможные значения json, html
-fullboolgetосуществляет взаимодействие с объектами конфигурации модуля с учетом объектом общих конфигураций, которые имеют связь с модулем
-secretboolvars setустанавливает тип переменной в SECRET

Пример

ispctl status

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 get

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 set

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 delete

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 schema

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>

ispctl merge

Содержание файла 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

ispctl gitget git@github.com:integration-system/ispctl.git main.go d4d7c679aad47ae204c2b3a4587b032a723fe315

ispctl vars

ispctl vars get

ispctl [flag...] vars get variable_name

Запрос

ispctl vars get example_variable

Ответ

{
"name": "example_variable",
"description": "example description text",
"type": "TEXT",
"value": "some variable value",
"containsInConfigs": []
}

ispctl vars list

ispctl [flag...] vars list

Запрос

ispctl vars list

Ответ

+--------+-------------+--------+-----------------+---------+
| NAME | DESCRIPTION | TYPE | VALUE | CONFIGS |
+--------+-------------+--------+-----------------+---------+
| var-99 | описание | SECRET |||
+--------+-------------+--------+-----------------+---------+
| var-6 | описание | SECRET |||
+--------+-------------+--------+-----------------+---------+
| var-2 | описание | TEXT | 1131231-2131231 ||
+--------+-------------+--------+-----------------+---------+
| var-1 | описание | SECRET |||
+--------+-------------+--------+-----------------+---------+

ispctl vars set

ispctl [flag...] vars set variable_name variable_value

Запрос на изменение значения переменной и установку типа TEXT

ispctl vars set example_variable value

Запрос на изменение значения переменной и установку типа SECRET

ispctl vars set -secret example_variable value

ispctl vars delete

ispctl [flag...] vars delete variable_name

Запрос

ispctl vars delete example_variable

ispctl vars upload

ispctl [flag...] vars upload csv_filepath

Запрос

ispctl vars upload example.csv

CSV должен иметь поля name, type, value, description пример CSV файла:

name,type,value,descriptionvariable-1,SECRET,var 1 value,Описание 1 переменнойvariable-2,TEXT,plaintext value,Описание 2 переменной

Запрос с флагами

Запрос

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
}
}

1

About

No description, website, or topics provided.

Resources

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages