From: Ed Bartosh Date: Wed, 2 Oct 2013 15:26:19 +0000 (+0300) Subject: Check if package exists before deleting it X-Git-Tag: 0.15~101 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=57d6ede4454de57442e2c832291f5d24fd98033b;p=services%2Fjenkins-scripts.git 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 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 --- diff --git a/job_request.py b/job_request.py index dcaf59c..9b1226b 100755 --- a/job_request.py +++ b/job_request.py @@ -133,7 +133,8 @@ def delete_package(prj, pkg): _bs = BuildService(os.getenv('OBS_API_URL'), os.getenv('OBS_API_USERNAME'), os.getenv('OBS_API_PASSWD')) - _bs.delete_package(prj, pkg) + if _bs.exists(prj, pkg): + _bs.delete_package(prj, pkg) def request_accepted(data, gerrit, gitprj): """Do lots of things when request accepted"""