def run(self):
cnf = Config()
count = 1
- for directory in [ "Byhand", "Done", "New", "ProposedUpdates", "OldProposedUpdates" ]:
- checkdir = cnf["Dir::Queue::%s" % (directory) ]
+
+ dirs = []
+ dirs.append(cnf['Dir::Done'])
+
+ for queue_name in [ "byhand", "new", "proposedupdates", "oldproposedupdates" ]:
+ queue = get_policy_queue(queue_name)
+ if queue:
+ dirs.append(os.path.abspath(queue.path))
+ else:
+ utils.warn("Could not find queue %s in database" % queue_name)
+
+ for checkdir in dirs
if os.path.exists(checkdir):
print "Looking into %s" % (checkdir)
def usage(exit_code=0):
print """Usage: dak queue-report
-Prints a report of packages in queue directories (usually new and byhand).
+Prints a report of packages in queues (usually new and byhand).
-h, --help show this help and exit.
-8, --822 writes 822 formated output to the location set in dak.conf
# Initialize db so we can get the NEW comments
dbconn = DBConn()
- directories = [ ]
+ queue_names = [ ]
if Cnf.has_key("Queue-Report::Options::Directories"):
for i in Cnf["Queue-Report::Options::Directories"].split(","):
- directories.append(i)
+ queue_names.append(i)
elif Cnf.has_key("Queue-Report::Directories"):
- directories = Cnf.ValueList("Queue-Report::Directories")
+ queue_names = Cnf.ValueList("Queue-Report::Directories")
else:
- directories = [ "byhand", "new" ]
+ queue_names = [ "byhand", "new" ]
if Cnf.has_key("Queue-Report::Options::Rrd"):
rrd_dir = Cnf["Queue-Report::Options::Rrd"]
# Open the report file
f = open(Cnf["Queue-Report::ReportLocations::822Location"], "w")
- for directory in directories:
- changes_files = glob.glob("%s/*.changes" % (Cnf["Dir::Queue::%s" % (directory)]))
- process_changes_files(changes_files, directory, f, rrd_dir)
+ session = dbconn.session()
+
+ for queue_name in queue_names:
+ queue = get_policy_queue(queue_name, session)
+ if queue:
+ directory = os.path.abspath(queue.path)
+ changes_files = glob.glob("%s/*.changes" % (directory))
+ process_changes_files(changes_files, directory, f, rrd_dir)
+ else:
+ utils.warn("Cannot find queue %s" % queue_name)
if Cnf.has_key("Queue-Report::Options::822"):
f.close()
def is_unembargo(u):
session = DBConn().session()
- cnf = Config()
# If we dont have the disembargo queue we are not on security and so not interested
# in doing any security queue handling
- if not get_policy_queue("disembargo"):
+ disembargo_queue = get_policy_queue("disembargo")
+ if not disembargo_queue:
return False
# If we already are in newstage, then it means this just got passed through and accepted
session.close()
return True
- oldcwd = os.getcwd()
- os.chdir(cnf["Dir::Queue::Disembargo"])
- disdir = os.getcwd()
- os.chdir(oldcwd)
+ # Ensure we don't have a / on the end or something
+ disdir = os.path.abspath(disembargo_queue.path)
ret = False