[Fedora-security-commits] fedora-security/tools/scripts check-updates, 1.5, 1.6

fedora-security-commits at redhat.com fedora-security-commits at redhat.com
Tue Aug 26 06:38:22 UTC 2008


Author: thoger

Update of /cvs/fedora/fedora-security/tools/scripts
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv11622/tools/scripts

Modified Files:
	check-updates 
Log Message:
fix check-updates to work with new bodhi JSON output, no more text blob parsing



Index: check-updates
===================================================================
RCS file: /cvs/fedora/fedora-security/tools/scripts/check-updates,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- check-updates	25 Apr 2008 13:12:25 -0000	1.5
+++ check-updates	26 Aug 2008 06:37:52 -0000	1.6
@@ -10,6 +10,8 @@
 use Libexig::Audit;
 use Libexig::Bodhi;
 
+use Data::Dumper;
+
 my $debug= 1; 
 
 # Parse the audit file
@@ -46,22 +48,29 @@
 
 	# Go through the updates
 	foreach my $u (Libexig::Bodhi::get_updates ($entry->{component})) {
+		# pre-process update info structure for easier look-up
+		map {
+			$u->{'_bugs_hash'}->{$_->{'bz_id'}}= $_
+			} @{ $u->{'bugs'} };
+		map {
+			$u->{'_builds_hash'}->{$_->{'package'}->{'name'}}->{$_->{'nvr'}}= $_
+			} @{ $u->{'builds'} };
 
 		if (
 			# See if the VULNERABLE bug was referenced by an update	
 			(defined($entry->{'bug'})  &&
-			 defined($u->{'_Bugs'}->{$entry->{bug}}) )  ||
+			 defined($u->{'_bugs_hash'}->{$entry->{'bug'}}) )  ||
 
 			# See if since Update ID was found
 			(defined($update_id)  &&
-			 defined($u->{'Update ID'})  &&
-			 $u->{'Update ID'} eq $update_id )  ||
+			 defined($u->{'updateid'})  &&
+			 $u->{'updateid'} eq $update_id )  ||
 
 			# See if since NVR was found
-			# TODO: check also higher NVRs to deal with obsoleted update
-			# requests?
+			# TODO: check also higher NVRs to deal with obsoleted update requests?
 			(defined($update_nvr)  &&
-			 scalar(grep($_ eq $update_nvr, @{ $u->{'_NVRs'} })) > 0)
+			 defined($u->{'_builds_hash'}->{$entry->{'component'}})  &&
+			 defined($u->{'_builds_hash'}->{$entry->{'component'}}->{$update_nvr}) )
 			) {
 			;		# update was found, do nothing
 		} else {
@@ -69,23 +78,23 @@
 		}
 
 		if ($debug) {
-			print "  -> Found: ", grep(/^$entry->{component}-/, @{ $u->{'_NVRs'} });
+			print "  -> Found: ", keys(%{ $u->{'_builds_hash'}->{$entry->{'component'}} });
 		}
 		
 		# Modify the line accordingly
-		if (defined($u->{'Update ID'})) {
-			$entry->{'since'}= $u->{'Update ID'};
+		if (defined($u->{'updateid'})) {
+			$entry->{'since'}= $u->{'updateid'};
 			if ($debug) {
-				print " ($u->{'Update ID'})";
+				print " ($u->{'updateid'})";
 			}
 		}
-		if ($u->{'Status'} eq 'stable') {
-			$entry->{status}= 'fixed';
+		if ($u->{'status'} eq 'stable') {
+			$entry->{'status'}= 'fixed';
 		}
 		Libexig::Audit::update_entry ($entry);
 
 		if ($debug) {
-			print " - status: $u->{'Status'}\n";
+			print " - status: $u->{'status'}\n";
 		}
 
 		last;




More information about the Fedora-security-commits mailing list