Help:CLI/management/containers: Difference between revisions

From Svacer Wiki
(описание команд из svacer container)
 
m (several markup and spelling fixes)
 
Line 1: Line 1:
== Описание и примеры использования управления контейнерами в svacer ==
== Описание и примеры использования управления контейнерами в Svacer ==
Управление разными видами контейнеров может осуществлять пользователь при наличии соответствующих доступов через команды <code>svacer container</code>. Команды можно использовать в скриптах, возвращаемые значения обычно выводятся в виде JSON в <code>stdout</code> поток, что позволяет получать и использовать ID объекты в скриптах.  
Управление разными видами контейнеров пользователь может осуществлять через команды <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 строкой следующего вида
 
В терминале также будет вывод с 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 строкой результата действия:
 
В терминале также будет вывод с 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>--review-with-comment</code> для создания проекта с обязательным комментарием при изменении разметки. Если параметр не передавать, проект создаётся без этого требования.


=== Удаление ветки, проекта или группы проектов ===
=== Удаление ветки, проекта или группы проектов ===
Удаление контейнера осуществляется командой <code>svacer container remove</code> c указанием ID и типа удаляемого объекта: <code>project</code>, <code>branch</code>, <code>project-group</code>. Например так удаляется проект  
Удаление контейнера осуществляется командой <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 строкой следующего вида
 
В терминале также будет вывод с 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>
С помощью команды <code>svacer container list</code> можно просмотреть связи между контейнерами. С помощью опции <code>--name</code> можно ограничить возвращаемые значения, например запрос по <code>wiki</code> без указания типа, вернёт все контейнеры с именем, содержащим это значение
  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"}]}
  {"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 объекта, новое имя и опцию для проекта.  
Для изменения названия ветки или настроек проекта существует команда <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    Редактирование завершено
В <code>stdout</code> результат операции представлен с новыми значениями
 
В 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>--wait</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>clone</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 снимка и новое название. Для удаления можно так же указать только 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>. В неё передаётся список снимков для слияния, названия результирующего снимка и дополнительные опции (типа удалять ли старые снимки).
Операция слияния снимков позволяет объединить несколько снимков в один командой <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}


==== Добавление проекта в группу проектов ====
==== Удаление проекта из группы ====
Можно передавать как ID объектов, так и их названия. Добавление в групп проектов происходит такой командой
Удаление проекта из группы происходит с помощью команды <code>remove</code>
svacer container project-groups add --project {prj_id} --project-group {project_group_id}


==== Удалить проект из группы проектов ====
  svacer container project-groups remove --project {project_id} --project-group {project_group_id}
Удаление из группы происходит практически таким же образом, но с помощью команды <code>remove</code>
  svacer container project-groups remove --project {prj_id} --project-group {project_group_id}

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}