Help:CLI/management/containers: Difference between revisions
(описание команд из svacer container) |
m (several markup and spelling fixes) |
||
Line 1: | Line 1: | ||
== Описание и примеры использования управления контейнерами в | == Описание и примеры использования управления контейнерами в Svacer == | ||
Управление разными видами контейнеров может осуществлять | Управление разными видами контейнеров пользователь может осуществлять через команды <code>svacer container</code> при наличии соответствующих доступов. Команды можно использовать в скриптах, возвращаемые значения обычно выводятся в виде JSON в stdout поток, что позволяет получать и использовать ID объекты в скриптах. | ||
В примерах для краткости не указываются | В примерах для краткости не указываются параметры доступа к серверу и аккаунт пользователя, а вывод приведён с сокращениями. | ||
Актуальную информацию по командам можно посмотреть напрямую через вызов <code>svacer <command> --help</code>. | Актуальную информацию по командам можно посмотреть напрямую через вызов <code>svacer <command> --help</code>. | ||
=== Добавление ветки, проекта или группы проектов === | === Добавление ветки, проекта или группы проектов === | ||
Добавление нового контейнера осуществляется командой <code>svacer container add</code> c указанием названия и типа создаваемого объекта: <code>project</code>, <code>branch</code>, <code>project-group</code>. Например так создаётся пустой проект | Добавление нового контейнера осуществляется командой <code>svacer container add</code> c указанием названия и типа создаваемого объекта: <code>project</code>, <code>branch</code>, <code>project-group</code>. Например, так создаётся пустой проект | ||
svacer container add --name wiki-help --type project | svacer container add --name wiki-help --type project | ||
... | ... | ||
2024-10-15T14:23:56.922+0300 info Project добавлен | 2024-10-15T14:23:56.922+0300 info Project добавлен | ||
В терминале | |||
В терминале также будет вывод с JSON-строкой следующего вида | |||
{"Containers":[{"id":"550eaba9-39e8-48f7-b8b0-7bde24535d95","name":"wiki-help","type":"project"}]} | {"Containers":[{"id":"550eaba9-39e8-48f7-b8b0-7bde24535d95","name":"wiki-help","type":"project"}]} | ||
Для создания ветки надо указать проект в которые её добавлять, для этого используется опция <code>--parent</code> | Для создания ветки надо указать проект в которые её добавлять, для этого используется опция <code>--parent</code> | ||
svacer container add --name wiki-help-branch --type branch --parent 550eaba9-39e8-48f7-b8b0-7bde24535d95 | svacer container add --name wiki-help-branch --type branch --parent 550eaba9-39e8-48f7-b8b0-7bde24535d95 | ||
В терминале | |||
В терминале также будет вывод с JSON-строкой результата действия | |||
{"Containers":[{"id":"a162cb5b-d09b-4a34-a4a8-818a9a0f32de","name":"wiki-help-branch","type":"branch","parent":"550eaba9-39e8-48f7-b8b0-7bde24535d95"}]} | {"Containers":[{"id":"a162cb5b-d09b-4a34-a4a8-818a9a0f32de","name":"wiki-help-branch","type":"branch","parent":"550eaba9-39e8-48f7-b8b0-7bde24535d95"}]} | ||
При создании проекта можно | |||
При создании проекта можно указать параметр <code>--review-with-comment</code> для создания проекта с обязательным комментарием при изменении разметки. Если параметр не передавать, проект создаётся без этого требования. | |||
=== Удаление ветки, проекта или группы проектов === | === Удаление ветки, проекта или группы проектов === | ||
Удаление контейнера осуществляется командой <code>svacer container remove</code> c указанием ID | Удаление контейнера осуществляется командой <code>svacer container remove</code> c указанием ID и типа удаляемого объекта: <code>project</code>, <code>branch</code>, <code>project-group</code>. Например, так удаляется проект | ||
svacer container remove --id 550eaba9-39e8-48f7-b8b0-7bde24535d95 --type project | svacer container remove --id 550eaba9-39e8-48f7-b8b0-7bde24535d95 --type project | ||
... | ... | ||
2024-10-15T14:34:48.725+0300 info Удаление завершено | 2024-10-15T14:34:48.725+0300 info Удаление завершено | ||
В терминале | |||
В терминале также будет вывод с JSON-строкой следующего вида | |||
{"Containers":[{"id":"550eaba9-39e8-48f7-b8b0-7bde24535d95","name":"wiki-help","type":"project"}]} | {"Containers":[{"id":"550eaba9-39e8-48f7-b8b0-7bde24535d95","name":"wiki-help","type":"project"}]} | ||
=== Список веток, проектов или групп проектов === | === Список веток, проектов или групп проектов === | ||
С помощью команды <code>svacer container list</code> можно просмотреть связи между контейнерами. С помощью опции <code>--name</code> можно ограничить возвращаемые значения, например запрос по <code>wiki без указания типа, вернёт все контейнеры с именем содержащим это значение | С помощью команды <code>svacer container list</code> можно просмотреть связи между контейнерами. С помощью опции <code>--name</code> можно ограничить возвращаемые значения, например запрос по <code>wiki</code> без указания типа, вернёт все контейнеры с именем, содержащим это значение | ||
svacer container list --name wiki | |||
{"Containers":[{"id":"550eaba9-39e8-48f7-b8b0-7bde24535d95","name":"wiki-help","type":"project"},{"id":"a162cb5b-d09b-4a34-a4a8-818a9a0f32de","name":"wiki-help-branch","type":"branch","parent":"550eaba9-39e8-48f7-b8b0-7bde24535d95"}]} | {"Containers":[{"id":"550eaba9-39e8-48f7-b8b0-7bde24535d95","name":"wiki-help","type":"project"},{"id":"a162cb5b-d09b-4a34-a4a8-818a9a0f32de","name":"wiki-help-branch","type":"branch","parent":"550eaba9-39e8-48f7-b8b0-7bde24535d95"}]} | ||
Если добавить опцию <code>--format text</code> | |||
Если добавить опцию <code>--format text</code>, то возвращаемое значение будет отформатировано к такому виду | |||
Id: 550eaba9-39e8-48f7-b8b0-7bde24535d95, Name: wiki-help, Type: project, ReviewWithComment: false | Id: 550eaba9-39e8-48f7-b8b0-7bde24535d95, Name: wiki-help, Type: project, ReviewWithComment: false | ||
Id: a162cb5b-d09b-4a34-a4a8-818a9a0f32de, Name: wiki-help-branch, Type: branch, Parent: 550eaba9-39e8-48f7-b8b0-7bde24535d95 | Id: a162cb5b-d09b-4a34-a4a8-818a9a0f32de, Name: wiki-help-branch, Type: branch, Parent: 550eaba9-39e8-48f7-b8b0-7bde24535d95 | ||
Если указать тип ветки, то в результате | |||
Если указать тип ветки, то в результате также вернётся список снимков в данной ветке | |||
svacer container list --id 6367355f-bcf7-4f3a-a9dc-00ec8b0d7806 --type branch | svacer container list --id 6367355f-bcf7-4f3a-a9dc-00ec8b0d7806 --type branch | ||
{"Containers":[{"id":"87193c7b-6fb9-4eb5-bf55-d7e88e2cfc25","name":"snapshotname","type":"snapshot","parent":"6367355f-bcf7-4f3a-a9dc-00ec8b0d7806"}]} | {"Containers":[{"id":"87193c7b-6fb9-4eb5-bf55-d7e88e2cfc25","name":"snapshotname","type":"snapshot","parent":"6367355f-bcf7-4f3a-a9dc-00ec8b0d7806"}]} | ||
=== Редактирование ветки, проекта или группы проектов === | === Редактирование ветки, проекта или группы проектов === | ||
Для изменения названия ветки или | Для изменения названия ветки или настроек проекта существует команда <code>svacer container update</code>. Для изменения надо передать ID объекта, новое имя и опцию для проекта. | ||
svacer container update --name wiki-help_changed --id 550eaba9-39e8-48f7-b8b0-7bde24535d95 --review-with-comment | svacer container update --name wiki-help_changed --id 550eaba9-39e8-48f7-b8b0-7bde24535d95 --review-with-comment | ||
... | ... | ||
2024-10-15T14:55:20.043+0300 info Редактирование завершено | 2024-10-15T14:55:20.043+0300 info Редактирование завершено | ||
В | |||
В stdout результат операции представлен с новыми значениями | |||
{"Containers":[{"id":"550eaba9-39e8-48f7-b8b0-7bde24535d95","name":"wiki-help_changed","type":"project","review_with_comment":true}]} | {"Containers":[{"id":"550eaba9-39e8-48f7-b8b0-7bde24535d95","name":"wiki-help_changed","type":"project","review_with_comment":true}]} | ||
=== Клонирование ветки или проекта === | === Клонирование ветки или проекта === | ||
Клонирование осуществляется командой <code>svacer container clone</code> с указанием типа объекта (<code>project</code> или <code>branch</code>), объекта клонирования (через <code>--parent</code>) | Клонирование осуществляется командой <code>svacer container clone</code> с указанием типа объекта (<code>project</code> или <code>branch</code>), объекта клонирования (через <code>--parent</code>) и имени клонированного объекта с дополнительными параметрами (группы проектов и обязательности комментария). Клонирование ветки происходит с ожиданием окончания, а завершения клонирование проекта по умолчанию не ожидается. Для ожидания можно использовать параметр <code>--wait</code>. | ||
svacer container clone --name wiki-help_clone --parent 550eaba9-39e8-48f7-b8b0-7bde24535d95 --review-with-comment true --type project | |||
svacer container clone --name wiki-help_clone --parent 550eaba9-39e8-48f7-b8b0-7bde24535d95 --review-with-comment true --type project | |||
... | ... | ||
2024-10-15T15:09:00.012+0300 info Клонирование проекта запущено | 2024-10-15T15:09:00.012+0300 info Клонирование проекта запущено | ||
При этом выводится ID задачи клонирования, для большого проекта можно её отменить | При этом выводится ID задачи клонирования, для большого проекта можно её отменить | ||
{ | { | ||
"id": "7c3fae83-ba42-450f-af71-91400f50c2fc" | "id": "7c3fae83-ba42-450f-af71-91400f50c2fc" | ||
} | } | ||
Проекты клонируются в порядке очерёдности на сервере, два клонирования проектов | |||
Проекты клонируются в порядке очерёдности на сервере, два клонирования проектов параллельно не запускаются. | |||
==== Получение состояния и отмена текущей задачи клонирования ==== | ==== Получение состояния и отмена текущей задачи клонирования ==== | ||
Подкомандами <code>status</code> и <code>cancel</code> можно отменить | Подкомандами <code>status</code> и <code>cancel</code> можно получить или отменить результаты клонирования. Параметры соединения с сервером и данные пользователя надо указывать между <code>clone</code> и подкомандой. | ||
svacer container clone {host/user settings} status --id cd143fd6-17df-4259-a020-f54982040e09 | svacer container clone {host/user settings} status --id cd143fd6-17df-4259-a020-f54982040e09 | ||
Для статуса будет содержать информацию по всем клонированным веткам в проекте. | |||
Для статуса вывод будет содержать информацию по всем клонированным веткам в проекте. | |||
=== Управление снимками === | === Управление снимками === | ||
Снимки можно переименовывать и удалять. Создание снимков происходит только при | Снимки можно переименовывать и удалять. Создание снимков происходит только при импорте извне. | ||
==== Переименование и удаление снимков ==== | ==== Переименование и удаление снимков ==== | ||
Подкомандами <code>rename</code> и <code>remove</code> можно переименовать или удалить снимок. Для переименования достаточно указать текущий ID снимка и новое название. Для удаления можно | Подкомандами <code>rename</code> и <code>remove</code> можно переименовать или удалить снимок. Для переименования достаточно указать текущий ID снимка и новое название. Для удаления можно указать только ID снимка, или проект/ветку/снимок. | ||
svacer container snapshot rename --id 87193c7b-6fb9-4eb5-bf55-d7e88e2cfc25 --name hahah | |||
svacer container snapshot rename --id 87193c7b-6fb9-4eb5-bf55-d7e88e2cfc25 --name hahah | |||
В данном случае результат операции не печатается, но его можно проверить через команду <code>svacer container list</code>. | В данном случае результат операции не печатается, но его можно проверить через команду <code>svacer container list</code>. | ||
==== [ЭКСПЕРИМЕНТАЛЬНО] Слияние снимков ==== | ==== [ЭКСПЕРИМЕНТАЛЬНО] Слияние снимков ==== | ||
Операция слияния снимков позволяет объединить несколько снимков в один командой <code>svacer container snapshot merge</code>. В неё передаётся список снимков для слияния, название результирующего снимка и дополнительные опции (типа удалять ли старые снимки). | |||
svacer container snapshot merge --snapshot {snap1_id} --snapshot {snap2_id} --snapshot {snap3_id} --branch {branch_id} --name target_branch | |||
svacer container snapshot merge --snapshot {snap1_id} --snapshot {snap2_id} --snapshot {snap3_id} --branch {branch_id} --name target_branch | |||
=== Управление группами проектов === | === Управление группами проектов === | ||
Это опциональный способ группировки проектов: проекты можно как добавить в несколько групп, так и не добавлять ни в одну, поэтому управление группами выделено в отдельный набор команд. Для управления необходимо, чтобы объекты уже существовали на сервере. | |||
==== Добавление проекта в группу ==== | |||
Можно передавать как ID объектов, так и их названия. Добавление в группу проектов происходит командой <code>add</code> | |||
svacer container project-groups add --project {project_id} --project-group {project_group_id} | |||
==== | ==== Удаление проекта из группы ==== | ||
Удаление проекта из группы происходит с помощью команды <code>remove</code> | |||
svacer container project-groups remove --project {project_id} --project-group {project_group_id} | |||
svacer container project-groups remove --project { |
Latest revision as of 14:37, 29 October 2024
Описание и примеры использования управления контейнерами в Svacer
Управление разными видами контейнеров пользователь может осуществлять через команды svacer container
при наличии соответствующих доступов. Команды можно использовать в скриптах, возвращаемые значения обычно выводятся в виде JSON в stdout поток, что позволяет получать и использовать ID объекты в скриптах.
В примерах для краткости не указываются параметры доступа к серверу и аккаунт пользователя, а вывод приведён с сокращениями.
Актуальную информацию по командам можно посмотреть напрямую через вызов svacer <command> --help
.
Добавление ветки, проекта или группы проектов
Добавление нового контейнера осуществляется командой svacer container add
c указанием названия и типа создаваемого объекта: project
, branch
, project-group
. Например, так создаётся пустой проект
svacer container add --name wiki-help --type project ... 2024-10-15T14:23:56.922+0300 info Project добавлен
В терминале также будет вывод с JSON-строкой следующего вида
{"Containers":[{"id":"550eaba9-39e8-48f7-b8b0-7bde24535d95","name":"wiki-help","type":"project"}]}
Для создания ветки надо указать проект в которые её добавлять, для этого используется опция --parent
svacer container add --name wiki-help-branch --type branch --parent 550eaba9-39e8-48f7-b8b0-7bde24535d95
В терминале также будет вывод с JSON-строкой результата действия
{"Containers":[{"id":"a162cb5b-d09b-4a34-a4a8-818a9a0f32de","name":"wiki-help-branch","type":"branch","parent":"550eaba9-39e8-48f7-b8b0-7bde24535d95"}]}
При создании проекта можно указать параметр --review-with-comment
для создания проекта с обязательным комментарием при изменении разметки. Если параметр не передавать, проект создаётся без этого требования.
Удаление ветки, проекта или группы проектов
Удаление контейнера осуществляется командой svacer container remove
c указанием ID и типа удаляемого объекта: project
, branch
, project-group
. Например, так удаляется проект
svacer container remove --id 550eaba9-39e8-48f7-b8b0-7bde24535d95 --type project ... 2024-10-15T14:34:48.725+0300 info Удаление завершено
В терминале также будет вывод с JSON-строкой следующего вида
{"Containers":[{"id":"550eaba9-39e8-48f7-b8b0-7bde24535d95","name":"wiki-help","type":"project"}]}
Список веток, проектов или групп проектов
С помощью команды svacer container list
можно просмотреть связи между контейнерами. С помощью опции --name
можно ограничить возвращаемые значения, например запрос по wiki
без указания типа, вернёт все контейнеры с именем, содержащим это значение
svacer container list --name wiki {"Containers":[{"id":"550eaba9-39e8-48f7-b8b0-7bde24535d95","name":"wiki-help","type":"project"},{"id":"a162cb5b-d09b-4a34-a4a8-818a9a0f32de","name":"wiki-help-branch","type":"branch","parent":"550eaba9-39e8-48f7-b8b0-7bde24535d95"}]}
Если добавить опцию --format text
, то возвращаемое значение будет отформатировано к такому виду
Id: 550eaba9-39e8-48f7-b8b0-7bde24535d95, Name: wiki-help, Type: project, ReviewWithComment: false Id: a162cb5b-d09b-4a34-a4a8-818a9a0f32de, Name: wiki-help-branch, Type: branch, Parent: 550eaba9-39e8-48f7-b8b0-7bde24535d95
Если указать тип ветки, то в результате также вернётся список снимков в данной ветке
svacer container list --id 6367355f-bcf7-4f3a-a9dc-00ec8b0d7806 --type branch {"Containers":[{"id":"87193c7b-6fb9-4eb5-bf55-d7e88e2cfc25","name":"snapshotname","type":"snapshot","parent":"6367355f-bcf7-4f3a-a9dc-00ec8b0d7806"}]}
Редактирование ветки, проекта или группы проектов
Для изменения названия ветки или настроек проекта существует команда svacer container update
. Для изменения надо передать ID объекта, новое имя и опцию для проекта.
svacer container update --name wiki-help_changed --id 550eaba9-39e8-48f7-b8b0-7bde24535d95 --review-with-comment ... 2024-10-15T14:55:20.043+0300 info Редактирование завершено
В stdout результат операции представлен с новыми значениями
{"Containers":[{"id":"550eaba9-39e8-48f7-b8b0-7bde24535d95","name":"wiki-help_changed","type":"project","review_with_comment":true}]}
Клонирование ветки или проекта
Клонирование осуществляется командой svacer container clone
с указанием типа объекта (project
или branch
), объекта клонирования (через --parent
) и имени клонированного объекта с дополнительными параметрами (группы проектов и обязательности комментария). Клонирование ветки происходит с ожиданием окончания, а завершения клонирование проекта по умолчанию не ожидается. Для ожидания можно использовать параметр --wait
.
svacer container clone --name wiki-help_clone --parent 550eaba9-39e8-48f7-b8b0-7bde24535d95 --review-with-comment true --type project ... 2024-10-15T15:09:00.012+0300 info Клонирование проекта запущено
При этом выводится ID задачи клонирования, для большого проекта можно её отменить
{ "id": "7c3fae83-ba42-450f-af71-91400f50c2fc" }
Проекты клонируются в порядке очерёдности на сервере, два клонирования проектов параллельно не запускаются.
Получение состояния и отмена текущей задачи клонирования
Подкомандами status
и cancel
можно получить или отменить результаты клонирования. Параметры соединения с сервером и данные пользователя надо указывать между clone
и подкомандой.
svacer container clone {host/user settings} status --id cd143fd6-17df-4259-a020-f54982040e09
Для статуса вывод будет содержать информацию по всем клонированным веткам в проекте.
Управление снимками
Снимки можно переименовывать и удалять. Создание снимков происходит только при импорте извне.
Переименование и удаление снимков
Подкомандами rename
и remove
можно переименовать или удалить снимок. Для переименования достаточно указать текущий ID снимка и новое название. Для удаления можно указать только ID снимка, или проект/ветку/снимок.
svacer container snapshot rename --id 87193c7b-6fb9-4eb5-bf55-d7e88e2cfc25 --name hahah
В данном случае результат операции не печатается, но его можно проверить через команду svacer container list
.
[ЭКСПЕРИМЕНТАЛЬНО] Слияние снимков
Операция слияния снимков позволяет объединить несколько снимков в один командой svacer container snapshot merge
. В неё передаётся список снимков для слияния, название результирующего снимка и дополнительные опции (типа удалять ли старые снимки).
svacer container snapshot merge --snapshot {snap1_id} --snapshot {snap2_id} --snapshot {snap3_id} --branch {branch_id} --name target_branch
Управление группами проектов
Это опциональный способ группировки проектов: проекты можно как добавить в несколько групп, так и не добавлять ни в одну, поэтому управление группами выделено в отдельный набор команд. Для управления необходимо, чтобы объекты уже существовали на сервере.
Добавление проекта в группу
Можно передавать как ID объектов, так и их названия. Добавление в группу проектов происходит командой add
svacer container project-groups add --project {project_id} --project-group {project_group_id}
Удаление проекта из группы
Удаление проекта из группы происходит с помощью команды remove
svacer container project-groups remove --project {project_id} --project-group {project_group_id}