Sha256: 8ca3e192d740ffb8a3260a67150eb4ebedd52260c743d0d545a78887d5d86b43
Contents?: true
Size: 1.85 KB
Versions: 3
Compression:
Stored size: 1.85 KB
Contents
require 'rubber/cloud/generic' module Rubber module Cloud class Vagrant < Generic def active_state 'running' end def stopped_state 'saved' end 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 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 def destroy_instance(instance_id) # If it's being run from vagrant, then 'vagrant destroy' must have been called already, so no need for us to do it. unless ENV.has_key?('RUN_FROM_VAGRANT') system("vagrant destroy #{instance_id} --force") end end def stop_instance(instance, force=false) system("vagrant suspend #{instance.instance_id}") end def start_instance(instance) system("vagrant resume #{instance.instance_id}") end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
rubber-3.2.2 | lib/rubber/cloud/vagrant.rb |
rubber-3.2.1 | lib/rubber/cloud/vagrant.rb |
rubber-3.2.0 | lib/rubber/cloud/vagrant.rb |