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



33
34
35
36
37
38
# File 'lib/rbvmomi/vim/HostSystem.rb', line 33

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



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

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



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

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

#dtiObject



24
25
26
# File 'lib/rbvmomi/vim/HostSystem.rb', line 24

def dti
  @cached_dti ||= dtm.DynamicTypeMgrQueryTypeInfo
end

#dtmObject



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# File 'lib/rbvmomi/vim/HostSystem.rb', line 8

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



4
5
6
# File 'lib/rbvmomi/vim/HostSystem.rb', line 4

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

#mmeObject



40
41
42
# File 'lib/rbvmomi/vim/HostSystem.rb', line 40

def mme
  @cached_mme ||= RetrieveManagedMethodExecuter()
end