[SCM] Debian package checker branch, lab-refactor, updated. 2.5.3-152-g96fd86a
The following commit has been merged in the lab-refactor branch:
commit 96fd86a73843b94cffeec5088b01d90035908b25
Author: Niels Thykier <niels@thykier.net>
Date: Thu Oct 27 17:45:42 2011 +0200
harness: Removed changed packages and add new ones
Also added missing "open_lab" and "close_lab" around the modifications
the to lab.
With these changes the "full-run" style run should work again.
Signed-off-by: Niels Thykier <niels@thykier.net>
diff --git a/reporting/harness b/reporting/harness
index ef970f5..a0111e3 100755
--- a/reporting/harness
+++ b/reporting/harness
@@ -121,22 +121,51 @@ unless ($opt_f || $opt_c) {
}
unless ($opt_r) {
+ $LAB->open_lab;
my @manifests = local_mirror_manifests ($LINTIAN_ARCHIVEDIR, [_trim_split ($LINTIAN_DIST)],
[_trim_split ($LINTIAN_AREA)], [_trim_split ($LINTIAN_ARCH)]);
my @diffs = $LAB->generate_diff (@manifests);
# Remove old/stale packages from the lab
-
foreach my $diff (@diffs) {
my $type = $diff->type;
- foreach my $removed (@{ $diff->removed }) {
- my @keys = @$removed;
- my $entry = $LAB->get_package ($type, @keys);
+ Log ("Removing old or changed $type packages from the lab");
+ foreach my $removed (@{ $diff->removed }, @{ $diff->changed }) {
+ my ($pkg_name, $pkg_version, $pkg_arch) = @$removed;
+ my $entry = $LAB->get_package ($type, @$removed);
+ if ($entry) {
+ my $arch = '';
+ $arch = " [$pkg_arch]" if $pkg_arch;
+ $entry->delete_lab_entry or
+ Log ("Removing $pkg_name ($pkg_version) $arch failed.");
+ }
+ }
+ Log ("Adding new and changed $type packages to the lab");
+ foreach my $added (@{ $diff->added }, @{ $diff->changed }) {
+ my ($pkg_name, $pkg_version, $pkg_arch) = @$added;
+ my $man = $diff->nlist;
+ my $me = $man->get (@$added);
+ my $file = $me->{'file'};
+ # We cannot use @$added here, since $pkg_arch must be present (even if undef)
+ # when passing the $file parameter.
+ my $entry = $LAB->get_package ($type, $pkg_name, $pkg_version, $pkg_arch, $file);
if ($entry) {
- $entry->delete_lab_entry;
+ my $ok = 0;
+ my $arch = '';
+ $arch = " [$pkg_arch]" if $pkg_arch;
+ eval {
+ $entry->create_entry;
+ $entry->update_status_file or
+ die "creating status file: $!";
+ $ok = 1;
+ };
+ Log ("Adding $pkg_name ($pkg_version) $arch failed: $@")
+ unless $ok;
}
}
}
+ # Flushes the changed manifest to the file system - croaks on error
+ $LAB->close_lab;
}
--
Debian package checker
Reply to: