action #109977
Updated by mkittler over 2 years ago
Gitlab CI https://gitlab.suse.de/qa-maintenance/bot-ng/-/jobs/929031 after look to IBS , RR (release request) was accepted before but info about this didn't propagate to dashboard (some latency is excepted IBS->SMELT->Dashboard), so new try to accept accepted RR ends with error ~~~ INFO: Accepting review for SUSE:Maintenace:23688:269540 ERROR: HTTP Error 403: Forbidden Traceback (most recent call last): File "/builds/qa-maintenance/bot-ng/qem-bot/openqabot/approver.py", line 117, in osc_approve message=msg, File "/usr/lib/python3.6/site-packages/osc/core.py", line 4323, in change_review_state f = http_POST(u, data=message) File "/usr/lib/python3.6/site-packages/osc/core.py", line 3422, in http_POST def http_POST(*args, **kwargs): return http_request('POST', *args, **kwargs) File "/usr/lib/python3.6/site-packages/osc/core.py", line 3410, in http_request fd = urlopen(req, data=data) File "/usr/lib64/python3.6/urllib/request.py", line 223, in urlopen return opener.open(url, data, timeout) File "/usr/lib64/python3.6/urllib/request.py", line 532, in open response = meth(req, response) File "/usr/lib64/python3.6/urllib/request.py", line 642, in http_response 'http', request, response, code, msg, hdrs) File "/usr/lib64/python3.6/urllib/request.py", line 564, in error result = self._call_chain(*args) File "/usr/lib64/python3.6/urllib/request.py", line 504, in _call_chain result = func(*args) File "/usr/lib64/python3.6/urllib/request.py", line 1059, in http_error_401 url, req, headers) File "/usr/lib64/python3.6/urllib/request.py", line 1007, in http_error_auth_reqed return self.retry_http_basic_auth(host, req, realm) File "/usr/lib64/python3.6/urllib/request.py", line 1022, in retry_http_basic_auth return self.parent.open(req, timeout=req.timeout) File "/usr/lib64/python3.6/urllib/request.py", line 532, in open response = meth(req, response) File "/usr/lib64/python3.6/urllib/request.py", line 642, in http_response 'http', request, response, code, msg, hdrs) File "/usr/lib64/python3.6/urllib/request.py", line 570, in error return self._call_chain(*args) File "/usr/lib64/python3.6/urllib/request.py", line 504, in _call_chain result = func(*args) File "/usr/lib64/python3.6/urllib/request.py", line 650, in http_error_default raise HTTPError(req.full_url, code, msg, hdrs, fp) urllib.error.HTTPError: HTTP Error 403: Forbidden ~~~ # Acceptance criteria * **AC1:** Approve runs without error in case RR is already processed # Suggestions * Check response before throwing exception and act accordingly * Check IBS RR if really has open review for `qam-openqa` * The meaning of the 403 response code here is that we try to accept something that is already accepted. How about catching the case where the XML indicates the specific error, just catching, logging and ignoring the case. case when the RR is already processed. * Log server response (not just return code) * Suggest a better response (and response code) to OBS upstream