class Chef::Provisioning::VboxDriver::Driver

Public Class Methods

canonicalize_url(driver_url, config) click to toggle source

generated by script, required by API.

# File lib/chef/provisioning/vbox_driver/driver.rb, line 10
def self.canonicalize_url(driver_url, config)
  [ "vbox:#{driver_url} [vboxmanage]", config ]
end
from_url(driver_url, config) click to toggle source

generated by script, required by API.

# File lib/chef/provisioning/vbox_driver/driver.rb, line 15
def self.from_url(driver_url, config)
  Driver.new(driver_url, config)
end

Public Instance Methods

allocate_machine(action_handler, machine_spec, machine_options) click to toggle source
# File lib/chef/provisioning/vbox_driver/driver.rb, line 24
def allocate_machine(action_handler, machine_spec, machine_options)
    if machine_spec.reference
      if !vbox.server_exists?(machine_spec.reference['server_id'])
        action_handler.perform_action "Machine #{machine_spec.reference['server_id']} does not exist.  Recreating ..." do
           machine_spec.reference = nil
        end
      end
    end
    if !machine_spec.reference
      action_handler.perform_action "Creating server #{machine_spec.name} with options #{machine_options}" do
        private_key = get_private_key('bootstrapkey')
        server_id = Vbox.create_server(machine_spec.name, machine_options)
        machine_spec.reference = {
          'driver_version' => Vbox::VERSION,
          'server_id' => server_id
        }
      end
    end
  end