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
