← Back to team overview

python-jenkins-developers team mailing list archive

[Merge] lp:~gandelman-a/python-jenkins/rename_job into lp:python-jenkins

 

Adam Gandelman has proposed merging lp:~gandelman-a/python-jenkins/rename_job into lp:python-jenkins.

Requested reviews:
  Python Jenkins Developers (python-jenkins-developers)

For more details, see:
https://code.launchpad.net/~gandelman-a/python-jenkins/rename_job/+merge/130639

Adds a basic call to rename existing jobs.
-- 
https://code.launchpad.net/~gandelman-a/python-jenkins/rename_job/+merge/130639
Your team Python Jenkins Developers is requested to review the proposed merge of lp:~gandelman-a/python-jenkins/rename_job into lp:python-jenkins.
=== modified file 'doc/index.rst'
--- doc/index.rst	2012-03-01 18:03:09 +0000
+++ doc/index.rst	2012-10-19 21:29:22 +0000
@@ -99,6 +99,13 @@
         :param from_name: Name of Jenkins job to copy from, ``str``
         :param to_name: Name of Jenkins job to copy to, ``str``
 
+    .. method:: rename_job(name, new_name)
+
+        Rename an existing Jenkins job
+
+        :param name: Name of Jenkins job to rename, ``str``
+        :param new_name: New Jenkins job name, ``str``
+
     .. method:: delete_job(name)
 
         Delete Jenkins job permanently.

=== modified file 'jenkins/__init__.py'
--- jenkins/__init__.py	2012-06-25 11:48:32 +0000
+++ jenkins/__init__.py	2012-10-19 21:29:22 +0000
@@ -79,6 +79,7 @@
 ENABLE_JOB   = 'job/%(name)s/enable'
 DISABLE_JOB  = 'job/%(name)s/disable'
 COPY_JOB     = 'createItem?name=%(to_name)s&mode=copy&from=%(from_name)s'
+RENAME_JOB   = 'job/%(name)s/doRename?newName=%(new_name)s'
 BUILD_JOB    = 'job/%(name)s/build'
 STOP_BUILD   = 'job/%(name)s/%(number)s/stop'
 BUILD_WITH_PARAMS_JOB = 'job/%(name)s/buildWithParameters'
@@ -292,6 +293,18 @@
         if not self.job_exists(to_name):
             raise JenkinsException('create[%s] failed'%(to_name))
 
+    def rename_job(self, name, new_name):
+        '''
+        Rename an existing Jenkins job
+
+        :param name: Name of Jenkins job to rename, ``str``
+        :param new_name: New Jenkins job name, ``str``
+        '''
+        self.get_job_info(name)
+        self.jenkins_open(urllib2.Request(self.server + RENAME_JOB%locals(), ''))
+        if not self.job_exists(new_name):
+            raise JenkinsException('rename[%s] failed'%(new_name))
+
     def delete_job(self, name):
         '''
         Delete Jenkins job permanently.