aboutsummaryrefslogtreecommitdiffstats
path: root/ulri
diff options
context:
space:
mode:
authorPascal Terjan <pterjan@mageia.org>2023-12-31 21:04:09 +0000
committerPascal Terjan <pterjan@mageia.org>2024-01-01 18:04:29 +0000
commitdece1249cfdf070c7f7fdd8e4eee099436d87ead (patch)
treece37185d43bdec8196bd7de1bc937e5ed6bf0118 /ulri
parent12b6bc689028cf3faff28f5a8d43da1c3c782fec (diff)
downloadiurt-dece1249cfdf070c7f7fdd8e4eee099436d87ead.tar
iurt-dece1249cfdf070c7f7fdd8e4eee099436d87ead.tar.gz
iurt-dece1249cfdf070c7f7fdd8e4eee099436d87ead.tar.bz2
iurt-dece1249cfdf070c7f7fdd8e4eee099436d87ead.tar.xz
iurt-dece1249cfdf070c7f7fdd8e4eee099436d87ead.zip
Add an utility to cancel a build
Usage: $ cancel_build 20231231211004.pterjan.duvel.1487312 *: [cancel_build] check uploads tree I: [cancel_build] check dir: /var/lib/schedbot/uploads/done I: [cancel_build] check dir: /var/lib/schedbot/uploads/todo I: [cancel_build] Failing 20231231211004.pterjan.duvel.1487312 and cleaning up done architectures I: [cancel_build] Killing process 1146007 on rabbit2 (building for arch "i586") I: [cancel_build] Killing process 2204767 on ecosse0 (building for arch "x86_64") I: [cancel_build] Killing process 3092253 on ociaa1-a (building for arch "aarch64") I: [cancel_build] Killing process 3092165 on ociaa1-b (building for arch "armv7hl")
Diffstat (limited to 'ulri')
-rwxr-xr-xulri136
1 files changed, 4 insertions, 132 deletions
diff --git a/ulri b/ulri
index 553fbd9..fe5ad84 100755
--- a/ulri
+++ b/ulri
@@ -21,14 +21,14 @@
use strict;
use MDK::Common qw(any cat_ if_ find);
-use Iurt::Config qw(config_usage get_date config_init get_author_email get_target_arch get_mandatory_arch);
+use Iurt::Config qw(get_date get_author_email get_target_arch get_mandatory_arch);
use Iurt::File qw(create_file);
use Iurt::Mail qw(sendmail);
use Iurt::Process qw(check_pid);
use Iurt::Queue qw(check_if_mandatory_arch_failed cleanup_failed_build get_upload_tree_state load_lock_file_data record_bot_complete schedule_next_retry);
use Iurt::RPM qw(check_arch check_noarch);
use Iurt::Util qw(plog_init plog ssh_setup ssh sout sget sput);
-use Iurt::Ulri qw(build_package fetch_logs_and_cleanup warn_about_failure);
+use Iurt::Ulri qw(build_package fetch_logs_and_cleanup load_config warn_about_failure);
use File::Copy 'move';
use File::Path 'make_path';
use File::Temp 'mktemp';
@@ -47,135 +47,7 @@ if (!$ENV{ULRI_LOG_FILE} || !open($LOG, '>>', $ENV{ULRI_LOG_FILE})) {
plog_init($program_name, $LOG, 7, 1);
-my $HOME = $ENV{HOME};
-my $configfile = "$HOME/.upload.conf";
-my $sysconfigfile = "/etc/iurt/upload.conf";
-
-my $config = {};
-foreach my $f ($configfile, $sysconfigfile) {
- plog('DEBUG', "load config: $f");
- if (-f $f) {
- $config = eval(cat_($f))
- or die "FATAL $program_name: syntax error in $f";
- last;
- }
-}
-
-my %config_usage = (
- admin => {
- desc => 'mail address of the bot administrator',
- default => 'distrib-admin@mandrivalinux.org'
- },
- 'arch_translation' => {
- desc => "Renaming of arch",
- default => { 'sparc64' => 'sparcv9' }
- },
- bot => {
- desc => "List of bot able to compile the packages",
- default => {
- i586 => {
- localhost => {
- iurt => {
- user => 'builder',
- command => qq(iurt --copy_srpm --group --config local_spool /home/builder/iurt/__DIR__ --no_rsync --chrooted-urpmi -m __MEDIA__ -- http://localhost/distrib/ -p "__PACKAGER__" -r __TARGET__ __ARCH__),
- packages => '/home/builder/iurt/',
- } ,
- },
- },
- },
- },
- media => {
- desc => 'Corresponding media to add given the current media',
- default => {
- default => {
- "core/backports" => [ "core/backports", "core/release", "core/updates" ],
- "core/backports_testing" => [
- "core/backports", "core/backports_testing",
- "core/release", "core/updates"
- ],
- "core/release" => [ "core/release" ],
- "core/updates" => [ "core/release", "core/updates" ],
- "core/updates_testing" => [
- "core/release", "core/updates", "core/updates_testing"
- ],
- "nonfree/backports" => [
- "core/backports", "core/release", "core/updates",
- "nonfree/backports", "nonfree/release", "nonfree/updates"
- ],
- "nonfree/backports_testing" => [
- "core/backports", "core/backports_testing",
- "core/release", "core/updates",
- "nonfree/backports", "nonfree/backports_testing",
- "nonfree/release", "nonfree/updates"
- ],
- "nonfree/release" => [ "core/release", "nonfree/release" ],
- "nonfree/updates" => [
- "core/release", "core/updates",
- "nonfree/release", "nonfree/updates"
- ],
- "nonfree/updates_testing" => [
- "core/release", "core/updates", "core/updates_testing",
- "nonfree/release", "nonfree/updates", "nonfree/updates_testing"
- ],
- "tainted/backports" => [
- "core/backports", "core/release", "core/updates",
- "tainted/backports", "tainted/release", "tainted/updates"
- ],
- "tainted/backports_testing" => [
- "core/backports", "core/backports_testing",
- "core/release", "core/updates",
- "tainted/backports", "tainted/backports_testing",
- "tainted/release", "tainted/updates"
- ],
- "tainted/release" => [ "core/release", "tainted/release" ],
- "tainted/updates" => [
- "core/release", "core/updates",
- "tainted/release", "tainted/updates"
- ],
- "tainted/updates_testing" => [
- "core/release", "core/updates", "core/updates_testing",
- "tainted/release", "tainted/updates", "tainted/updates_testing"
- ],
- },
- },
- },
- faildelay => {
- desc => "Time after which the rebuild is considered as a failure",
- default => 36000
- },
- http_queue => {
- desc => 'Address where log can be consulted',
- default => 'http://kenobi.mandriva.com/queue '
- },
- queue => {
- desc => "Root of the tree where the packages to compile are located",
- default => "$HOME/uploads"
- },
- tmp => {
- desc => "Temporary directory",
- default => "$HOME/tmp"
- },
- ssh_options => {
- desc => "SSH options",
- default => "-o ConnectTimeout=5 -o BatchMode=yes -o ServerAliveInterval=5"
- },
- packager => {
- desc => 'Default packager tag user by bot',
- default => 'Mageia Team <http://www.mageia.org>'
- },
- 'arch' => {
- desc => 'Architectures list for each target',
- default => {
- default => [ 'i586', 'x86_64' ],
- },
- },
- 'backoff_delays' => {
- desc => 'List of delays in seconds before retrying retriable errors. Error becomes permanent after reaching the end of the list.',
- default => [5*60, 30*60, 60*60, 120*60]
- },
-);
-config_usage(\%config_usage, $config) if $run{config_usage};
-config_init(\%config_usage, $config, \%run);
+my $config = load_config(\%run);
my %untranslated_arch;
foreach my $k (keys %{$config->{arch_translation}}) {
@@ -185,7 +57,7 @@ foreach my $k (keys %{$config->{arch_translation}}) {
$run{pidfile_home} = $config->{tmp};
$run{pidfile} = $program_name;
-my $pidfile = check_pid(\%run);
+my $pidfile = check_pid(\%run, 1);
my ($fulldate, $daydate) = get_date();