Help:CLI/cleanup: Difference between revisions

From Svacer Wiki
(cleanup add max/min snapshots)
m (minor fixes)
 
Line 8: Line 8:
=== Добавление нового правила удаления ===
=== Добавление нового правила удаления ===


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


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


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


<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> --min-snapshots <min snapshots in branch>


Где:
Где:


* min-snapshots - нижняя граница по количеству снимков в ветке. Пока в ветке снимков ≤ min, в ветке ничего не удаляется правилами cleanup (данное правило применяется к ветке, если хотя бы один из снимков подошел под паттерн project\branch\snapshot). При значении = 0 данное правило не работает (и тогда устанавливается полный запрет на удаление снимков, подходящий под паттерн project\branch\snapshot). По умолчанию имеет значение 0. Данный флаг появился в версии 12-0-0.
* 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 40:
=== Вывести таблицу ===
=== Вывести таблицу ===


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


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


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


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


Вывод:
[[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>
 


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


<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

Latest revision as of 13:15, 2 September 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> --max-snapshots <max snapshots in branch>

Где:

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

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

С версии 12-0-0 в опциях add-rule и add-prohibition можно задавать регулярные выражения: для этого нужно в начале написать re: и следующая часть будет считаться регулярным выражением (в этом случае нужно будет указывать .* вместо *).

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

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>

Где:

  • min-snapshots — нижняя граница по количеству снимков в ветке. Пока в ветке снимков ≤ min, в ветке ничего не удаляется правилами cleanup (данное правило применяется к ветке, если хотя бы один из снимков подошел под паттерн project\branch\snapshot). При значении = 0 данное правило не работает (и тогда устанавливается полный запрет на удаление снимков, подходящий под паттерн project\branch\snapshot). По умолчанию имеет значение 0. Данный флаг появился в версии 12-0-0.

Остальные флаги работают аналогично с 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