--- rhn-clone-errata.py.v6	2010-03-19 08:39:08.000000000 +0800
+++ rhn-clone-errata.py	2010-03-19 14:45:54.000000000 +0800
@@ -460,6 +460,8 @@
 	    help="Format header for logfiles")
     parser.add_option("-v", "--verbose", action="store_true", dest="verbose", default=False)
     parser.add_option("-q", "--quiet", action="store_true", dest="quiet", default=False)
+    parser.add_option(      "--pedant", action="store_true", dest="pedant", default=False,
+            help="Refuse to create errata if the referenced packages are not found");
 
     (options,args) = parser.parse_args()
     return options 
@@ -550,6 +552,9 @@
 	print >>sys.stderr, "%s:CLONE:%s" % (dateToday, options.src_channel)
 
     for rhnErrata in myRHN.listChannelErrata(options.src_channel,dateStart,dateEnd,0):
+
+        found = False
+
 	if not options.quiet and not options.format:
             print rhnErrata['errata_advisory']
 
@@ -583,8 +588,10 @@
 				print "Hmmm... Package Missing: %s" % pkg['package_name']
 		        else:
 			    spwErrPackages.append(pkgFind[0]['id'])
+                            found = True
 		            break
 
+            if found is True:
 	    spwErrDetails = myRHN.getErrataDetails(rhnErrata['errata_advisory'],0)
             spwErrKeywords = myRHN.getErrataKeywords(rhnErrata['errata_advisory'],0)
 
@@ -632,6 +639,12 @@
 		    print "\tErrata Not Published!"
         else:
 	    if options.format:
+                    print "%s#Not creating errata as referenced packages not found#" % dateToday,
+                else:
+                    print "\tNot creating errata as referenced packages not found"
+
+        else:
+            if options.format:
 		print "%s#%s#Errata Already Exists" % (dateToday, spwErrataName)
             elif not options.quiet:
                 print "\tErrata Already Exists.  %s" % spwErrataName
@@ -639,4 +652,3 @@
 
 if __name__ == "__main__":
     main()
-
