← Back to team overview

python-jenkins-developers team mailing list archive

[Bug 1781381] Re: Cannot delete build using delete_build

 

It seems more appropriate to update the request object instead. With your patch, you'll ignore added headers(including the crumb).
To prevent this, just change the request instanciation for the delete_build call (wipeout_job_workspace has the same call so it fixes that as well):

diff --git a/jenkins/__init__.py b/jenkins/__init__.py
index 620ce14..0691f2a 100755
--- a/jenkins/__init__.py
+++ b/jenkins/__init__.py
@@ -1469,7 +1469,7 @@ class Jenkins(object):
         """
         folder_url, short_name = self._get_job_folder(name)
         self.jenkins_open(requests.Request('POST',
-                          self._build_url(DELETE_BUILD, locals()), b''))
+                          self._build_url(DELETE_BUILD, locals())))
 
     def wipeout_job_workspace(self, name):
         """Wipe out workspace for given Jenkins job.
@@ -1479,7 +1479,7 @@ class Jenkins(object):
         folder_url, short_name = self._get_job_folder(name)
         self.jenkins_open(requests.Request('POST',
                           self._build_url(WIPEOUT_JOB_WORKSPACE,
-                                          locals()), b''))
+                                          locals())))
 
     def get_running_builds(self):
         '''Return list of running builds.

-- 
You received this bug notification because you are a member of Python
Jenkins Developers, which is subscribed to Python Jenkins.
https://bugs.launchpad.net/bugs/1781381

Title:
  Cannot delete build using delete_build

Status in Python Jenkins:
  New

Bug description:
  Requirement already up-to-date: python-jenkins in
  .XXXXXXX/venv/lib/python3.6/site-packages (1.0.2)

  
  In line 357 of __init__.py (function maybe_add_crumb) the code fails on req.headers[self.crumb['crumbRequestField']] = self.crumb['crumb']

  at this point i have a value for self.crumb and req.headers is b''

  the error i get is "bytes' object does not support item assignment"

  trace

   File "XXXXXX.py", line 9, in <module>
      j.delete_build(r"Whale Watchers/Project Whale Watcher QA - Grouped", k)
    File "XXXXXX/venv/lib/python3.6/site-packages/jenkins/__init__.py", line 1354, in delete_build
      self._build_url(DELETE_BUILD, locals()), b''))
    File "XXXXXX/venv/lib/python3.6/site-packages/jenkins/__init__.py", line 540, in jenkins_open
      return self.jenkins_request(req, add_crumb, resolve_auth).text
    File "XXXXXX/venv/lib/python3.6/site-packages/jenkins/__init__.py", line 556, in jenkins_request
      self.maybe_add_crumb(req)
    File "XXXXXX/venv/lib/python3.6/site-packages/jenkins/__init__.py", line 357, in maybe_add_crumb
      req.headers[self.crumb['crumbRequestField']] = self.crumb['crumb']
  TypeError: 'bytes' object does not support item assignment

To manage notifications about this bug go to:
https://bugs.launchpad.net/python-jenkins/+bug/1781381/+subscriptions


References