aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPascal Terjan <pterjan@gmail.com>2016-01-24 16:27:22 +0000
committerPascal Terjan <pterjan@gmail.com>2016-01-24 16:27:22 +0000
commit4344da4d360b4a41e05e9fd3fd8eb25984f544ae (patch)
treeb68729031246b7de3a640a8377f15f3749733e05
parent17761a28681612c11fcb62091625790810782971 (diff)
downloadiurt-4344da4d360b4a41e05e9fd3fd8eb25984f544ae.tar
iurt-4344da4d360b4a41e05e9fd3fd8eb25984f544ae.tar.gz
iurt-4344da4d360b4a41e05e9fd3fd8eb25984f544ae.tar.bz2
iurt-4344da4d360b4a41e05e9fd3fd8eb25984f544ae.tar.xz
iurt-4344da4d360b4a41e05e9fd3fd8eb25984f544ae.zip
Fix passing of a hash a function parameter
-rwxr-xr-xemi4
-rw-r--r--lib/Iurt/Emi.pm39
2 files changed, 22 insertions, 21 deletions
diff --git a/emi b/emi
index fa5035e..b9d93eb 100755
--- a/emi
+++ b/emi
@@ -132,11 +132,11 @@ foreach my $target (keys %targets) {
foreach my $prefix (@{$targets{$target}{$media}{to_upload}}) {
next if $is_finisher{$prefix};
- upload_prefix_in_media($prefix, $media);
+ upload_prefix_in_media($config, \%pkg_tree, $prefix, $media);
}
foreach my $prefix (keys %is_finisher) {
- upload_prefix_in_media($prefix, $media, 1);
+ upload_prefix_in_media($config, \%pkg_tree, $prefix, $media, 1);
}
foreach my $prefix (@{$targets{$target}{$media}{to_upload}}) {
diff --git a/lib/Iurt/Emi.pm b/lib/Iurt/Emi.pm
index cce3aed..1bf595c 100644
--- a/lib/Iurt/Emi.pm
+++ b/lib/Iurt/Emi.pm
@@ -91,24 +91,25 @@ sub find_prefixes_ready_to_upload {
}
sub upload_prefix_in_media {
- my ($config, %pkg_tree, $prefix, $media, $o_finish) = @_;
+ my ($config, $pkg_tree, $prefix, $media, $o_finish) = @_;
+
my $todo = "$config->{queue}/todo";
my $done = "$config->{queue}/done";
my $reject = "$config->{queue}/rejected";
my (@packages, @duplicate_packages);
my ($user) = $prefix =~ /\d{14}\.(\w+)\.\w+\.\d+$/;
- my $target = $pkg_tree{$prefix}{target};
+ my $target = $pkg_tree->{$prefix}{target};
my $youri_file = "$prefix.youri";
- if ($pkg_tree{$prefix}{media}{$media}{uploaded}) {
+ if ($pkg_tree->{$prefix}{media}{$media}{uploaded}) {
$youri_file .= "." . time();
}
- my $path = $pkg_tree{$prefix}{media}{$media}{path};
+ my $path = $pkg_tree->{$prefix}{media}{$media}{path};
plog('OK', "all mandatory archs done: $prefix");
- foreach my $rpm (@{$pkg_tree{$prefix}{media}{$media}{rpms}}) {
- my $rpmpath = "$done/$path/${prefix}_$rpm";
- if ($pkg_tree{$prefix}{media}{$media}{uploaded}) {
+ foreach my $rpm (@{$pkg_tree->{$prefix}{media}{$media}{rpms}}) {
+ my $rpmpath = "$done$path/${prefix}_$rpm";
+ if ($pkg_tree->{$prefix}{media}{$media}{uploaded}) {
# if already uploaded for mandatory arches, do not try to upload again src or noarch packages
# but still remember these duplicate files for removal
if (my ($type) = $rpm =~ /\.(noarch|src)\.rpm$/) {
@@ -124,23 +125,23 @@ sub upload_prefix_in_media {
$user ||= $config->{upload_user};
# FIXME we want to skip all post, we should not hardcode them here
my $skip = $o_finish ? "" : "--skip-post genhdlist2 --skip-post mirror --skip-post clean_rpmsrate";
- my $command = "/usr/bin/perl -I/usr/share/mga-youri-submit/lib /usr/share/mga-youri-submit/bin/youri-submit --verbose --config /etc/youri/submit-upload.conf --define user=$user --define prefix=$prefix --define section=$media $skip $target @packages &> $done/$path/$youri_file";
+ my $command = "/usr/bin/perl -I/usr/share/mga-youri-submit/lib /usr/share/mga-youri-submit/bin/youri-submit --verbose --config /etc/youri/submit-upload.conf --define user=$user --define prefix=$prefix --define section=$media $skip $target @packages &> $done$path/$youri_file";
plog('DEBUG', "running $command");
if (!system($command)) {
plog('INFO', "upload succeeded");
} else {
# should send a mail or something
- plog('ERROR', "upload failed ($!), rejecting files in $reject/$path/");
- make_path("$reject/$path");
- foreach my $rpm (@{$pkg_tree{$prefix}{media}{$media}{rpms}}) {
- link("$done/$path/${prefix}_$rpm", "$reject/$path/${prefix}_$rpm") or plog('ERROR', "ERROR: link of $rpm failed ($!)");
+ plog('ERROR', "upload failed ($!), rejecting files in $reject$path/");
+ make_path("$reject$path");
+ foreach my $rpm (@{$pkg_tree->{$prefix}{media}{$media}{rpms}}) {
+ link("$done$path/${prefix}_$rpm", "$reject$path/${prefix}_$rpm") or plog('ERROR', "ERROR: link of $rpm failed ($!)");
}
- link("$done/$path/$youri_file", "$reject/$path/$youri_file");
+ link("$done$path/$youri_file", "$reject$path/$youri_file");
my ($user) = $prefix =~ /\d{14}\.(\w+)\.\w+\.\d+/;
if ($user) {
- my @pkgs = grep { !/src\.rpm$/ } @{$pkg_tree{$prefix}{media}{$media}{rpms}};
+ my @pkgs = grep { !/src\.rpm$/ } @{$pkg_tree->{$prefix}{media}{$media}{rpms}};
my $text = join("\n", qq(The upload of the following packages failed:\n), map { "- $_" } @pkgs) . "\n";
my $rpms = join(' ', @pkgs, undef);
my $to = get_author_email($user) || "Unknown <$config->{admin}>";
@@ -157,20 +158,20 @@ sub upload_prefix_in_media {
# unlink the sources rpm unless some non mandatory arch still need to be done
my $all_done = 1;
- if (!defined($pkg_tree{$prefix}{media}{$media}{arch}{noarch})) {
+ if (!defined($pkg_tree->{$prefix}{media}{$media}{arch}{noarch})) {
my $arch_list = find { ref($_) eq 'ARRAY' } $config->{arch}, (ref($config->{arch}) eq 'HASH' ? ($config->{arch}{$target}, $config->{arch}{default}) : ());
my @arch_list = $arch_list ? @$arch_list : keys %{$config->{bot}};
# 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}{arch}{$arch};
$all_done = 0;
}
}
if ($all_done) {
- foreach (@{$pkg_tree{$prefix}{srpms}}) {
- plog('DEBUG', "unlink $todo/$path/${prefix}_$_");
- unlink("$todo/$path/${prefix}_$_");
+ foreach (@{$pkg_tree->{$prefix}{srpms}}) {
+ plog('DEBUG', "unlink $todo$path/${prefix}_$_");
+ unlink("$todo$path/${prefix}_$_");
}
}
}