[devel] I: смена acl по итогам переклички
Igor Vlasenko
vlasenko на imath.kiev.ua
Ср Фев 15 22:46:58 MSK 2017
Уважаемые коллеги,
по итогам переклички предлагаю через 3 дня выполнить
следующий скрипт для смены acl:
http://repocop.altlinux.org/pub/acl-change/change_acl.txt
код его генератора и использованные базы можно посмотреть в
http://repocop.altlinux.org/pub/acl-change/MIA.tar.xz
Вот псевдокод логики скрипта:
($LEADER5 - бд пакетов. где есть по факту новый лидер - более пол года,
сделал 5 заливок подряд на этот пакет,
$missing_in_action - список выбывших
$flag_buildfail - пакет не собирается
$watch - пакет надо обновить
$everybody - в acl есть @everybody
foreach my $pkgname {
next unless $missing_in_action{$leader};
if ($missing_in_action_flag{$leader}==0) {
print "# $pkgname: $leader is gone.\n";
select_new_leader($pkgname);
} elsif ($flag_buildfail{$pkgname} or $watch{$pkgname}) {
print "# $pkgname: $leader is missing.\n";
print "# $pkgname: package does not rebuild lately (see beehive-logs).\n" if $flag_buildfail{$pkgname};
print "# $pkgname: package needs update (see watch.altlinux.org)\n" if $watch{$pkgname};
select_new_leader($pkgname);
} elsif ($LEADER5{$pkgname}) {
print "# $pkgname: $leader is not active while package is managed by $LEADER5{$pkgname}->[1].\n";
acl_set_leader($pkgname, $LEADER5{$pkgname}->[1]);
} elsif (!$everybody{$pkgname}) {
# KEEP
print "# $pkgname: $leader is not active, package needs \@everybody.\n";
acl_add($pkgname, '@everybody');
} else {
# KEEP
}
}
--
I V
Подробная информация о списке рассылки Devel