Method: Lab::Drivers::VsphereDriver#initialize

Defined in:
lib/lab/driver/vsphere_driver.rb

#initialize(config) ⇒ VsphereDriver

Returns a new instance of VsphereDriver.



15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/lab/driver/vsphere_driver.rb', line 15

def initialize(config)
  unless config['user'] then raise ArgumentError, "Must provide a username" end
  unless config['host'] then raise ArgumentError, "Must provide a hostname" end
  unless config['pass'] then raise ArgumentError, "Must provide a password" end
  super(config)

  @user = filter_command(config['user'])
  @host = filter_command(config['host'])

  # Soft dependency
  begin
    require 'rbvmomi'
  rescue LoadError
    raise "WARNING: Library rbvmomi not found. Could not create driver!"
  end

  vim = RbVmomi::VIM.connect host: @host, user: @user, password: @pass, insecure: true
  dc = vim.serviceInstance.find_datacenter("datacenter1") or fail "datacenter not found"
  @vm = dc.find_vm("test") or fail "VM not found"
end