aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPascal Terjan <pterjan@gmail.com>2016-10-11 09:06:22 +0100
committerPascal Terjan <pterjan@gmail.com>2016-10-11 09:06:22 +0100
commitbe053c1ef4f64b106657902b3b37cd5e3c7ce22e (patch)
tree94d7ec814a374ac2e3835620fcdd22407c56117e
parentcc76f64e8faa77cfcc93a9d56f6b86cfd8cade10 (diff)
downloadiurt-be053c1ef4f64b106657902b3b37cd5e3c7ce22e.tar
iurt-be053c1ef4f64b106657902b3b37cd5e3c7ce22e.tar.gz
iurt-be053c1ef4f64b106657902b3b37cd5e3c7ce22e.tar.bz2
iurt-be053c1ef4f64b106657902b3b37cd5e3c7ce22e.tar.xz
iurt-be053c1ef4f64b106657902b3b37cd5e3c7ce22e.zip
Fix reuse of {arch} part of the tree
It is used by ulri for both builds in progress and already done, while emi expects it to be only for done ones. This causes to upload only part of mandatory arches and later reject the other.
-rw-r--r--NEWS2
-rw-r--r--lib/Iurt/Emi.pm4
-rw-r--r--lib/Iurt/Queue.pm4
-rw-r--r--t/emi_finisher.t4
-rw-r--r--t/emi_mandatory.t6
-rw-r--r--t/emi_non_mandatory.t10
-rwxr-xr-xulri4
7 files changed, 19 insertions, 15 deletions
diff --git a/NEWS b/NEWS
index 3d92b62..c877321 100644
--- a/NEWS
+++ b/NEWS
@@ -1,5 +1,7 @@
- emi: fix a bug where genhdlist2 was skipped when doing a secondary upload
containing a noarch at the same time as some other uploads
+- fix reuse of {arch} part of the tree which is used by ulri for both builds
+ in progress and already done, while emi expects it to be only for done ones
0.6.26
- ulri: when failing to send a build to a machine do not try sending all the
diff --git a/lib/Iurt/Emi.pm b/lib/Iurt/Emi.pm
index b1bc619..a0ed76e 100644
--- a/lib/Iurt/Emi.pm
+++ b/lib/Iurt/Emi.pm
@@ -44,7 +44,7 @@ sub find_prefixes_ready_to_upload {
foreach my $m (@wanted_archs, 'src') {
$pkg_tree{$prefix}{media}{$media}{excluded_arch}{$m} and next;
my $x = "yes";
- if (!$pkg_tree{$prefix}{media}{$media}{arch}{$m}) {
+ if (!$pkg_tree{$prefix}{media}{$media}{done_arch}{$m}) {
$missing{$m} = 1;
$x = "no";
$ok = 0;
@@ -177,7 +177,7 @@ sub upload_prefix_in_media {
# If we are here, mandatory arches are done, no need to check them
my $mandatory_arch = get_mandatory_arch($config, $target);
foreach my $arch (difference2(\@arch_list, $mandatory_arch)) {
- next if $pkg_tree->{$prefix}{media}{$media}{arch}{$arch};
+ next if $pkg_tree->{$prefix}{media}{$media}{done_arch}{$arch};
$all_done = 0;
}
}
diff --git a/lib/Iurt/Queue.pm b/lib/Iurt/Queue.pm
index bf1f4f6..f6907e6 100644
--- a/lib/Iurt/Queue.pm
+++ b/lib/Iurt/Queue.pm
@@ -181,7 +181,7 @@ sub get_upload_tree_state {
plog('DEBUG', "found already built rpm $rpm ($prefix) for media $media");
$pkg_tree{$prefix}{target} = $f;
if ($arch eq 'src') {
- $pkg_tree{$prefix}{media}{$media}{arch}{src} = 1;
+ $pkg_tree{$prefix}{media}{$media}{done_arch}{src} = 1;
}
push @{$pkg_tree{$prefix}{media}{$media}{rpms}} , $rpm;
push @{$pkg_tree{$prefix}{rpms}} , $rpm;
@@ -189,7 +189,7 @@ sub get_upload_tree_state {
my ($arch, $result) = ($1, $2);
plog('DEBUG', "found .$result ($prefix) for $arch");
if ($result eq 'done') {
- $pkg_tree{$prefix}{media}{$media}{arch}{$arch} = 1;
+ $pkg_tree{$prefix}{media}{$media}{done_arch}{$arch} = 1;
} elsif ($result eq 'excluded') {
$arch = $config->{arch_translation}{$arch} if $config->{arch_translation}{$arch};
$pkg_tree{$prefix}{media}{$media}{excluded_arch}{$arch} = 1;
diff --git a/t/emi_finisher.t b/t/emi_finisher.t
index b66a1be..8bfed63 100644
--- a/t/emi_finisher.t
+++ b/t/emi_finisher.t
@@ -12,7 +12,7 @@ my %pkg_tree = (
'target' => 'cauldron',
'media' => {
'core/release' => {
- 'arch' => {
+ 'done_arch' => {
'i586' => 1,
'x86_64' => 1,
'src' => 1
@@ -43,7 +43,7 @@ my %pkg_tree = (
'media' => {
'core/release' => {
'uploaded' => 1,
- 'arch' => {
+ 'done_arch' => {
'armv5tl' => 1,
'i586' => 1,
'x86_64' => 1,
diff --git a/t/emi_mandatory.t b/t/emi_mandatory.t
index e50d328..90ba2a2 100644
--- a/t/emi_mandatory.t
+++ b/t/emi_mandatory.t
@@ -12,7 +12,7 @@ my %pkg_tree = (
'target' => 'cauldron',
'media' => {
'core/release' => {
- 'arch' => {
+ 'done_arch' => {
'x86_64' => 1,
'src' => 1
},
@@ -34,7 +34,7 @@ my %pkg_tree = (
'target' => 'cauldron',
'media' => {
'core/release' => {
- 'arch' => {
+ 'done_arch' => {
'i586' => 1,
'x86_64' => 1,
'src' => 1
@@ -61,7 +61,7 @@ my %pkg_tree = (
'target' => 'cauldron',
'media' => {
'core/release' => {
- 'arch' => {
+ 'done_arch' => {
'x86_64' => 1,
'src' => 1
},
diff --git a/t/emi_non_mandatory.t b/t/emi_non_mandatory.t
index 8aa2c94..44031f6 100644
--- a/t/emi_non_mandatory.t
+++ b/t/emi_non_mandatory.t
@@ -28,7 +28,7 @@ my %pkg_tree = (
'target' => 'cauldron',
'media' => {
'core/release' => {
- 'arch' => {
+ 'done_arch' => {
'armv5tl' => 1,
'x86_64' => 1,
'src' => 1
@@ -58,7 +58,7 @@ my %pkg_tree = (
'target' => 'cauldron',
'media' => {
'core/release' => {
- 'arch' => {
+ 'done_arch' => {
'armv5tl' => 1,
'i586' => 1,
'x86_64' => 1,
@@ -93,7 +93,7 @@ my %pkg_tree = (
'target' => 'cauldron',
'media' => {
'core/release' => {
- 'arch' => {
+ 'done_arch' => {
'armv5tl' => 1,
'x86_64' => 1,
'src' => 1
@@ -127,7 +127,7 @@ my %pkg_tree = (
'media' => {
'core/release' => {
'uploaded' => 1,
- 'arch' => {
+ 'done_arch' => {
'armv5tl' => 1,
'i586' => 1,
'x86_64' => 1,
@@ -154,7 +154,7 @@ my %pkg_tree = (
'target' => 'cauldron',
'media' => {
'core/release' => {
- 'arch' => {
+ 'done_arch' => {
'x86_64' => 1,
'src' => 1
},
diff --git a/ulri b/ulri
index bd544b2..1e36f98 100755
--- a/ulri
+++ b/ulri
@@ -375,6 +375,7 @@ foreach my $prefix (keys %pkg_tree) {
if ($done) {
create_file("$done_dir/${prefix}_$arch.done", "$bot $host");
+ $pkg_tree{$prefix}{media}{$media}{done_arch}{$arch} = 1;
$success = 1;
}
@@ -491,9 +492,10 @@ foreach my $prefix (sort keys %pkg_tree) {
# need to find a bot for each arch
foreach my $arch (@arch_list) {
# Skip this arch if the package is already building as noarch or for this arch
- # or if it should not be built on this arch or it has already failed
+ # or if it should not be built on this arch or it has already failed or succeeded
next if $pkg_tree{$prefix}{media}{$media}{arch}{noarch};
next if $pkg_tree{$prefix}{media}{$media}{arch}{$arch};
+ next if $pkg_tree{$prefix}{media}{$media}{done_arch}{$arch};
next if $pkg_tree{$prefix}{media}{$media}{excluded_arch}{$arch};
next if $pkg_tree{$prefix}{media}{$media}{failed_arch}{$arch};