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
|
* Create/delete/reconfig views
|
||||||
* Put server in shutdown mode (quiet down)
|
* Put server in shutdown mode (quiet down)
|
||||||
* List running builds
|
* List running builds
|
||||||
|
* Delete builds
|
||||||
* Create/delete/update folders [#f1]_
|
* Create/delete/update folders [#f1]_
|
||||||
* Set the next build number [#f2]_
|
* Set the next build number [#f2]_
|
||||||
* Install plugins
|
* 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_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_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'
|
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'
|
NODE_LIST = 'computer/api/json'
|
||||||
CREATE_NODE = 'computer/doCreateItem'
|
CREATE_NODE = 'computer/doCreateItem'
|
||||||
DELETE_NODE = 'computer/%(name)s/doDelete'
|
DELETE_NODE = 'computer/%(name)s/doDelete'
|
||||||
@ -1216,6 +1217,16 @@ class Jenkins(object):
|
|||||||
'POST', self._build_url(STOP_BUILD, locals())
|
'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):
|
def get_running_builds(self):
|
||||||
'''Return list of running builds.
|
'''Return list of running builds.
|
||||||
|
|
||||||
|
@ -203,6 +203,28 @@ class JenkinsStopBuildTest(JenkinsTestBase):
|
|||||||
self._check_requests(jenkins_mock.call_args_list)
|
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):
|
class JenkinsListRunningBuildsTest(JenkinsTestBase):
|
||||||
@patch.object(jenkins.Jenkins, 'get_node_info')
|
@patch.object(jenkins.Jenkins, 'get_node_info')
|
||||||
@patch.object(jenkins.Jenkins, 'get_nodes')
|
@patch.object(jenkins.Jenkins, 'get_nodes')
|
||||||
|
Loading…
x
Reference in New Issue
Block a user