[Collab-qa-commits] r822 - in svnbuildstat/trunk: lib/SvnBuildStat script

goneri at alioth.debian.org goneri at alioth.debian.org
Sun Apr 27 12:46:58 UTC 2008


Author: goneri
Date: 2008-04-27 12:46:56 +0000 (Sun, 27 Apr 2008)
New Revision: 822

Modified:
   svnbuildstat/trunk/lib/SvnBuildStat/Common.pm
   svnbuildstat/trunk/script/svnbuildstat_import-new-report.pl
Log:
save the qajob log

Modified: svnbuildstat/trunk/lib/SvnBuildStat/Common.pm
===================================================================
--- svnbuildstat/trunk/lib/SvnBuildStat/Common.pm	2008-04-27 01:53:05 UTC (rev 821)
+++ svnbuildstat/trunk/lib/SvnBuildStat/Common.pm	2008-04-27 12:46:56 UTC (rev 822)
@@ -11,7 +11,7 @@
 require Exporter;
 
 our @ISA = "Exporter";
-our @EXPORT = qw(mkTarballFromChangelogentry updateRepositoryentryDebianversion checkRepositoryentryWatchfile testUrl mkRootdirectoryFromRepositoryentry getDataFromDebianFtp parseControl parseChangelog createTarballUrlFromTarballlayout getTODO getTarballURLWithWatchfile recurseMkdir updateLastBuildSymlink);
+our @EXPORT = qw(mkTarballFromChangelogentry updateRepositoryentryDebianversion checkRepositoryentryWatchfile testUrl mkRootdirectoryFromRepositoryentry getDataFromDebianFtp parseControl parseChangelog createTarballUrlFromTarballlayout getTODO getTarballURLWithWatchfile recurseMkdir updateLastBuildSymlink getQajobResultDirectory getFullQajobResultDirectory);
 
 our $archs = "(i386|m68k|sparc|alpha|powerpc|".
         "arm|mips|mipsel|hppa|ia64|s390|amd64|".
@@ -357,7 +357,7 @@
 #
 #}
 # return the local directory where to store the files created after a build
-sub getResultDirectory {
+sub getBuildResultDirectory {
     my $build = shift;
 
     my $buildDirectory = '/'.$$build->changelogentry_id->repositoryentry_id->repository_id->team_id->shortname.'/'.$$build->changelogentry_id->repositoryentry_id->sourcepackage_id->name.'/'.$$build->changelogentry_id->repositoryentry_id->changelogentry_id->id.'/build/'.$$build->id;
@@ -365,10 +365,10 @@
     return $buildDirectory;
 }
 
-sub getFullResultDirectory {
+sub getFullBuildResultDirectory {
     my $build = shift;
     
-    my $resultdirectory = getResultDirectory($build);
+    my $resultdirectory = getBuildResultDirectory($build);
     return unless $resultdirectory;
 
     my $cfg = Config::IniFiles->new( -file => $ENV{HOME}."/.svnbuildstat.ini" ) or die "can't load config file";
@@ -378,10 +378,34 @@
     return $staticdir.'/files'.$resultdirectory;
 }
 
+sub getQajobResultDirectory {
+    my $qajob = shift;
+
+    my $qajobDirectory = '/'.$$qajob->changelogentry_id->repositoryentry_id->repository_id->team_id->shortname.'/'.$$qajob->changelogentry_id->repositoryentry_id->sourcepackage_id->name.'/'.$$qajob->changelogentry_id->repositoryentry_id->changelogentry_id->id.'/qajob/'.$$qajob->id;
+
+    return $qajobDirectory;
+}
+
+sub getFullQajobResultDirectory {
+    my $qajob = shift;
+    
+    my $qajobDirectory = getQajobResultDirectory($qajob);
+    return unless $qajobDirectory;
+
+    my $cfg = Config::IniFiles->new( -file => $ENV{HOME}."/.svnbuildstat.ini" ) or die "can't load config file";
+    my $staticdir = $cfg->val('path', 'staticdir');
+
+    return $staticdir.'/files'.$qajobDirectory;
+}
+
+
+
+
+
 sub updateLastBuildSymlink {
     my $build = shift;
 
-    my $resultdirectory = getResultDirectory($build);
+    my $resultdirectory = getBuildResultDirectory($build);
     return unless $resultdirectory;
 
     my $cfg = Config::IniFiles->new( -file => $ENV{HOME}."/.svnbuildstat.ini" ) or die "can't load config file";

Modified: svnbuildstat/trunk/script/svnbuildstat_import-new-report.pl
===================================================================
--- svnbuildstat/trunk/script/svnbuildstat_import-new-report.pl	2008-04-27 01:53:05 UTC (rev 821)
+++ svnbuildstat/trunk/script/svnbuildstat_import-new-report.pl	2008-04-27 12:46:56 UTC (rev 822)
@@ -136,20 +136,20 @@
   $build->buildisok ($infofile->{build} eq "ok"?"true":"false");
   $build->duration($infofile->{'stamp_build-end'}-$infofile->{'stamp_build-start'});
 
-  my $fullResultDirectory = SvnBuildStat::Common::getFullResultDirectory(\$build);
-  my $debTargetDirectory = $fullResultDirectory."/deb";
-#  my $explodedTargetDirectory = $fullResultDirectory."/exploded";
-  recurseMkdir($fullResultDirectory);
+  my $fullBuildResultDirectory = SvnBuildStat::Common::getFullBuildResultDirectory(\$build);
+  my $debTargetDirectory = $fullBuildResultDirectory."/deb";
+#  my $explodedTargetDirectory = $fullBuildResultDirectory."/exploded";
+  recurseMkdir($fullBuildResultDirectory);
   recurseMkdir($debTargetDirectory);
 #  recurseMkdir($explodedTargetDirectory);
-#  if (!-d $fullResultDirectory || !-d $debTargetDirectory || !-d $explodedTargetDirectory) {
-  if (!-d $fullResultDirectory || !-d $debTargetDirectory) {
+#  if (!-d $fullBuildResultDirectory || !-d $debTargetDirectory || !-d $explodedTargetDirectory) {
+  if (!-d $fullBuildResultDirectory || !-d $debTargetDirectory) {
     print("recuseMkdir failed\n");
     info("recurseMkdir failed");
     return;
   }
-  copy ($dir.'/'.$infofile->{logfile}, $fullResultDirectory."/build.log") or warn;
-  copy ($File::Find::name, $fullResultDirectory."/build.info") or warn;
+  copy ($dir.'/'.$infofile->{logfile}, $fullBuildResultDirectory."/build.log") or warn;
+  copy ($File::Find::name, $fullBuildResultDirectory."/build.info") or warn;
 
 
   my @localfile;
@@ -210,9 +210,9 @@
   }
 
   
-  my $changelogentry = $schema->resultset('Qajob')->search(id => $infofile->{'qajob_id'}, cookie => $infofile->{'cookie'})->first;
+  my $qajob = $schema->resultset('Qajob')->search(id => $infofile->{'qajob_id'}, cookie => $infofile->{'cookie'})->first;
 
-  if (!$changelogentry) {
+  if (!$qajob) {
       #cleanUp ($dir, $infofile);
     return;
   }
@@ -227,10 +227,22 @@
       my $qaresultentry = $schema->resultset('Qaresultentry')->find_or_create(
           qatag_id => $qatag->id,
           text => $_->{qaresultentry},
-          qajob_id => $changelogentry->id
+          qajob_id => $qajob->id
       );
   }
 
+  print $infofile->{'logfile'}."\n";
+  if ($infofile->{'logfile'}) {
+      my $fullQajobResultDirectory =  getFullQajobResultDirectory(\$qajob);
+      if (!recurseMkdir ($fullQajobResultDirectory)) {
+        error("Failed to create $fullQajobResultDirectory");
+      }
+      if (copy ($dir.'/'.$infofile->{'logfile'}, $fullQajobResultDirectory.'/qajob.log')) {
+          $qajob->date("NOW");
+      } else {
+        error ("Failed to save log ".$dir.'/'.$infofile->{'logfile'});
+      }
+  }
 
   $qajob->date("NOW");
   $qajob->update;




More information about the Collab-qa-commits mailing list