__all__.append('DSCFile')
+def get_dscfiles(dscfile_id=None, source_id=None, poolfile_id=None, session=None):
+ """
+ Returns a list of DSCFiles which may be empty
+
+ @type dscfile_id: int (optional)
+ @param dscfile_id: the dscfile_id of the DSCFiles to find
+
+ @type source_id: int (optional)
+ @param source_id: the source id related to the DSCFiles to find
+
+ @type poolfile_id: int (optional)
+ @param poolfile_id: the poolfile id related to the DSCFiles to find
+
+ @rtype: list
+ @return: Possibly empty list of DSCFiles
+ """
+
+ if session is None:
+ session = DBConn().session()
+
+ q = session.query(DSCFile)
+
+ if dscfile_id is not None:
+ q = q.filter_by(dscfile_id=dscfile_id)
+
+ if source_id is not None:
+ q = q.filter_by(source_id=source_id)
+
+ if poolfile_id is not None:
+ q = q.filter_by(poolfile_id=poolfile_id)
+
+ return q.all()
+
+__all__.append('get_dscfiles')
+
################################################################################
class PoolFile(object):
__all__.append('check_poolfile')
+def get_poolfile_by_id(file_id, session=None):
+ """
+ Returns a PoolFile objects or None for the given id
+
+ @type file_id: int
+ @param file_id: the id of the file to look for
+
+ @rtype: PoolFile or None
+ @return: either the PoolFile object or None
+ """
+
+ if session is None:
+ session = DBConn().session()
+
+ q = session.query(PoolFile).filter_by(file_id=file_id)
+
+ if q.count() > 0:
+ return q.one()
+
+ return None
+
+__all__.append('get_poolfile_by_id')
+
def get_poolfile_by_name(filename, location_id=None, session=None):
"""
__all__.append('QueueBuild')
-def get_queue_build(filename, suite_id, session=None):
+def get_queue_build(filename, suite, session=None):
"""
- Returns QueueBuild object for given C{filename} and C{suite id}.
+ Returns QueueBuild object for given C{filename} and C{suite}.
@type filename: string
@param filename: The name of the file
- @type suiteid: int
- @param suiteid: Suite ID
+ @type suiteid: int or str
+ @param suiteid: Suite name or ID
@type session: Session
@param session: Optional SQLA session object (a temporary one will be
"""
if session is None:
session = DBConn().session()
- q = session.query(QueueBuild).filter_by(filename=filename).filter_by(suite_id=suite_id)
+ if isinstance(suite, int):
+ q = session.query(QueueBuild).filter_by(filename=filename).filter_by(suite_id=suite)
+ else:
+ q = session.query(QueueBuild).filter_by(filename=filename)
+ q = q.join(Suite).filter_by(suite_name=suite)
+
if q.count() == 0:
return None
return q.one()