Add an action queue to driver managers
|Category:||Core & System|
High level outline: have a queue of pending actions for the different managers (LCM, TM, DM...), and add a unique ID and timestamp for each action. This queue will be stored in cache and in the DB.This will allow us to implement:
- Timeout for results.
e.g. if the core has been waiting for a deploy success/failure result more than X min., assume the driver crashed and execute a deploy failure
- Ignore individual results.
Let's say a VM is in boot, waiting for the deploy result, and the user executes onevm delete (or resubmit, restart...) action; the core can mark the pending deploy result to be ignored (and cancelled maybe)
- Disaster recovery.
On boot, the core can load the list of pending actions from the DB and try to recover. e.g. if a deploy result was pending, the VM may have been created, it is safe to move the VM to unknown and try to monitor it.
- Fine-grained information for the administrators
The cli/sunstone can include the list of actions being performed in a host, allowing the admin. to identify stalled hypervisor or FS operations...