Check if package exists before deleting it
job_request tries to delete package from source project when request
is accepted, rejected or revoked. However, in OBS 2.4 this is done by
OBS and package doesn't exist. It caused this traceback in production:
Traceback (most recent call last):
File "/srv/jenkins/jenkins-scripts/job_request.py", line 313, in <module>
sys.exit(main())
File "/srv/jenkins/jenkins-scripts/job_request.py", line 306, in main
request_accepted(data, gerrit, gitprj)
File "/srv/jenkins/jenkins-scripts/job_request.py", line 161, in request_accepted
delete_package(data['OBS_REQ_PRJ_SRC'], data['OBS_REQ_PKG_SRC'])
File "/srv/jenkins/jenkins-scripts/job_request.py", line 136, in delete_package
_bs.delete_package(prj, pkg)
File "/srv/jenkins/jenkins-scripts/common/buildservice.py", line 383, in delete_package
core.delete_package(self.apiurl, project, package)
File "/usr/lib/python2.7/site-packages/osc/core.py", line 4697, in delete_package
http_DELETE(u)
File "/usr/lib/python2.7/site-packages/osc/core.py", line 2924, in http_DELETE
def http_DELETE(*args, **kwargs): return http_request('DELETE', *args, **kwargs)
File "/usr/lib/python2.7/site-packages/osc/core.py", line 2909, in http_request
fd = urllib2.urlopen(req, data=data)
File "/usr/lib64/python2.7/urllib2.py", line 126, in urlopen
return _opener.open(url, data, timeout)
File "/usr/lib64/python2.7/urllib2.py", line 400, in open
response = meth(req, response)
File "/usr/lib64/python2.7/urllib2.py", line 513, in http_response
'http', request, response, code, msg, hdrs)
File "/usr/lib64/python2.7/urllib2.py", line 432, in error
result = self._call_chain(*args)
File "/usr/lib64/python2.7/urllib2.py", line 372, in _call_chain
result = func(*args)
File "/usr/lib64/python2.7/urllib2.py", line 884, in http_error_401
url, req, headers)
File "/usr/lib64/python2.7/urllib2.py", line 859, in http_error_auth_reqed
response = self.retry_http_basic_auth(host, req, realm)
File "/usr/lib64/python2.7/urllib2.py", line 872, in retry_http_basic_auth
return self.parent.open(req, timeout=req.timeout)
File "/usr/lib64/python2.7/urllib2.py", line 400, in open
response = meth(req, response)
File "/usr/lib64/python2.7/urllib2.py", line 513, in http_response
'http', request, response, code, msg, hdrs)
File "/usr/lib64/python2.7/urllib2.py", line 438, in error
return self._call_chain(*args)
File "/usr/lib64/python2.7/urllib2.py", line 372, in _call_chain
result = func(*args)
File "/usr/lib64/python2.7/urllib2.py", line 521, in http_error_default
raise HTTPError(req.get_full_url(), code, msg, hdrs, fp)
urllib2.HTTPError: HTTP Error 404: Not Found
Change-Id: I2a6b56ba40feecf83eeabb59169ae19b835231d7
Signed-off-by: Ed Bartosh <eduard.bartosh@intel.com>