[devel] следующий шаг интеграции prometheus2.0 и альтовой инфраструктуры

Stanislav Ievlev stanislav.ievlev на gmail.com
Вт Дек 15 10:11:50 UTC 2009


Наверное лучше всего если бы сборочная (и не только) инфраструктура
предоставляла бы хуки, которыми мог бы пользоваться и prometeus и
другие средства, например gitorius. В этом случае можно было бы не
использовать никаких промежуточных форматов, а писать изменения прямо
в базу, если это требуется.

14 декабря 2009 г. 20:16 пользователь Igor Zubkov
<igor.zubkov на gmail.com> написал:
> Hi!
>
> В текущий момент обновление одного бранча на prometheus.altlinux.org
> достаточно ёмкая задача по времени (выдержка из лога):
> import src.rpm's
> 2009-12-14 05:15:05 +0300
> 2009-12-14 05:23:14 +0300
> import i586.rpm's
> 2009-12-14 05:23:14 +0300
> 2009-12-14 05:32:59 +0300
> import noarch.rpm's
> 2009-12-14 05:32:59 +0300
> 2009-12-14 05:40:23 +0300
> import x86_64.rpm's
> 2009-12-14 05:40:23 +0300
> 2009-12-14 05:49:32 +0300
>
> Итого, 34 минуты. А ещё надо ACLи обновить:
> import acls
> 2009-12-14 05:49:32 +0300
> 2009-12-14 05:51:48 +0300
>
> Ещё две минуты. Всего 36 минут. И это только для одного бранча (в
> данном случае -- Сизиф). А надо ещё 5 таких обработать. Это слишком не
> рентабельно по скорости и потребляемым ресурсам. И банально просто не
> удобно т.к. раньше чем через сутки не видно изменений на сайте (это
> относится к пакетам только, ACL'и обновляется каждый час).
>
> Предлагаю доделать к сборочнице немного доп.функций для лёгкой
> интеграции с prometheus2.0:
> 1) в папке с архивом сборки (или будет более правильно, задания)
> (например, http://git.altlinux.org/tasks/archive/done/17030/) добавить
> файл prometheus.log для парсинга prometehus2.0. О формате чуть позже.
> 2) после успешной сборки задания, делать pingback на сайт
> prometheus.a.o. примерно вот так:
> wget -c "http://prometheus.altlinux.org/pingback/номерзадания/prometheus.status"
> далее, если в prometheus.status написано "ok" больше ничего не делать.
> В противном случае, прийти через (к примеру) час.
>
> О формате prometheus.log:
> 1) одна строка -- одна команда
> 2) команд сколько угодно
> 3) команды всегда большими
>
> Формат prometheus.log для парсинга:
> 1) удаление пакета:
> DELETE <бранч> <поле имя (Name:) из src.rpm> <кем (логин)>
> Пример:
> DELETE sisyphus nexuiz icesik
>
> 2) добавление нового пакета в репозиторий:
> NEW <бранч> <поле имя (Name:) из src.rpm> <version> <release> <кем (логин)>
> Пример:
> NEW sisyphus nexuiz 2.5.2 alt1 icesik
>
> Так как зная имя src.rpm нельзя быстро узнать список пакетов которые
> собраны из него, то придётся их указывать:
> PACKAGE <бранч> <поле имя (Name:) из src.rpm> <arch> <имя бинарного
> пакета (поле Name: из него)>
> Пример:
> PACKAGE sisyphus nexuiz i586 nexuiz-client-sdl
> PACKAGE sisyphus nexuiz i586 nexuiz-client-glx
> PACKAGE sisyphus nexuiz i586 nexuiz-client-common
> PACKAGE sisyphus nexuiz i586 nexuiz-server
>
> 3) обновление пакета:
> UPDATE <бранч> <поле имя (Name:) из src.rpm> <version> <release> <кем (логин)>
> Пример:
> UPDATE sisyphus nexuiz 2.5.2 alt1 icesik
>
> Так как зная имя src.rpm нельзя быстро узнать список пакетов которые
> собраны из него, то придётся их указывать:
> PACKAGE <бранч> <поле имя (Name:) из src.rpm> <arch> <имя бинарного
> пакета (поле Name: из него)>
> Пример:
> PACKAGE sisyphus nexuiz i586 nexuiz-client-sdl
> PACKAGE sisyphus nexuiz i586 nexuiz-client-glx
> PACKAGE sisyphus nexuiz i586 nexuiz-client-common
> PACKAGE sisyphus nexuiz i586 nexuiz-server
>
> 4) изменение ACL:
> ACL <branch> <package name> (ADD|DELETE) login
> Пример:
> ACL sisyphus nexuiz ADD icesik
>
> Это черновик того что охота (скорее я всё таки что-то забыл). Ну как?
> Изменения в prometheus2.0 для поддержки такого я готов написать.
> Осталось найти того кто напишет такое для girar.
>
> Предлагаю обсудить это всё.
>
> --
> Igor Zubkov
> http://hi.im/ice
> _______________________________________________
> Devel mailing list
> Devel на lists.altlinux.org
> https://lists.altlinux.org/mailman/listinfo/devel


Подробная информация о списке рассылки Devel