Refactor 'webservice' ZMQ server
Description
This refactors the giant server_runner
function into a class, with one method per supported action. The aim is to make it easier to see and debug what the webservice does for any given action, without having to track through a giant nest of if statements.
The diff is big, but mostly it's just moving around code that was already there. I've aimed to faithfully preserve the existing logic of what it was doing (except for one fix I made while testing, which I'll point out inline).
How Has This Been Tested?
I've run this as xcaltst on max-exfl017, and processed various CALLAB runs both for correction and dark characterisation (thanks @danilevc for showing me how to do that). I've also added some more logging so it's easier to follow what's going on by watching the logs. In particular, there's an info level log statement when it detects that all the Slurm jobs for a calibration task have finished.
Types of changes
- Refactoring
Checklist:
- My code follows the code style of this project.