On 10/07/10 - 05:27:28AM, Ladislav Martincik wrote:
> Hey guys,
> 
> I have already asked the question on ICQ channel, but I think it deserves 
> it's own thread on this mailing list.
> 
> At the moment I'm working on Linode driver for Deltacloud Core project and 
> I'm having problem map all Linode instance states to our Deltacloud default 
> states. Currently we have PENDING, RUNNING, SHUTTING_DOWN, STOPPED. Linode 
> has 3 other states from which 2 can be mapped to our standard PENDING state 
> but 1 called "Boot failed" cannot be.
> 
> There seems to be 2 obvious ways to go:
> 
> 1) Create one more state which we can call UNKNOWN and pull all the other 
> states into this status.
> pros: It's simple solution and easy to handle.
> cons: Some of the states could be important to outside world and we will just 
> dump them into one unknown state
> 
> 2) Let each driver populate different as strings to our API
> pros: Transparent for outside world.
> cons: Can be problematic for different clients as they could rely on 
> predefined states for their apps.

There is another downside to 2), in that if each individual driver specifies
it's own set of states, then you cannot write a generic client; your client
needs to know whether it is using EC2, or Linode, or Rackspace, etc.  That
defeats the whole purpose of deltacloud.  In my opinion, option 1 is the only
reasonable choice; define it as a state that all drivers could use, and then
just define it for the ones that can actually get there.

FYI: recently we removed the "SHUTTING_DOWN" state, since it was poorly
defined.  Therefore, the only valid states at present are PENDING, RUNNING,
and STOPPED.

-- 
Chris Lalancette

Reply via email to