33require_relative  'actions/check_state' 
44require_relative  'actions/wait_for_state' 
55require_relative  'actions/run_instance' 
6+ require_relative  'actions/start_instance' 
67
78module  VagrantPlugins 
89  module  Ec2 
@@ -17,13 +18,34 @@ def self.read_state
1718        end 
1819      end 
1920
21+       def  self . resume 
22+         return  Vagrant ::Action ::Builder . new . tap  do  |builder |
23+           builder . use  ConfigValidate 
24+           builder . use  ConnectAWS 
25+           builder . use  Call ,  CheckState  do  |env ,  b |
26+             if  env [ :machine_state ]  == :stopped  || env [ :machine_state ]  == :stopping 
27+               b . use  WaitForState ,  :stopped  if  env [ :machine_state ]  == :stopping 
28+               b . use  StartInstance 
29+               b . use  WaitForState ,  :running 
30+             elsif  env [ :machine_state ]  == :running 
31+               raise  env [ :machine_state ] 
32+             else 
33+               raise  "The instance #{ env [ :machine ] . id }   is #{ env [ :machine_state ] }   this is unexpected" 
34+             end 
35+           end 
36+         end 
37+       end 
38+ 
2039      def  self . up 
2140        return  Vagrant ::Action ::Builder . new . tap  do  |builder |
2241          builder . use  ConfigValidate 
2342          builder . use  ConnectAWS 
2443          builder . use  Call ,  CheckState  do  |env ,  b |
2544            if  env [ :machine_state ]  == :not_created 
2645              b . use  RunInstance 
46+             elsif  env [ :machine_state ]  == :stopped  || env [ :machine_state ]  == :stopping 
47+               b . use  WaitForState ,  :stopped  if  env [ :machine_state ]  == :stopping 
48+               b . use  StartInstance 
2749            else 
2850              if  env [ :machine_state ]  == :running 
2951                raise  env [ :machine_state ] 
0 commit comments