X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=daklib%2Fdbconn.py;h=c16cb2f9921fbe6d0b7cd8b5f72c239441a13b36;hb=deb47b8c05bea0aa15a5316a54afde84b8cbcddc;hp=e9ae60e50b19b50b5cc59afc3b2d100e4bb572a5;hpb=64f216c03cada36d2568a3676b88551c5b1b8364;p=dak.git diff --git a/daklib/dbconn.py b/daklib/dbconn.py index e9ae60e5..c16cb2f9 100755 --- a/daklib/dbconn.py +++ b/daklib/dbconn.py @@ -381,6 +381,9 @@ class BinaryACL(object): def __init__(self, *args, **kwargs): pass + def __repr__(self): + return '' % self.binary_acl_id + __all__.append('BinaryACL') ################################################################################ @@ -389,6 +392,9 @@ class BinaryACLMap(object): def __init__(self, *args, **kwargs): pass + def __repr__(self): + return '' % self.binary_acl_map_id + __all__.append('BinaryACLMap') ################################################################################ @@ -843,6 +849,33 @@ class Fingerprint(object): __all__.append('Fingerprint') +@session_wrapper +def get_fingerprint(fpr, session=None): + """ + Returns Fingerprint object for given fpr. + + @type fpr: string + @param fpr: The fpr to find / add + + @type session: SQLAlchemy + @param session: Optional SQL session object (a temporary one will be + generated if not supplied). + + @rtype: Fingerprint + @return: the Fingerprint object for the given fpr or None + """ + + q = session.query(Fingerprint).filter_by(fingerprint=fpr) + + try: + ret = q.one() + except NoResultFound: + ret = None + + return ret + +__all__.append('get_fingerprint') + @session_wrapper def get_or_set_fingerprint(fpr, session=None): """ @@ -917,6 +950,17 @@ __all__.append('get_or_set_keyring') ################################################################################ +class KeyringACLMap(object): + def __init__(self, *args, **kwargs): + pass + + def __repr__(self): + return '' % self.keyring_acl_map_id + +__all__.append('KeyringACLMap') + +################################################################################ + class Location(object): def __init__(self, *args, **kwargs): pass @@ -1790,6 +1834,9 @@ class SourceACL(object): def __init__(self, *args, **kwargs): pass + def __repr__(self): + return '' % self.source_acl_id + __all__.append('SourceACL') ################################################################################ @@ -2117,6 +2164,9 @@ class UploadBlock(object): def __init__(self, *args, **kwargs): pass + def __repr__(self): + return '' % (self.source, self.upload_block_id) + __all__.append('UploadBlock') ################################################################################ @@ -2150,6 +2200,7 @@ class DBConn(Singleton): self.tbl_files = Table('files', self.db_meta, autoload=True) self.tbl_fingerprint = Table('fingerprint', self.db_meta, autoload=True) self.tbl_keyrings = Table('keyrings', self.db_meta, autoload=True) + self.tbl_keyring_acl_map = Table('keyring_acl_map', self.db_meta, autoload=True) self.tbl_location = Table('location', self.db_meta, autoload=True) self.tbl_maintainer = Table('maintainer', self.db_meta, autoload=True) self.tbl_new_comments = Table('new_comments', self.db_meta, autoload=True) @@ -2209,7 +2260,9 @@ class DBConn(Singleton): properties = dict(binary_acl_id = self.tbl_binary_acl.c.id)) mapper(BinaryACLMap, self.tbl_binary_acl_map, - properties = dict(binary_acl_map_id = self.tbl_binary_acl_map.c.id)) + properties = dict(binary_acl_map_id = self.tbl_binary_acl_map.c.id, + fingerprint = relation(Fingerprint, backref="binary_acl_map"), + architecture = relation(Architecture))) mapper(Component, self.tbl_component, properties = dict(component_id = self.tbl_component.c.id, @@ -2254,12 +2307,19 @@ class DBConn(Singleton): uid_id = self.tbl_fingerprint.c.uid, uid = relation(Uid), keyring_id = self.tbl_fingerprint.c.keyring, - keyring = relation(Keyring))) + keyring = relation(Keyring), + source_acl = relation(SourceACL), + binary_acl = relation(BinaryACL))) mapper(Keyring, self.tbl_keyrings, properties = dict(keyring_name = self.tbl_keyrings.c.name, keyring_id = self.tbl_keyrings.c.id)) + mapper(KeyringACLMap, self.tbl_keyring_acl_map, + properties = dict(keyring_acl_map_id = self.tbl_keyring_acl_map.c.id, + keyring = relation(Keyring, backref="keyring_acl_map"), + architecture = relation(Architecture))) + mapper(Location, self.tbl_location, properties = dict(location_id = self.tbl_location.c.id, component_id = self.tbl_location.c.component, @@ -2327,7 +2387,8 @@ class DBConn(Singleton): srcfiles = relation(DSCFile, primaryjoin=(self.tbl_source.c.id==self.tbl_dsc_files.c.source)), srcassociations = relation(SrcAssociation, - primaryjoin=(self.tbl_source.c.id==self.tbl_src_associations.c.source)))) + primaryjoin=(self.tbl_source.c.id==self.tbl_src_associations.c.source)), + srcuploaders = relation(SrcUploader))) mapper(SourceACL, self.tbl_source_acl, properties = dict(source_acl_id = self.tbl_source_acl.c.id)) @@ -2372,7 +2433,9 @@ class DBConn(Singleton): fingerprint = relation(Fingerprint))) mapper(UploadBlock, self.tbl_upload_blocks, - properties = dict(upload_block_id = self.tbl_upload_blocks.c.id)) + properties = dict(upload_block_id = self.tbl_upload_blocks.c.id, + fingerprint = relation(Fingerprint, backref="uploadblocks"), + uid = relation(Uid, backref="uploadblocks"))) ## Connection functions def __createconn(self):