common/tools/bitops.pl
changeset 1164 5fcaa694186a
parent 1163 b1b8e71b0c52
child 1170 f15fa527df95
equal deleted inserted replaced
1163:b1b8e71b0c52 1164:5fcaa694186a
    61   - sources_short (VALUE)
    61   - sources_short (VALUE)
    62   - envinfo (TOOL,VERSION)
    62   - envinfo (TOOL,VERSION)
    63   - failure (CATEGORY,COUNT)
    63   - failure (CATEGORY,COUNT)
    64   - report (NAME,URL,TYPE)
    64   - report (NAME,URL,TYPE)
    65   - content (NAME,URL,REVISION)
    65   - content (NAME,URL,REVISION)
       
    66   - baseline (TYPE,PATH)
    66   - label (VALUE)
    67   - label (VALUE)
    67 _EOH
    68 _EOH
    68 	exit(0);
    69 	exit(0);
    69 }
    70 }
    70 
    71 
    73 my $builds_entry = {};
    74 my $builds_entry = {};
    74 my $envinfo = [];
    75 my $envinfo = [];
    75 my $failures = [];
    76 my $failures = [];
    76 my $reports = [];
    77 my $reports = [];
    77 my $content = [];
    78 my $content = [];
       
    79 my $baselines = [];
    78 my $labels = [];
    80 my $labels = [];
    79 my $testing_entry = {};
    81 my $testing_entry = {};
    80 
    82 
    81 sub ConnectToDB()
    83 sub ConnectToDB()
    82 {
    84 {
   204         {
   206         {
   205           print "ERROR: Could not understand value of content: \"$value\"\n";
   207           print "ERROR: Could not understand value of content: \"$value\"\n";
   206           return 1;
   208           return 1;
   207         }
   209         }
   208       }
   210       }
       
   211       elsif ($attr =~ /^(baseline)$/i)
       
   212       {
       
   213         $attr = lc($attr);
       
   214         if ($value =~ /([^,]*),([^,]*)/)
       
   215         {
       
   216           my $type = $1;
       
   217           my $path = $2;
       
   218           
       
   219           if (!$type || !$path)
       
   220           {
       
   221             print "ERROR: Type or path empty: \"$value\"\n";
       
   222             return 1;
       
   223           }
       
   224           print " found ($type,$path) for table 'baselines'\n" if ($verbose);
       
   225           push(@{$baselines}, {type=>$type, path=>$path});
       
   226         }
       
   227         else
       
   228         {
       
   229           print "ERROR: Could not understand value of baseline: \"$value\"\n";
       
   230           return 1;
       
   231         }
       
   232       }
   209       elsif ($attr =~ /^(label)$/i)
   233       elsif ($attr =~ /^(label)$/i)
   210       {
   234       {
   211         print " found ($attr,$value) for table 'labels'\n" if ($verbose);
   235         print " found ($attr,$value) for table 'labels'\n" if ($verbose);
   212         push(@{$labels}, {label=>$value});
   236         push(@{$labels}, {label=>$value});
   213       }
   237       }
   328       print " execute '$name, $url, $revision'\n" if ($verbose);  
   352       print " execute '$name, $url, $revision'\n" if ($verbose);  
   329       $query->execute($name, $url, $revision)
   353       $query->execute($name, $url, $revision)
   330 		    or print "WARNING: Couldn't execute insert into content ($name,$url,$revision): " . $db->errstr() . "\n" if (!$dryrun);
   354 		    or print "WARNING: Couldn't execute insert into content ($name,$url,$revision): " . $db->errstr() . "\n" if (!$dryrun);
   331     }
   355     }
   332   }
   356   }
       
   357   if (@{$baselines})
       
   358   {
       
   359     print " prepare_cached 'insert into baselines (build_id,type,path) values ($newbuildid,?,?)'\n" if ($verbose);
       
   360     my $query = $db->prepare_cached("insert into baselines (build_id,type,path) values ($newbuildid,?,?)")
       
   361       or die("Couldn't prepare query insert into baselines: " . $db->errstr()) if (!$dryrun);
       
   362       
       
   363     for my $entry (@{$baselines})
       
   364     {
       
   365       my $type = $entry->{type};
       
   366       my $path = $entry->{path};
       
   367     
       
   368       print " execute '$type, $path'\n" if ($verbose);  
       
   369       $query->execute($type, $path)
       
   370 		    or print "WARNING: Couldn't execute insert into baselines ($type,$path): " . $db->errstr() . "\n" if (!$dryrun);
       
   371     }
       
   372   }
   333   if (@{$labels})
   373   if (@{$labels})
   334   {
   374   {
   335     print " prepare_cached 'insert into labels (build_id,label) values ($newbuildid,?)'\n" if ($verbose);
   375     print " prepare_cached 'insert into labels (build_id,label) values ($newbuildid,?)'\n" if ($verbose);
   336     my $query = $db->prepare_cached("insert into labels (build_id,label) values ($newbuildid,?)")
   376     my $query = $db->prepare_cached("insert into labels (build_id,label) values ($newbuildid,?)")
   337       or die("Couldn't prepare query insert into labels: " . $db->errstr()) if (!$dryrun);
   377       or die("Couldn't prepare query insert into labels: " . $db->errstr()) if (!$dryrun);
   466       print " execute '$name,$url,$revision'\n" if ($verbose);  
   506       print " execute '$name,$url,$revision'\n" if ($verbose);  
   467       $query->execute($name, $url, $revision)
   507       $query->execute($name, $url, $revision)
   468 		    or print "WARNING: Couldn't execute insert into content ($name,$url,$revision): " . $db->errstr() . "\n" if (!$dryrun);
   508 		    or print "WARNING: Couldn't execute insert into content ($name,$url,$revision): " . $db->errstr() . "\n" if (!$dryrun);
   469     }
   509     }
   470   }
   510   }
       
   511   if (@{$baselines})
       
   512   {
       
   513     print " prepare 'delete from baselines where build_id=$id'\n" if ($verbose);
       
   514     my $delete_query = $db->prepare("delete from baselines where build_id=$id")
       
   515       or die("Couldn't prepare query delete from baselines: " . $db->errstr()) if (!$dryrun);
       
   516     
       
   517     print " execute ''\n" if ($verbose);  
       
   518     $delete_query->execute()
       
   519 		    or print "WARNING: Couldn't execute delete from baselines: " . $db->errstr() . "\n" if (!$dryrun);
       
   520     
       
   521     print " prepare 'insert into baselines (build_id,type,path) values ($id,?,?)'\n" if ($verbose);
       
   522     my $query = $db->prepare_cached("insert into baselines (build_id,type,path) values ($id,?,?)")
       
   523       or die("Couldn't prepare query insert into baselines: " . $db->errstr()) if (!$dryrun);
       
   524       
       
   525     for my $entry (@{$baselines})
       
   526     {
       
   527       my $type = $entry->{type};
       
   528       my $path = $entry->{path};
       
   529     
       
   530       print " execute '$type,$path'\n" if ($verbose);  
       
   531       $query->execute($type, $path)
       
   532 		    or print "WARNING: Couldn't execute insert into baselines ($type,$path): " . $db->errstr() . "\n" if (!$dryrun);
       
   533     }
       
   534   }
   471   if (@{$labels})
   535   if (@{$labels})
   472   {
   536   {
   473     print " prepare 'delete from labels where build_id=$id'\n" if ($verbose);
   537     print " prepare 'delete from labels where build_id=$id'\n" if ($verbose);
   474     my $delete_query = $db->prepare("delete from labels where build_id=$id")
   538     my $delete_query = $db->prepare("delete from labels where build_id=$id")
   475       or die("Couldn't prepare query delete from labels: " . $db->errstr()) if (!$dryrun);
   539       or die("Couldn't prepare query delete from labels: " . $db->errstr()) if (!$dryrun);