class VmwareClass

Wrapper class to interact with vmware

Public Class Methods

new(host_name) click to toggle source
# File lib/miq_utilities/vmware.rb, line 18
def initialize(host_name)
  @host_name = host_name
end

Public Instance Methods

find_vm(datacenter, vmname) click to toggle source
# File lib/miq_utilities/vmware.rb, line 32
def find_vm(datacenter, vmname)
  vm = {}
  datacenter.datastoreFolder.childEntity.collect do |datastore|
    vm[:instance] = datastore.vm.find { |x| x.name == vmname }
    if vm[:instance]
      vm[:datastore] = datastore.name
      break
    end
  end
  vm
end
get_vsphere_connection(user, password) click to toggle source
# File lib/miq_utilities/vmware.rb, line 22
def get_vsphere_connection(user, password)
  @connection = RbVmomi::VIM.connect(host: @host_name, user: user, password: password, insecure: true)
  @connection
end
retrieve_data_center() click to toggle source
# File lib/miq_utilities/vmware.rb, line 27
def retrieve_data_center
  @connection.serviceInstance.find_datacenter || raise('Datacenter not found!') unless @connection.nil?
  raise("No connection established!\nUse the \"get_vsphere_connection\" method to connect.") if @connection.nil?
end
upg_tools(vmobj) click to toggle source
# File lib/miq_utilities/vmware.rb, line 44
def upg_tools(vmobj)
  instopts = if vmobj[:instance][:guest][:guestFamily] == 'windowsGuest'
               '/s /v "/qn REBOOT=ReallySuppress"'
             end
  vmobj[:instance].UpgradeTools_Task(installerOptions: instopts).wait_for_completion
end