Class: RbVmomi::VIM::HostSystem

Inherits:
Object
  • Object
show all
Defined in:
lib/rbvmomi/vim/HostSystem.rb

Instance Method Summary collapse

Instance Method Details

#cli_info_fetcherObject


37
38
39
40
41
42
43
# File 'lib/rbvmomi/vim/HostSystem.rb', line 37

def cli_info_fetcher
  # XXX there can be more than one
  return @cached_cli_info_fetcher if @cached_cli_info_fetcher

  inst = dtm.DynamicTypeMgrQueryMoInstances.find { |x| x.moType == 'vim.CLIInfo' }
  @cached_cli_info_fetcher = create_dynamic_managed_object inst
end

#create_dynamic_managed_object(inst) ⇒ Object


32
33
34
35
# File 'lib/rbvmomi/vim/HostSystem.rb', line 32

def create_dynamic_managed_object inst
  wsdlName = dti.managedTypeInfo.find { |x| x.name == inst.moType }.wsdlName
  _connection.type(wsdlName).new(_connection, inst.id)
end

#direct?Boolean

Returns:

  • (Boolean)

49
50
51
# File 'lib/rbvmomi/vim/HostSystem.rb', line 49

def direct?
  @ref == 'ha-host'
end

#dtiObject


28
29
30
# File 'lib/rbvmomi/vim/HostSystem.rb', line 28

def dti
  @cached_dti ||= dtm.DynamicTypeMgrQueryTypeInfo
end

#dtmObject


12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/rbvmomi/vim/HostSystem.rb', line 12

def dtm
  @cached_dtm ||= begin
      RetrieveDynamicTypeManager()
    rescue VIM::MethodNotFound
      if summary.config.product.version >= '4.1.0'
        if summary.config.product.version < '5.0.0' and direct?
          VIM::InternalDynamicTypeManager(_connection, 'ha-dynamic-type-manager')
        else
          raise 'esxcli not supported through VC before 5.0.0'
        end
      else
        raise 'esxcli not supported before 4.1.0'
      end
    end
end

#esxcliObject


8
9
10
# File 'lib/rbvmomi/vim/HostSystem.rb', line 8

def esxcli
  @cached_esxcli ||= VIM::EsxcliNamespace.root(self)
end

#mmeObject


45
46
47
# File 'lib/rbvmomi/vim/HostSystem.rb', line 45

def mme
  @cached_mme ||= RetrieveManagedMethodExecuter()
end