From: Ansgar Burchardt Date: Thu, 9 Aug 2012 13:24:47 +0000 (+0200) Subject: move method to evaluate component mappings to dbconn.py X-Git-Url: https://git.decadent.org.uk/gitweb/?a=commitdiff_plain;h=61ad5250da03fd971a06ffbefce6e30454cd9482;p=dak.git move method to evaluate component mappings to dbconn.py --- diff --git a/daklib/archive.py b/daklib/archive.py index 29a5621d..463c3de2 100644 --- a/daklib/archive.py +++ b/daklib/archive.py @@ -701,29 +701,6 @@ class ArchiveUpload(object): suites = session.query(Suite).filter(Suite.suite_name.in_(suite_names)) return suites - def _mapped_component(self, component_name): - """get component after mappings - - Evaluate component mappings from ComponentMappings in dak.conf for the - given component name. - - @todo: ansgar wants to get rid of this. It's currently only used for - the security archive - - @type component_name: str - @param component_name: component name - - @rtype: L{daklib.dbconn.Component} - @return: component after applying maps - """ - cnf = Config() - for m in cnf.value_list("ComponentMappings"): - (src, dst) = m.split() - if component_name == src: - component_name = dst - component = self.session.query(Component).filter_by(component_name=component_name).one() - return component - def _check_new(self, suite): """Check if upload is NEW @@ -846,7 +823,7 @@ class ArchiveUpload(object): return override.component if only_overrides: return None - return self._mapped_component(binary.component) + return get_mapped_component(binary.component, self.session) def check(self, force=False): """run checks against the upload diff --git a/daklib/dbconn.py b/daklib/dbconn.py index d9ab4cb8..9d9225f0 100644 --- a/daklib/dbconn.py +++ b/daklib/dbconn.py @@ -1150,6 +1150,34 @@ def get_component(component, session=None): __all__.append('get_component') +@session_wrapper +def get_mapped_component(component_name, session=None): + """get component after mappings + + Evaluate component mappings from ComponentMappings in dak.conf for the + given component name. + + @todo: ansgar wants to get rid of this. It's currently only used for + the security archive + + @type component_name: str + @param component_name: component name + + @param session: database session + + @rtype: L{daklib.dbconn.Component} or C{None} + @return: component after applying maps or C{None} + """ + cnf = Config() + for m in cnf.value_list("ComponentMappings"): + (src, dst) = m.split() + if component_name == src: + component_name = dst + component = session.query(Component).filter_by(component_name=component_name).first() + return component + +__all__.append('get_mapped_component') + @session_wrapper def get_component_names(session=None): """