Class: RbVmomi::VIM
- Inherits:
-
Connection
- Object
- Connection
- RbVmomi::VIM
- Defined in:
- lib/rbvmomi/vim.rb
Overview
A connection to one vSphere SDK endpoint.
Defined Under Namespace
Classes: ComputeResource, Datacenter, Datastore, DynamicTypeMgrAllTypeInfo, DynamicTypeMgrDataTypeInfo, DynamicTypeMgrManagedTypeInfo, EsxcliCommand, EsxcliNamespace, Folder, HostSystem, ManagedEntity, ManagedObject, ObjectContent, ObjectUpdate, OvfManager, PerfCounterInfo, PerformanceManager, PropertyCollector, ReflectManagedMethodExecuter, ResourcePool, ServiceInstance, Task, VirtualMachine
Class Method Summary collapse
-
.connect(opts) ⇒ Object
Connect to a vSphere SDK endpoint.
Instance Method Summary collapse
- #close ⇒ Object
- #get_log_keys(host = nil) ⇒ Object
- #get_log_lines(logKey, lines = 5, start = nil, host = nil) ⇒ Object
- #instanceUuid ⇒ Object
-
#propertyCollector ⇒ Object
Alias to serviceContent.propertyCollector.
- #rev=(x) ⇒ Object
-
#rootFolder ⇒ Object
(also: #root)
Alias to serviceContent.rootFolder.
-
#searchIndex ⇒ Object
Alias to serviceContent.searchIndex.
-
#serviceContent ⇒ Object
Alias to serviceInstance.RetrieveServiceContent.
-
#serviceInstance ⇒ Object
Return the ServiceInstance.
Class Method Details
.connect(opts) ⇒ Object
Connect to a vSphere SDK endpoint
28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 |
# File 'lib/rbvmomi/vim.rb', line 28 def self.connect opts fail unless opts.is_a? Hash fail "host option required" unless opts[:host] opts[:cookie] ||= nil opts[:user] ||= (WIN32 ? ENV['USERNAME'].dup : 'root') opts[:password] ||= '' opts[:ssl] = true unless opts.member? :ssl or opts[:"no-ssl"] opts[:insecure] ||= false opts[:port] ||= (opts[:ssl] ? 443 : 80) opts[:path] ||= '/sdk' opts[:ns] ||= 'urn:vim25' rev_given = opts[:rev] != nil opts[:rev] = '6.0' unless rev_given opts[:debug] = (!ENV['RBVMOMI_DEBUG'].empty? rescue false) unless opts.member? :debug new(opts).tap do |vim| unless opts[:cookie] if WIN32 && opts[:password] == '' # Attempt login by SSPI if no password specified on Windows negotiation = Win32::SSPI::NegotiateAuth.new opts[:user], ENV['USERDOMAIN'].dup begin vim.serviceContent.sessionManager.LoginBySSPI :base64Token => negotiation.get_initial_token rescue RbVmomi::Fault => fault if !fault.fault.is_a?(RbVmomi::VIM::SSPIChallenge) raise else vim.serviceContent.sessionManager.LoginBySSPI :base64Token => negotiation.complete_authentication(fault.base64Token) end end else vim.serviceContent.sessionManager.Login :userName => opts[:user], :password => opts[:password] end end unless rev_given rev = vim.serviceContent.about.apiVersion vim.rev = [rev, '6.0'].min end end end |
Instance Method Details
#close ⇒ Object
68 69 70 71 72 |
# File 'lib/rbvmomi/vim.rb', line 68 def close VIM::SessionManager(self, 'SessionManager').Logout rescue RbVmomi::Fault self. = nil super end |
#get_log_keys(host = nil) ⇒ Object
134 135 136 137 138 139 140 141 |
# File 'lib/rbvmomi/vim.rb', line 134 def get_log_keys host=nil diagMgr = self.serviceContent.diagnosticManager keys = [] diagMgr.QueryDescriptions(:host => host).each do |desc| keys << "#{desc.key}" end keys end |
#get_log_lines(logKey, lines = 5, start = nil, host = nil) ⇒ Object
118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 |
# File 'lib/rbvmomi/vim.rb', line 118 def get_log_lines logKey, lines=5, start=nil, host=nil diagMgr = self.serviceContent.diagnosticManager if !start log = diagMgr.BrowseDiagnosticLog(:host => host, :key => logKey, :start => 999999999) lineEnd = log.lineEnd start = lineEnd - lines end start = start < 0 ? 0 : start log = diagMgr.BrowseDiagnosticLog(:host => host, :key => logKey, :start => start) if log.lineText.size > 0 [log.lineText.slice(-lines, log.lineText.size), log.lineEnd] else [log.lineText, log.lineEnd] end end |
#instanceUuid ⇒ Object
114 115 116 |
# File 'lib/rbvmomi/vim.rb', line 114 def instanceUuid serviceContent.about.instanceUuid end |
#propertyCollector ⇒ Object
Alias to serviceContent.propertyCollector
100 101 102 |
# File 'lib/rbvmomi/vim.rb', line 100 def propertyCollector serviceContent.propertyCollector end |
#rev=(x) ⇒ Object
74 75 76 77 |
# File 'lib/rbvmomi/vim.rb', line 74 def rev= x super @serviceContent = nil end |
#rootFolder ⇒ Object Also known as: root
Alias to serviceContent.rootFolder
93 94 95 |
# File 'lib/rbvmomi/vim.rb', line 93 def rootFolder serviceContent.rootFolder end |
#searchIndex ⇒ Object
Alias to serviceContent.searchIndex
105 106 107 |
# File 'lib/rbvmomi/vim.rb', line 105 def searchIndex serviceContent.searchIndex end |
#serviceContent ⇒ Object
Alias to serviceInstance.RetrieveServiceContent
88 89 90 |
# File 'lib/rbvmomi/vim.rb', line 88 def serviceContent @serviceContent ||= serviceInstance.RetrieveServiceContent end |
#serviceInstance ⇒ Object
Return the ServiceInstance
The ServiceInstance is the root of the vSphere inventory.
83 84 85 |
# File 'lib/rbvmomi/vim.rb', line 83 def serviceInstance VIM::ServiceInstance self, 'ServiceInstance' end |