On 03/06/13 20:15, Ellinger, David wrote:
> I have been working on modifying the EC2 Driver to accommodate "EBS" backed 
> instance ("persistent") and "S3 backed" instances (transient). At the moment 
> the deltacloud actions are for S3 backed instanced. So when "STOP" is used, 
> the instance is terminated.

thanks for taking the lead on this David

> 
> I have a requirement to make it so I can perform a "STOP" on EBS backed 
> instances. 
> 
> So I've modified the EC2 driver to have a new Finite State Machine for 
> "instance states", now when STOP is performed, the state goes to "stopped" 
> instead of "finish", and then when DESTROY is performed the instance state 
> goes to "finish". 
> 
> This works great with persistent instances, but now I have an issue with 
> transient instances. Since STOP is not an applicable EC2 action for these 
> instances, I get an EC2 error.
> 
> My solution ---
> 
> I would like to make it so when "STOP" is performed, it checks to see if the 
> instance is persistent or transient. If it is persistent, then I would like 
> to perform the STOP action, otherwise if it is transient I would like to 
> perform the DESTROY action.
> 
> I unfortunately am not familiar enough with Ruby to make this particular 
> change. So I'm asking if anyone knows of a better solution, or how to check 
> the instance type and where that should be implemented in the driver.
> 

it looks like you've had a good go at doing this with
https://github.com/deltacloud/deltacloud-core/pull/44 ? I put a comment
on that pull request - it's been a while since I've looked at the ec2
driver or the way we define the state machines (and where/how they're
used - like for determining the list of available actions to advertise
for a given instance). I need to spend some more time on this but can't
today - in any case I hope to get a proper response to you asap,

all the best, marios

> I appreciate any assistance on this,
> 
> Thank you
> 
> 
> 

Reply via email to