Class: VagrantPlugins::ProviderVeertu::Provider
- Inherits:
-
Object
- Object
- VagrantPlugins::ProviderVeertu::Provider
- Defined in:
- lib/vagrant-veertu/provider.rb
Instance Attribute Summary collapse
-
#driver ⇒ Object
readonly
Returns the value of attribute driver.
Class Method Summary collapse
Instance Method Summary collapse
- #action(name) ⇒ Object
-
#initialize(machine) ⇒ Provider
constructor
A new instance of Provider.
-
#machine_id_changed ⇒ Object
If the machine ID changed, then we need to rebuild our underlying driver.
-
#ssh_info ⇒ Object
Returns the SSH info for accessing the Veertu VM.
-
#state ⇒ Symbol
Return the state of Veertu virtual machine by actually querying VeertuManage.
-
#to_s ⇒ String
Returns a human-friendly string version of this provider which includes the machine’s ID that this provider represents, if it has one.
Constructor Details
#initialize(machine) ⇒ Provider
Returns a new instance of Provider.
25 26 27 28 29 30 31 32 |
# File 'lib/vagrant-veertu/provider.rb', line 25 def initialize(machine) @logger = Log4r::Logger.new("vagrant::provider::veertu") @machine = machine # This method will load in our driver, so we call it now to # initialize it. machine_id_changed end |
Instance Attribute Details
#driver ⇒ Object (readonly)
Returns the value of attribute driver.
6 7 8 |
# File 'lib/vagrant-veertu/provider.rb', line 6 def driver @driver end |
Class Method Details
.installed? ⇒ Boolean
8 9 10 11 12 13 |
# File 'lib/vagrant-veertu/provider.rb', line 8 def self.installed? Driver::Meta.new true rescue Errors::VeertuManageNotFoundError return false end |
.usable?(raise_error = false) ⇒ Boolean
15 16 17 18 19 20 21 22 23 |
# File 'lib/vagrant-veertu/provider.rb', line 15 def self.usable?(raise_error=false) # Instantiate the driver, which will determine the Veertu # version and all that, which checks for Veertu being present Driver::Meta.new true rescue Errors::VeertuManageNotFoundError raise if raise_error return false end |
Instance Method Details
#action(name) ⇒ Object
35 36 37 38 39 40 41 42 |
# File 'lib/vagrant-veertu/provider.rb', line 35 def action(name) # Attempt to get the action method from the Action class if it # exists, otherwise return nil to show that we don't support the # given action. action_method = "action_#{name}" return Action.send(action_method) if Action.respond_to?(action_method) nil end |
#machine_id_changed ⇒ Object
If the machine ID changed, then we need to rebuild our underlying driver.
46 47 48 49 50 51 52 53 54 55 56 57 58 59 |
# File 'lib/vagrant-veertu/provider.rb', line 46 def machine_id_changed id = @machine.id begin @logger.debug("Instantiating the driver for machine ID: #{@machine.id.inspect}") @driver = Driver::Meta.new(id) rescue Driver::Meta::VMNotFound # The virtual machine doesn't exist, so we probably have a stale # ID. Just clear the id out of the machine and reload it. @logger.debug("VM not found! Clearing saved machine ID and reloading.") id = nil retry end end |
#ssh_info ⇒ Object
Returns the SSH info for accessing the Veertu VM.
62 63 64 65 66 67 68 69 70 |
# File 'lib/vagrant-veertu/provider.rb', line 62 def ssh_info # If the VM is not running that we can't possibly SSH into it return nil if state.id != :running local_port = @driver.ssh_port(@machine.config.ssh.guest_port) return { host: "127.0.0.1", port: local_port } end |
#state ⇒ Symbol
Return the state of Veertu virtual machine by actually querying VeertuManage.
76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 |
# File 'lib/vagrant-veertu/provider.rb', line 76 def state #puts caller # We have to check if the UID matches to avoid issues with # Veertu. uid = @machine.uid if uid && uid.to_s != Process.uid.to_s raise Vagrant::Errors::VeertuUserMismatch, original_uid: uid.to_s, uid: Process.uid.to_s end # Determine the ID of the state here. state_id = nil state_id = :not_created if !@driver.uuid state_id = @driver.read_state if !state_id state_id = :unknown if !state_id # Translate into short/long descriptions short = state_id.to_s.gsub("_", " ") long = I18n.t("vagrant.commands.status.#{state_id}") # If we're not created, then specify the special ID flag if state_id == :not_created state_id = Vagrant::MachineState::NOT_CREATED_ID end # Return the state state_to_ret = Vagrant::MachineState.new(state_id, short, long) return state_to_ret end |
#to_s ⇒ String
Returns a human-friendly string version of this provider which includes the machine’s ID that this provider represents, if it has one.
110 111 112 113 |
# File 'lib/vagrant-veertu/provider.rb', line 110 def to_s id = @machine.id ? @machine.id : "new VM" "Veertu (#{id})" end |