from inspect import getargspec
-from sqlalchemy import create_engine, Table, MetaData, select
+from sqlalchemy import create_engine, Table, MetaData
from sqlalchemy.orm import sessionmaker, mapper, relation
# Don't remove this, we re-export the exceptions to scripts which import us
# Session is last argument in args
session = args[-1]
if session is None:
+ args = list(args)
session = args[-1] = DBConn().session()
private_transaction = True
# them (if one doesn't already exist)
for dsc_file in changes.dsc_files.keys():
# Skip all files except orig tarballs
+ from daklib.regexes import re_is_orig_source
if not re_is_orig_source.match(dsc_file):
continue
# Skip orig files not identified in the pool
__all__.append('Queue')
@session_wrapper
-def get_queue(queuename, session=None):
+def get_or_set_queue(queuename, session=None):
"""
- Returns Queue object for given C{queue name}.
+ Returns Queue object for given C{queue name}, creating it if it does not
+ exist.
@type queuename: string
@param queuename: The name of the queue
q = session.query(Queue).filter_by(queue_name=queuename)
try:
- return q.one()
+ ret = q.one()
except NoResultFound:
- return None
+ queue = Queue()
+ queue.queue_name = queuename
+ session.add(queue)
+ session.commit_or_flush()
+ ret = queue
+
+ return ret
-__all__.append('get_queue')
+__all__.append('get_or_set_queue')
################################################################################