Machine Agent is necessary
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
pyjuju |
Fix Released
|
Medium
|
Kapil Thangavelu |
Bug Description
The Machine Agent (MA) is fired by the Ensemble base image, as described in bug #617008, and should be implemented in terms of the common logic for agents as described in bug #614508.
In that initial phase, the Machine Agent must be able to handle the following:
a) The MA must run the MachineState.
b) The MA must monitor the state requested for Service Units in this machine through the MachineStateManager extensions defined in bug #617025.
c) Once a new Service Unit is detected in the state, the Machine Agent should be able to react by executing the following steps:
1) Create a container for the new service unit. At this stage, simply a directory under /var/lib/
2) Use the FileStorage to obtain a formula and copy it into the container (downloading the formula once is a topic for future work, as per bug #617535).
3) Run a new Service Unit Agent (defined in bug #617575) which will run the formula inside the container.
d) The MA must be able to be restarted at any point in time without side effects, even in the middle of an operation. As a corollary, the MA must, on start up, look for both entirely unhandled requests and also partial initialization states, and take any measures to enforce the desired final state in the system.
In future work, the Machine Agent must also be able to monitor the state of Service Units, and restart them if necessary (bug #617556).
Related branches
description: | updated |
description: | updated |
Changed in ensemble: | |
status: | New → Confirmed |
importance: | Undecided → Medium |
description: | updated |
Changed in ensemble: | |
milestone: | none → 0.1 |
Changed in ensemble: | |
assignee: | nobody → Kapil Thangavelu (hazmat) |
status: | Confirmed → In Progress |
Changed in ensemble: | |
status: | In Progress → Fix Committed |
Changed in ensemble: | |
status: | Fix Committed → Fix Released |