X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=daklib%2Fdbconn.py;h=3fab31bc2204c966f7f80edd47ef44b0ec0cc37e;hb=2a10967af5974e4fa513d029fb995e122d90501a;hp=e55c283daa58444193839cb50ffc7810337d2224;hpb=245fbc770e27419629ef80a6402941fc4ead7fe8;p=dak.git diff --git a/daklib/dbconn.py b/daklib/dbconn.py index e55c283d..3fab31bc 100644 --- a/daklib/dbconn.py +++ b/daklib/dbconn.py @@ -1859,6 +1859,9 @@ class SignatureHistory(ORMObject): self.contents_sha1 = signed_file.contents_sha1() return self + def query(self, session): + return session.query(SignatureHistory).filter_by(fingerprint=self.fingerprint, signature_timestamp=self.signature_timestamp, contents_sha1=self.contents_sha1).first() + __all__.append('SignatureHistory') ################################################################################ @@ -2271,6 +2274,12 @@ class Suite(ORMObject): def path(self): return os.path.join(self.archive.path, 'dists', self.suite_name) + @property + def release_suite_output(self): + if self.release_suite is not None: + return self.release_suite + return self.suite_name + __all__.append('Suite') @session_wrapper @@ -2289,8 +2298,22 @@ def get_suite(suite, session=None): @return: Suite object for the requested suite name (None if not present) """ + # Start by looking for the dak internal name q = session.query(Suite).filter_by(suite_name=suite) + try: + return q.one() + except NoResultFound: + pass + + # Now try codename + q = session.query(Suite).filter_by(codename=suite) + try: + return q.one() + except NoResultFound: + pass + # Finally give release_suite a try + q = session.query(Suite).filter_by(release_suite=suite) try: return q.one() except NoResultFound: @@ -2628,6 +2651,7 @@ class DBConn(object): 'obsolete_any_associations', 'obsolete_any_by_all_associations', 'obsolete_src_associations', + 'package_list', 'source_suite', 'src_associations_bin', 'src_associations_src',