Class: Rubber::Cloud::Vagrant
Constant Summary
Constants inherited
from Generic
Generic::MUTEX
Instance Attribute Summary
Attributes inherited from Base
#capistrano, #env
Instance Method Summary
collapse
Methods inherited from Generic
add_instance, #create_instance, #initialize, instances
Methods inherited from Fog
#after_create_volume, #after_destroy_volume, #attach_static_ip, #before_create_volume, #before_destroy_volume, #compute_provider, #create_image, #create_instance, #create_static_ip, #create_volume, #describe_images, #describe_load_balancers, #describe_static_ips, #destroy_image, #destroy_spot_instance_request, #destroy_static_ip, #destroy_volume, #detach_static_ip, #initialize, #reboot_instance, #should_destroy_volume_when_instance_destroyed?, #storage, #storage_provider, #table_store
Methods inherited from Base
#after_create_instance, #after_refresh_instance, #after_start_instance, #after_stop_instance, #before_refresh_instance, #before_start_instance, #before_stop_instance, #describe_security_groups, #initialize, #inject_auto_security_groups, #isolate_group_name, #isolate_groups, #isolate_prefix, #setup_security_groups, #setup_vpc, #should_disable_password_based_ssh_login?
Instance Method Details
#active_state ⇒ Object
7
8
9
|
# File 'lib/rubber/cloud/vagrant.rb', line 7
def active_state
'running'
end
|
#before_create_instance(instance) ⇒ Object
15
16
17
18
19
|
# File 'lib/rubber/cloud/vagrant.rb', line 15
def before_create_instance(instance)
unless ENV.has_key?('RUN_FROM_VAGRANT')
capistrano.fatal "Since you are using the 'vagrant' provider, you must create instances by running `vagrant up #{instance.instance_alias}`."
end
end
|
#describe_instances(instance_id = nil) ⇒ Object
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
|
# File 'lib/rubber/cloud/vagrant.rb', line 21
def describe_instances(instance_id=nil)
output = `vagrant status #{instance_id}`
output =~ /#{instance_id}\s+(\w+)/m
state = $1
if Generic.instances
Generic.instances.each do |instance|
if instance[:id] == instance_id
instance[:state] = state
instance[:provider] = 'vagrant'
end
end
Generic.instances
else
instance = {}
instance[:id] = instance_id
instance[:state] = state
instance[:external_ip] = capistrano.rubber.get_env('EXTERNAL_IP', "External IP address for host '#{instance_id}'", true)
instance[:internal_ip] = capistrano.rubber.get_env('INTERNAL_IP', "Internal IP address for host '#{instance_id}'", true, instance[:external_ip])
instance[:provider] = 'vagrant'
[instance]
end
end
|
#destroy_instance(instance_id) ⇒ Object
48
49
50
51
52
53
|
# File 'lib/rubber/cloud/vagrant.rb', line 48
def destroy_instance(instance_id)
unless ENV.has_key?('RUN_FROM_VAGRANT')
system("vagrant destroy #{instance_id} --force")
end
end
|
#start_instance(instance) ⇒ Object
59
60
61
|
# File 'lib/rubber/cloud/vagrant.rb', line 59
def start_instance(instance)
system("vagrant resume #{instance.instance_id}")
end
|
#stop_instance(instance, force = false) ⇒ Object
55
56
57
|
# File 'lib/rubber/cloud/vagrant.rb', line 55
def stop_instance(instance, force=false)
system("vagrant suspend #{instance.instance_id}")
end
|
#stopped_state ⇒ Object
11
12
13
|
# File 'lib/rubber/cloud/vagrant.rb', line 11
def stopped_state
'saved'
end
|