Help:CLI/cleanup: Difference between revisions

From Svacer Wiki
m (minor fixes)
(cleanup add info)
(5 intermediate revisions by 2 users not shown)
Line 8: Line 8:
=== Добавление нового правила удаления ===
=== Добавление нового правила удаления ===


<nowiki>svacer server cleanup add-rule --project <project id or name> --branch <branch id or name> --snapshot <snapshot id or name> --time <time> --max-snapshots <max snapshots in branch></nowiki>
<code>svacer server cleanup add-rule --project <project id or name> --branch <branch id or name> --snapshot <snapshot id or name> --time <nowiki><time></nowiki></code>


Где:
Где:
Line 14: Line 14:
* branch — ветка в которой искать снимки для удаления
* branch — ветка в которой искать снимки для удаления
* snapshot — снимки которые удалять
* snapshot — снимки которые удалять
* time — время, которое должно пройти после создания снимка, чтобы его удалить. Задается в формате Go Duration (например <code>33h5m</code>). По умолчанию 720 часов (30 дней)
* time — время сколько должно пройти после создания снимка, чтобы его удалить, задается в формате Go Duration (например 33h5m). По умолчанию 720 часов (30 дней)
* max-snapshots — верхняя граница по количеству снимков в ветке. Если снимков > max, удаляются самые старые, чтобы осталось ровно max (time не учитывается). Удаляются снимки, только подходящие под паттерн project\branch\snapshot, но количество снимков считается во всей ветке (вне зависимости от того, подходит ли снимок под паттерн project\branch\snapshot или нет). При значении = 0 данное правило не работает. По умолчанию имеет значение 0. Данный флаг появился в версии 12-0-0.


Флаги для проекта, ветки и снимка можно задавать как имя либо как ID, также в имени может быть знак *, который равен "любому количеству любых символов". Если данные флаги не заданы, то автоматически подставляется * (любой проект, ветка, снимок).
Флаги для проекта, ветки и снимка можно задавать как имя либо как ID, также в имени может быть знак *, который равен "любому количеству любых символов". Если данные флаги не заданы, то автоматически подставляется * (любой проект, ветка, снимок).
 
С версии 12-0-0 в опциях <code>add-rule</code> и <code>add-prohibition</code> можно задавать регулярные выражения: для этого нужно в начале написать <code>re:</code> и следующая часть будет считаться регулярным выражением (в этом случае нужно будет указывать <code>.*</code> вместо <code>*</code>).


=== Добавление запрета на удаление ===
=== Добавление запрета на удаление ===


svacer server cleanup add-prohibition --project <project id or name> --branch <branch id or name> --snapshot <snapshot id or name> --min-snapshots <min snapshots in branch>
<code>svacer server cleanup add-prohibition --project <project id or name> --branch <branch id or name> --snapshot <snapshot id or name></code>
 
Где:
 
* min-snapshots — нижняя граница по количеству снимков в ветке. Пока в ветке снимков ≤ min, в ветке ничего не удаляется правилами cleanup (данное правило применяется к ветке, если хотя бы один из снимков подошел под паттерн project\branch\snapshot). При значении = 0 данное правило не работает (и тогда устанавливается полный запрет на удаление снимков, подходящий под паттерн project\branch\snapshot). По умолчанию имеет значение 0. Данный флаг появился в версии 12-0-0.


Остальные флаги работают аналогично с <code>svacer server cleanup add-rule</code>
Флаги работают аналогично с <code>svacer server cleanup add-rule</code>


=== Удаление правила ===
=== Удаление правила ===
Line 40: Line 33:
=== Вывести таблицу ===
=== Вывести таблицу ===


svacer server cleanup list --type <rule|prohibition|log> --format <table|json>
<code>svacer server cleanup list --type <rule|prohibition|log> --format <table|json></code>


Где:
Где:
Line 50: Line 43:


=== Примеры ===
=== Примеры ===
'''Добавление нового правила'''
'''Добавление нового правила'''


svacer server cleanup add-rule --user admin --password admin --project Devel* --branch 2025 --time "240h"
<code>svacer server cleanup add-rule --user admin --password admin --project Devel* --branch 2025 --time "240h"</code>
 


'''Добавление запрета на удаление'''
'''Добавление запрета на удаление'''


svacer server cleanup add-prohibition --user admin --password admin --project Devel* --branch 2025 --snapshot test*
<code>svacer server cleanup add-prohibition --user admin --password admin --project Devel* --branch 2025 --snapshot test*</code>
 


'''Вывод данных таблиц'''
'''Вывод данных таблиц'''


svacer server cleanup list --user admin --password admin --type prohibition
<code>svacer server cleanup list --user admin --password admin --type prohibition</code>


Вывод:
[[File:Prohibition table.png|thumb|1017x1017px|none]]
[[File:Prohibition table.png|thumb|1017x1017px|none]]


svacer server cleanup list --user admin --password admin --type rule


Вывод:
<code>svacer server cleanup list --user admin --password admin --type rule</code>
[[File:Rules table.png|thumb|1012x1012px|none]]
[[File:Rules table.png|thumb|1012x1012px|none]]


svacer server cleanup list --user admin --password admin --type prohibition --format json
 
<code>svacer server cleanup list --user admin --password admin --type prohibition --format json</code>


Вывод:
Вывод:
[{"Branch":"2025","CreatedBy":"admin","CreatedById":"00000000-0000-0000-0000-000000000000","DeleteTime":0,"ID":"7e2c2a12-3fd4-4bb2-8b3a-1f80d81c3bc5","Project":"Devel*","Snapshot":"test*","create_time":"2025-02-24T09:06:53.794742Z"}]
 
<code>[{"Branch":"2025","CreatedBy":"admin","CreatedById":"00000000-0000-0000-0000-000000000000","DeleteTime":0,"ID":"7e2c2a12-3fd4-4bb2-8b3a-1f80d81c3bc5","Project":"Devel*","Snapshot":"test*","create_time":"2025-02-24T09:06:53.794742Z"}]</code>
 


'''Удаление элемента из таблицы'''
'''Удаление элемента из таблицы'''


svacer server cleanup delete --user admin --password admin --id 878d1d1a-db1a-42a4-9557-ef568f68cd3e
<code>svacer server cleanup delete --user admin --password admin --id 878d1d1a-db1a-42a4-9557-ef568f68cd3e</code>

Revision as of 14:53, 30 June 2025

Автоматическое удаление снимков

Удаление происходит раз в час, первое удаление всех подходящих снимков будет через 1 час после запуска сервера.

Применять может только пользователь с доступом ServerOperations.

Принцип работы: происходит проверка всех снимков на соответствие правилам удаления и правилам на запрет удаления, после этого происходит удаление и заносится отметка в таблицу удаленных снимков.

Если снимок не задан в запрещенных к удалению, то он будет удаляться по минимальному времени, среди всех подходящих для него правил.

Добавление нового правила удаления

svacer server cleanup add-rule --project <project id or name> --branch <branch id or name> --snapshot <snapshot id or name> --time <time>

Где:

  • project — проект в котором искать снимки для удаления
  • branch — ветка в которой искать снимки для удаления
  • snapshot — снимки которые удалять
  • time — время сколько должно пройти после создания снимка, чтобы его удалить, задается в формате Go Duration (например 33h5m). По умолчанию 720 часов (30 дней)

Флаги для проекта, ветки и снимка можно задавать как имя либо как ID, также в имени может быть знак *, который равен "любому количеству любых символов". Если данные флаги не заданы, то автоматически подставляется * (любой проект, ветка, снимок).

Добавление запрета на удаление

svacer server cleanup add-prohibition --project <project id or name> --branch <branch id or name> --snapshot <snapshot id or name>

Флаги работают аналогично с svacer server cleanup add-rule

Удаление правила

svacer server cleanup delete --id <config id>

Где:

  • id — id конфигурации из разрешенных к удалению или запрещенных к удалению

Вывести таблицу

svacer server cleanup list --type <rule|prohibition|log> --format <table|json>

Где:

  • type — тип таблицы, которую нужно вывести
  • rule — таблица удаляемых снимков
  • prohibition — таблица запрещенных к удалению
  • log — таблица удаленных снимков
  • format — формат вывода: table — таблица (человекочитаемый вывод), json

Примеры

Добавление нового правила

svacer server cleanup add-rule --user admin --password admin --project Devel* --branch 2025 --time "240h"


Добавление запрета на удаление

svacer server cleanup add-prohibition --user admin --password admin --project Devel* --branch 2025 --snapshot test*


Вывод данных таблиц

svacer server cleanup list --user admin --password admin --type prohibition


svacer server cleanup list --user admin --password admin --type rule


svacer server cleanup list --user admin --password admin --type prohibition --format json

Вывод:

[{"Branch":"2025","CreatedBy":"admin","CreatedById":"00000000-0000-0000-0000-000000000000","DeleteTime":0,"ID":"7e2c2a12-3fd4-4bb2-8b3a-1f80d81c3bc5","Project":"Devel*","Snapshot":"test*","create_time":"2025-02-24T09:06:53.794742Z"}]


Удаление элемента из таблицы

svacer server cleanup delete --user admin --password admin --id 878d1d1a-db1a-42a4-9557-ef568f68cd3e