my cmd2.Cmd wrapper with a workaround, simply replaces b'' w/ {} def do_deletebuild(self, args): """delete build numbers WIP, fails on maybe_add_crumb https://www.mail-archive.com/python-jenkins-developers@lists.launchpad.net/msg00533.html """ if hasattr(self, 'jobs'): _jobs = self.jobs else: # this is the path for nested jobs # e.g. Release_3.3/GOLD/PERFORMANCE/EDGE1000 property lastBuild _jobs = args[:1] args = args[1:] if isinstance(_jobs[0], str): _jobs[0] = dict(name=_jobs[0]) jobname = _jobs[0]['name'] try: numbers = int(args[0]) if numbers < 0: # TODO all but N newest pass numbers = range(numbers, numbers + 1) except ValueError: numbers = args[0].split('-') numbers = range(int(numbers[0]), int(numbers[1]) + 1) # delete a range for number in numbers: folder_url, short_name = self.server._get_job_folder(jobname) url = self.server._build_url(jenkins.DELETE_BUILD, locals()) headers = {} self.server.jenkins_open(requests.Request('POST', url, headers))
-- 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 -- Mailing list: https://launchpad.net/~python-jenkins-developers Post to : python-jenkins-developers@lists.launchpad.net Unsubscribe : https://launchpad.net/~python-jenkins-developers More help : https://help.launchpad.net/ListHelp