Introduced new parameter giturl to clone_gitproject
authorEd Bartosh <eduard.bartosh@intel.com>
Wed, 3 Apr 2013 15:44:08 +0000 (18:44 +0300)
committerEd Bartosh <eduard.bartosh@intel.com>
Thu, 4 Apr 2013 15:32:18 +0000 (18:32 +0300)
Current implementation of clone_gitproject getting gerrit url from
environment variables, which is not always good. New parameter giturl
allows to get rid of this limitation.

This approach is used in job_pre_release_gerrit to clone mappings from
multiple gerrits.

Change-Id: Ie1e9ec2f49e83e07cecac0623834c88082dcdb3f
Signed-off-by: Ed Bartosh <eduard.bartosh@intel.com>
common/git.py

index 3cae1c3..5dd29ae 100644 (file)
@@ -156,7 +156,7 @@ def _update_gitproject(localdir):
     return True
 
 
-def _clone_gitproject(gerritprj, localdir):
+def _clone_gitproject(giturl, gerritprj, localdir):
     """Clone gerrit project from remote to local dir"""
 
     result = True
@@ -165,10 +165,6 @@ def _clone_gitproject(gerritprj, localdir):
     if os.path.isdir(localdir) and _update_gitproject(localdir):
         return True
 
-    # clone gerrit project from remote to local dir
-    giturl = 'ssh://%s@%s:%s' % (os.getenv('GERRIT_USERNAME'),
-                                 os.getenv('GERRIT_HOSTNAME'),
-                                 os.getenv('GERRIT_SSHPORT'))
     try:
         if os.path.isdir(os.path.join(os.getenv('GIT_CACHE_DIR'), gerritprj)):
             # use local cache repo as reference to clone
@@ -192,6 +188,12 @@ def _clone_gitproject(gerritprj, localdir):
     return result
 
 
-def clone_gitproject(gerritprj, localdir):
+def clone_gitproject(gerritprj, localdir, giturl=None):
     """Clone gerrit project from remote to local dir"""
-    return retry(_clone_gitproject, (gerritprj, localdir))
+    if not giturl:
+        giturl = 'ssh://%s@%s:%s' % (os.getenv('GERRIT_USERNAME'),
+                                    os.getenv('GERRIT_HOSTNAME'),
+                                    os.getenv('GERRIT_SSHPORT'))
+
+
+    return retry(_clone_gitproject, (giturl, gerritprj, localdir))