Actions
action #109977
closedcoordination #91646: [saga][epic] SUSE Maintenance QA workflows with fully automated testing, approval and release
coordination #109641: [epic] qem-bot improvements
qem-bot - approve pipeline failed with 403 forbidden size:M
Start date:
2022-04-14
Due date:
% Done:
0%
Estimated time:
Description
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, logging and ignoring the case.
- Log server response (not just return code)
- Suggest a better response (and response code) to OBS upstream
Actions