[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

[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: