changeset 3477:951aa2741c98 beta

Moved inject ui into base vcs classe
author Marcin Kuzminski <marcin@python-works.com>
date Wed, 06 Mar 2013 13:37:42 +0100
parents 258e0353ca51
children 796738bb697c
files rhodecode/lib/vcs/backends/base.py rhodecode/model/db.py
diffstat 2 files changed, 22 insertions(+), 9 deletions(-) [+]
line wrap: on
line diff
--- a/rhodecode/lib/vcs/backends/base.py	Wed Mar 06 13:36:55 2013 +0100
+++ b/rhodecode/lib/vcs/backends/base.py	Wed Mar 06 13:37:42 2013 +0100
@@ -311,6 +311,27 @@
         """
         raise NotImplementedError
 
+    def inject_ui(self, **extras):
+        """
+        Injects extra parameters into UI object of this repo
+        """
+        required_extras = [
+            'ip',
+            'username',
+            'action',
+            'repository',
+            'scm',
+            'config',
+            'server_url',
+            'make_lock',
+            'locked_by',
+        ]
+        for req in required_extras:
+            if req not in extras:
+                raise AttributeError('Missing attribute %s in extras' % (req))
+        for k, v in extras.items():
+            self._repo.ui.setconfig('rhodecode_extras', k, v)
+
 
 class BaseChangeset(object):
     """
--- a/rhodecode/model/db.py	Wed Mar 06 13:36:55 2013 +0100
+++ b/rhodecode/model/db.py	Wed Mar 06 13:37:42 2013 +0100
@@ -938,15 +938,7 @@
 
     @classmethod
     def inject_ui(cls, repo, extras={}):
-        from rhodecode.lib.vcs.backends.hg import MercurialRepository
-        from rhodecode.lib.vcs.backends.git import GitRepository
-        required = (MercurialRepository, GitRepository)
-        if not isinstance(repo, required):
-            raise Exception('repo must be instance of %s' % required)
-
-        # inject ui extra param to log this action via push logger
-        for k, v in extras.items():
-            repo._repo.ui.setconfig('rhodecode_extras', k, v)
+        repo.inject_ui(extras)
 
     @classmethod
     def is_valid(cls, repo_name):