Machine Agent is necessary

Bug #617042 reported by Gustavo Niemeyer
6
This bug affects 1 person
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.connect_agent() method (bug #617046), so that Ensemble knows it is alive.

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/ensemble/services/<service id>.
    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).

Tags: spike
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
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.