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



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

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



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

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)


47
48
49
# File 'lib/rbvmomi/vim/HostSystem.rb', line 47

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

#dtiObject



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

def dti
  @cached_dti ||= dtm.DynamicTypeMgrQueryTypeInfo
end

#dtmObject



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

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



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

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

#mmeObject



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

def mme
  @cached_mme ||= RetrieveManagedMethodExecuter()
end