X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=daklib%2Fdbconn.py;h=7c1feed635c49a34b616aa548b8ccb1362d914cf;hb=0d52859a59eec1f7bda3cdbd9cf2894ca280fa66;hp=9617bb77a6a00241a77e3bb7332f8336d9bd11a2;hpb=df6e3e5f79788962ecb9f2d283ef640c6fef0301;p=dak.git diff --git a/daklib/dbconn.py b/daklib/dbconn.py index 9617bb77..7c1feed6 100644 --- a/daklib/dbconn.py +++ b/daklib/dbconn.py @@ -1850,6 +1850,26 @@ __all__.append('get_sections') ################################################################################ +class SignatureHistory(ORMObject): + @classmethod + def from_signed_file(cls, signed_file): + """signature history entry from signed file + + @type signed_file: L{daklib.gpg.SignedFile} + @param signed_file: signed file + + @rtype: L{SignatureHistory} + """ + self = cls() + self.fingerprint = signed_file.primary_fingerprint + self.signature_timestamp = signed_file.signature_timestamp + self.contents_sha1 = signed_file.contents_sha1() + return self + +__all__.append('SignatureHistory') + +################################################################################ + class SrcContents(ORMObject): def __init__(self, file = None, source = None): self.file = file @@ -2544,6 +2564,7 @@ class DBConn(object): 'policy_queue_byhand_file', 'priority', 'section', + 'signature_history', 'source', 'source_metadata', 'src_associations', @@ -2609,7 +2630,8 @@ class DBConn(object): mapper(ACLPerSource, self.tbl_acl_per_source, properties = dict( acl = relation(ACL), - fingerprint = relation(Fingerprint), + fingerprint = relation(Fingerprint, primaryjoin=(self.tbl_acl_per_source.c.fingerprint_id == self.tbl_fingerprint.c.id)), + created_by = relation(Fingerprint, primaryjoin=(self.tbl_acl_per_source.c.created_by_id == self.tbl_fingerprint.c.id)), )) mapper(Archive, self.tbl_archive, @@ -2687,7 +2709,8 @@ class DBConn(object): mapper(Keyring, self.tbl_keyrings, properties = dict(keyring_name = self.tbl_keyrings.c.name, - keyring_id = self.tbl_keyrings.c.id)) + keyring_id = self.tbl_keyrings.c.id, + acl = relation(ACL, primaryjoin=(self.tbl_keyrings.c.acl_id == self.tbl_acl.c.id)))), mapper(DBChange, self.tbl_changes, properties = dict(change_id = self.tbl_changes.c.id, @@ -2761,6 +2784,8 @@ class DBConn(object): properties = dict(section_id = self.tbl_section.c.id, section=self.tbl_section.c.section)) + mapper(SignatureHistory, self.tbl_signature_history) + mapper(DBSource, self.tbl_source, properties = dict(source_id = self.tbl_source.c.id, version = self.tbl_source.c.version,