Summary

Release Note

N/A

Rationale

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.

User stories

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.

Assumptions

The needed Python packages are installed on the system, and is following Pythonic recommendations for daemon creation.

Design

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).

Implementation

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.

UI Changes

No UI changes are required.

Code Changes

This is new code for LAVA Scheduler parts.

Migration

No data migration involved, users will be notified for correct usage if entering wrong parameters at CLI.

Test/Demo Plan

Unit tests will be provided.

Unresolved issues

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.


CategorySpec CategoryTemplate

Platform/Validation/Specs/BasicSchedulerDaemon (last modified 2011-04-21 15:17:48)