lib/kitchen/driver/vsphere.rb in chef-provisioning-vsphere-0.10.0 vs lib/kitchen/driver/vsphere.rb in chef-provisioning-vsphere-1.0.0
- old
+ new
@@ -1,33 +1,33 @@
+# frozen_string_literal: true
require 'json'
require 'kitchen'
require 'chef/provisioning/vsphere_driver'
require 'chef/provisioning/machine_spec'
module Kitchen
module Driver
class Vsphere < Kitchen::Driver::Base
-
@@chef_zero_server = false
default_config :machine_options,
- :start_timeout => 600,
- :create_timeout => 600,
- :stop_timeout => 600,
- :ready_timeout => 90,
- :bootstrap_options => {
- :use_linked_clone => true,
- :ssh => {
- :user => 'root',
- :paranoid => false,
- :port => 22
- },
- :convergence_options => {},
- :customization_spec => {
- :domain => 'local'
- }
- }
+ start_timeout: 600,
+ create_timeout: 600,
+ stop_timeout: 600,
+ ready_timeout: 90,
+ bootstrap_options: {
+ use_linked_clone: true,
+ ssh: {
+ user: 'root',
+ paranoid: false,
+ port: 22
+ },
+ convergence_options: {},
+ customization_spec: {
+ domain: 'local'
+ }
+ }
default_config(:vsphere_name) do |driver|
"#{driver.instance.name}-#{SecureRandom.hex(4)}"
end
@@ -35,11 +35,11 @@
state[:vsphere_name] = config[:vsphere_name]
state[:username] = config[:machine_options][:bootstrap_options][:ssh][:user]
state[:password] = config[:machine_options][:bootstrap_options][:ssh][:password]
config[:server_name] = state[:vsphere_name]
- machine = with_provisioning_driver(state) do | action_handler, driver, machine_spec|
+ machine = with_provisioning_driver(state) do |action_handler, driver, machine_spec|
driver.allocate_machine(action_handler, machine_spec, config[:machine_options])
driver.ready_machine(action_handler, machine_spec, config[:machine_options])
state[:server_id] = machine_spec.location['server_id']
state[:hostname] = machine_spec.location['ipaddress']
machine_spec.save(action_handler)
@@ -47,38 +47,38 @@
end
def destroy(state)
return if state[:server_id].nil?
- with_provisioning_driver(state) do | action_handler, driver, machine_spec|
+ with_provisioning_driver(state) do |action_handler, driver, machine_spec|
machine_spec.location = { 'driver_url' => driver.driver_url,
- 'server_id' => state[:server_id]}
+ 'server_id' => state[:server_id] }
driver.destroy_machine(action_handler, machine_spec, config[:machine_options])
end
state.delete(:server_id)
state.delete(:hostname)
state.delete(:vsphere_name)
end
- def with_provisioning_driver(state, &block)
- config[:machine_options][:convergence_options] = {:chef_server => chef_server}
+ def with_provisioning_driver(state)
+ config[:machine_options][:convergence_options] = { chef_server: chef_server }
machine_spec = Chef::Provisioning.chef_managed_entry_store(chef_server).get(:machine, state[:vsphere_name])
if machine_spec.nil?
machine_spec = Chef::Provisioning.chef_managed_entry_store(chef_server)
- .new_entry(:machine, state[:vsphere_name])
+ .new_entry(:machine, state[:vsphere_name])
end
url = URI::VsphereUrl.from_config(@config[:driver_options]).to_s
driver = Chef::Provisioning.driver_for_url(url, config)
action_handler = Chef::Provisioning::ActionHandler.new
- block.call(action_handler, driver, machine_spec)
+ yield(action_handler, driver, machine_spec)
end
def chef_server
- if !@@chef_zero_server
+ unless @@chef_zero_server
vsphere_mutex.synchronize do
- if !@@chef_zero_server
+ unless @@chef_zero_server
Chef::Config.local_mode = true
Chef::Config.chef_repo_path = Chef::Config.find_chef_repo_path(Dir.pwd)
require 'chef/local_mode'
Chef::LocalMode.setup_server_connectivity
@@chef_zero_server = true
@@ -90,10 +90,10 @@
end
def vsphere_mutex
@@vsphere_mutex ||= begin
Kitchen.mutex.synchronize do
- instance.class.mutexes ||= Hash.new
+ instance.class.mutexes ||= {}
instance.class.mutexes[self.class] = Mutex.new
end
instance.class.mutexes[self.class]
end