Adds support for deleting builds
Support for deleting individual builds for a Jenkins job. Change-Id: I35c98855b0883986a85cbe7212ec52e6f67e5638 Signed-off-by: Sorin Sbarnea <ssbarnea@redhat.com>
This commit is contained in:
parent
e15a54bdc3
commit
03ed39ba01
@ -23,6 +23,7 @@ the things you can use it for:
|
||||
* Create/delete/reconfig views
|
||||
* Put server in shutdown mode (quiet down)
|
||||
* List running builds
|
||||
* Delete builds
|
||||
* Create/delete/update folders [#f1]_
|
||||
* Set the next build number [#f2]_
|
||||
* Install plugins
|
||||
|
@ -115,6 +115,7 @@ STOP_BUILD = '%(folder_url)sjob/%(short_name)s/%(number)s/stop'
|
||||
BUILD_WITH_PARAMS_JOB = '%(folder_url)sjob/%(short_name)s/buildWithParameters'
|
||||
BUILD_INFO = '%(folder_url)sjob/%(short_name)s/%(number)d/api/json?depth=%(depth)s'
|
||||
BUILD_CONSOLE_OUTPUT = '%(folder_url)sjob/%(short_name)s/%(number)d/consoleText'
|
||||
DELETE_BUILD = '%(folder_url)sjob/%(short_name)s/%(number)s/doDelete'
|
||||
NODE_LIST = 'computer/api/json'
|
||||
CREATE_NODE = 'computer/doCreateItem'
|
||||
DELETE_NODE = 'computer/%(name)s/doDelete'
|
||||
@ -1216,6 +1217,16 @@ class Jenkins(object):
|
||||
'POST', self._build_url(STOP_BUILD, locals())
|
||||
))
|
||||
|
||||
def delete_build(self, name, number):
|
||||
"""Delete a Jenkins build.
|
||||
|
||||
:param name: Name of Jenkins job, ``str``
|
||||
:param number: Jenkins build number for the job, ``int``
|
||||
"""
|
||||
folder_url, short_name = self._get_job_folder(name)
|
||||
self.jenkins_open(requests.Request('POST',
|
||||
self._build_url(DELETE_BUILD, locals()), b''))
|
||||
|
||||
def get_running_builds(self):
|
||||
'''Return list of running builds.
|
||||
|
||||
|
@ -203,6 +203,28 @@ class JenkinsStopBuildTest(JenkinsTestBase):
|
||||
self._check_requests(jenkins_mock.call_args_list)
|
||||
|
||||
|
||||
class JenkinsDeleteBuildTest(JenkinsTestBase):
|
||||
|
||||
@patch.object(jenkins.Jenkins, 'jenkins_open')
|
||||
def test_simple(self, jenkins_mock):
|
||||
self.j.delete_build(u'Test Job', number=52)
|
||||
|
||||
self.assertEqual(
|
||||
jenkins_mock.call_args[0][0].url,
|
||||
self.make_url('job/Test%20Job/52/doDelete'))
|
||||
self._check_requests(jenkins_mock.call_args_list)
|
||||
|
||||
@patch.object(jenkins.Jenkins, 'jenkins_open')
|
||||
def test_in_folder(self, jenkins_mock):
|
||||
|
||||
self.j.delete_build(u'a Folder/Test Job', number=52)
|
||||
|
||||
self.assertEqual(
|
||||
jenkins_mock.call_args[0][0].url,
|
||||
self.make_url('job/a%20Folder/job/Test%20Job/52/doDelete'))
|
||||
self._check_requests(jenkins_mock.call_args_list)
|
||||
|
||||
|
||||
class JenkinsListRunningBuildsTest(JenkinsTestBase):
|
||||
@patch.object(jenkins.Jenkins, 'get_node_info')
|
||||
@patch.object(jenkins.Jenkins, 'get_nodes')
|
||||
|
Loading…
x
Reference in New Issue
Block a user