]> git.decadent.org.uk Git - dak.git/commitdiff
Merge remote-tracking branch 'origin/master'
authorAnsgar Burchardt <ansgar@debian.org>
Tue, 10 Sep 2013 21:23:12 +0000 (23:23 +0200)
committerAnsgar Burchardt <ansgar@debian.org>
Tue, 10 Sep 2013 21:23:12 +0000 (23:23 +0200)
1  2 
daklib/dbconn.py

diff --combined daklib/dbconn.py
index 4d551ad1b52253a2032d5edc1bdad46a091b3290,e5d4049c3f833951519d72deee4131aee3144bfb..22d20a577707e5efed603727ef4356313a24aeb4
@@@ -311,7 -311,7 +311,7 @@@ class ORMObject(object)
          return object_session(self)
  
      def clone(self, session = None):
-         '''
+         """
          Clones the current object in a new session and returns the new clone. A
          fresh session is created if the optional session parameter is not
          provided. The function will fail if a session is provided and has
          WARNING: Only persistent (committed) objects can be cloned. Changes
          made to the original object that are not committed yet will get lost.
          The session of the new object will always be rolled back to avoid
-         ressource leaks.
-         '''
+         resource leaks.
+         """
  
          if self.session() is None:
              raise RuntimeError( \
@@@ -433,27 -433,6 +433,6 @@@ def get_architecture(architecture, sess
  
  __all__.append('get_architecture')
  
- # TODO: should be removed because the implementation is too trivial
- @session_wrapper
- def get_architecture_suites(architecture, session=None):
-     """
-     Returns list of Suite objects for given C{architecture} name
-     @type architecture: str
-     @param architecture: Architecture name to search for
-     @type session: Session
-     @param session: Optional SQL session object (a temporary one will be
-     generated if not supplied)
-     @rtype: list
-     @return: list of Suite objects for the given name (may be empty)
-     """
-     return get_architecture(architecture, session).suites
- __all__.append('get_architecture_suites')
  ################################################################################
  
  class Archive(object):
@@@ -1220,7 -1199,7 +1199,7 @@@ class Keyring(object)
  
          k = os.popen(self.gpg_invocation % keyring, "r")
          key = None
 -        signingkey = False
 +        need_fingerprint = False
  
          for line in k:
              field = line.split(":")
                  if "@" in addr:
                      self.keys[key]["email"] = addr
                      self.keys[key]["name"] = name
 -                self.keys[key]["fingerprints"] = []
 -                signingkey = True
 -            elif key and field[0] == "sub" and len(field) >= 12:
 -                signingkey = ("s" in field[11])
 +                need_fingerprint = True
              elif key and field[0] == "uid":
                  (name, addr) = self.parse_address(field[9])
                  if "email" not in self.keys[key] and "@" in addr:
                      self.keys[key]["email"] = addr
                      self.keys[key]["name"] = name
 -            elif signingkey and field[0] == "fpr":
 -                self.keys[key]["fingerprints"].append(field[9])
 +            elif need_fingerprint and field[0] == "fpr":
 +                self.keys[key]["fingerprints"] = [field[9]]
                  self.fpr_lookup[field[9]] = key
 +                need_fingerprint = False
  
      def import_users_from_ldap(self, session):
          import ldap
@@@ -2558,6 -2539,7 +2537,7 @@@ class DBConn(object)
              'changelogs_text',
              'changes',
              'component',
+             'component_suite',
              'config',
              'dsc_files',
              'external_overrides',
  
          mapper(Component, self.tbl_component,
                 properties = dict(component_id = self.tbl_component.c.id,
-                                  component_name = self.tbl_component.c.name),
+                                  component_name = self.tbl_component.c.name,
+                                  suites = relation(Suite, secondary=self.tbl_component_suite)),
                 extension = validator)
  
          mapper(DBConfig, self.tbl_config,
                                   srcformats = relation(SrcFormat, secondary=self.tbl_suite_src_formats,
                                       backref=backref('suites', lazy='dynamic')),
                                   archive = relation(Archive, backref='suites'),
-                                  acls = relation(ACL, secondary=self.tbl_suite_acl_map, collection_class=set)),
+                                  acls = relation(ACL, secondary=self.tbl_suite_acl_map, collection_class=set),
+                                  components = relation(Component, secondary=self.tbl_component_suite,
+                                                    order_by=self.tbl_component.c.ordering,
+                                                    backref=backref('suite'))),
                  extension = validator)
  
          mapper(Uid, self.tbl_uid,