Packages affected: lava
This is part of the LAVA Scheduler functional module, which aims to provide a basic daemon implementation. Having a base daemon implementation in place, it will be used as the foundation for other Scheduler functions, like multiprocessing and scheduling in general.
Users want to start a Scheduler daemon in order to fetch jobs from the database and assign them to LAVA Dispatcher instances. Users want to be able to start, stop and restart the daemon manually via command line interface.
The needed Python packages are installed on the system, and is following Pythonic recommendations for daemon creation.
The design is rather simple, we want to have a Python daemon which is configurable and easy to use. Supported commands shall be "start, stop, restart". A clean-up shall occur after each stop, and it should be possible to choose where to put any possible log messages (to a file or sys.out and sys.err).
We will use the python-daemon package and follow the recommended daemon implementation in Python/*nix. The daemon will create a file where its PID will be stored and fetched from.
No UI changes are required.
This is new code for LAVA Scheduler parts.
No data migration involved, users will be notified for correct usage if entering wrong parameters at CLI.
Unit tests will be provided.
The scheduling tasks are not part of this specification and is something to be treated separately.
BoF agenda and discussion
It might be good to discuss if we in future need a "status" command as well, if users would like to receive some kind of status report for the running daemon.
Platform/Validation/Specs/BasicSchedulerDaemon (last modified 2011-04-21 15:17:48)