python-jenkins-developers team mailing list archive
-
python-jenkins-developers team
-
Mailing list archive
-
Message #00066
[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.