python-jenkins-developers team mailing list archive
-
python-jenkins-developers team
-
Mailing list archive
-
Message #00070
[Merge] lp:~gandelman-a/python-jenkins/rename_and_output into lp:python-jenkins
Adam Gandelman has proposed merging lp:~gandelman-a/python-jenkins/rename_and_output 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_and_output/+merge/163414
Two new methods:
get_build_console_output() + rename_job()
--
https://code.launchpad.net/~gandelman-a/python-jenkins/rename_and_output/+merge/163414
Your team Python Jenkins Developers is requested to review the proposed merge of lp:~gandelman-a/python-jenkins/rename_and_output into lp:python-jenkins.
=== modified file 'jenkins/__init__.py'
--- jenkins/__init__.py 2013-04-13 21:59:59 +0000
+++ jenkins/__init__.py 2013-05-12 03:55:29 +0000
@@ -67,11 +67,12 @@
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'
BUILD_INFO = 'job/%(name)s/%(number)d/api/json?depth=0'
-
+BUILD_CONSOLE_OUTPUT = 'job/%(name)s/%(number)d/consoleText'
CREATE_NODE = 'computer/doCreateItem?%s'
DELETE_NODE = 'computer/%(name)s/doDelete'
@@ -308,6 +309,19 @@
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.
@@ -551,3 +565,28 @@
if not self.node_exists(name):
raise JenkinsException('create[%s] failed' % (name))
+
+ def get_build_console_output(self, name, number):
+ '''
+ Get build console text.
+
+ :param name: Job name, ``str``
+ :param name: Build number, ``int``
+ :returns: Build console output, ``str``
+ '''
+ try:
+ response = self.jenkins_open(urllib2.Request(
+ self.server + BUILD_CONSOLE_OUTPUT % locals()))
+ if response:
+ return response
+ else:
+ raise JenkinsException('job[%s] number[%d] does not exist'
+ % (name, number))
+ except urllib2.HTTPError:
+ raise JenkinsException('job[%s] number[%d] does not exist'
+ % (name, number))
+ except ValueError:
+ raise JenkinsException(
+ 'Could not parse JSON info for job[%s] number[%d]'
+ % (name, number)
+ )
Follow ups