Actions
action #115733
closedaction #97862: More openQA worker hardware for OSD size:M
bot-ng pipeline fails because of empty dictionary in data returned by smelt size:M
Status:
Resolved
Priority:
High
Assignee:
Category:
-
Target version:
Start date:
2022-05-23
Due date:
% Done:
0%
Estimated time:
Description
Observation¶
Traceback (most recent call last):
File "./qem-bot/bot-ng.py", line 7, in <module>
main()
File "/builds/qa-maintenance/bot-ng/qem-bot/openqabot/main.py", line 41, in main
sys.exit(cfg.func(cfg))
File "/builds/qa-maintenance/bot-ng/qem-bot/openqabot/args.py", line 41, in do_sync_smelt
syncer = SMELTSync(args)
File "/builds/qa-maintenance/bot-ng/qem-bot/openqabot/smeltsync.py", line 19, in __init__
self.incidents = get_incidents(get_active_incidents())
File "/builds/qa-maintenance/bot-ng/qem-bot/openqabot/loader/smelt.py", line 50, in get_active_incidents
active.update(x["node"]["incidentId"] for x in incidents["edges"])
TypeError: 'NoneType' object is not subscriptable
See the pipeline logs for details.
Acceptance criteria¶
- AC1: A good error message is shown
Suggestions¶
- The issue occurred during the maintenance window:
- Implement deployment freeze in the GitLab pipeline to avoid running the pipeline during the maintenance window (see https://gitlab.suse.de/qa-maintenance/bot-ng/-/merge_requests/54)
- Check more carefully what smelt is returning
- Improve error handling in case of unexpected data e.g. in the easiest case at least handle the exception and show the data that was not parsed correctly
- Add unit tests covering this type of data
Actions