X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;ds=sidebyside;f=daklib%2Fdbconn.py;h=4d1035c2d79d33934bb11facf9445ab13f49c0c1;hb=c25dc048881fdb6b2c7c8783dd1a49ba3cc90aeb;hp=e55c283daa58444193839cb50ffc7810337d2224;hpb=245fbc770e27419629ef80a6402941fc4ead7fe8;p=dak.git diff --git a/daklib/dbconn.py b/daklib/dbconn.py index e55c283d..4d1035c2 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: