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

Reply via email to