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
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 67 68 69 70 71 72 |
# File 'lib/rbvmomi/vim.rb', line 31 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.5' unless rev_given opts[:debug] = (!ENV['RBVMOMI_DEBUG'].empty? rescue false) unless opts.member? :debug conn = 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.5'].min end end at_exit { conn.close } conn end |
Instance Method Details
#close ⇒ Object
74 75 76 77 78 79 80 81 |
# File 'lib/rbvmomi/vim.rb', line 74 def close serviceContent.sessionManager.Logout rescue RbVmomi::Fault => e $stderr.puts(e.) if debug ensure self. = nil super end |
#get_log_keys(host = nil) ⇒ Object
143 144 145 146 147 148 149 150 |
# File 'lib/rbvmomi/vim.rb', line 143 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
127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 |
# File 'lib/rbvmomi/vim.rb', line 127 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
123 124 125 |
# File 'lib/rbvmomi/vim.rb', line 123 def instanceUuid serviceContent.about.instanceUuid end |
#propertyCollector ⇒ Object
Alias to serviceContent.propertyCollector
109 110 111 |
# File 'lib/rbvmomi/vim.rb', line 109 def propertyCollector serviceContent.propertyCollector end |
#rev=(x) ⇒ Object
83 84 85 86 |
# File 'lib/rbvmomi/vim.rb', line 83 def rev= x super @serviceContent = nil end |
#rootFolder ⇒ Object Also known as: root
Alias to serviceContent.rootFolder
102 103 104 |
# File 'lib/rbvmomi/vim.rb', line 102 def rootFolder serviceContent.rootFolder end |
#searchIndex ⇒ Object
Alias to serviceContent.searchIndex
114 115 116 |
# File 'lib/rbvmomi/vim.rb', line 114 def searchIndex serviceContent.searchIndex end |
#serviceContent ⇒ Object
Alias to serviceInstance.RetrieveServiceContent
97 98 99 |
# File 'lib/rbvmomi/vim.rb', line 97 def serviceContent @serviceContent ||= serviceInstance.RetrieveServiceContent end |
#serviceInstance ⇒ Object
Return the ServiceInstance
The ServiceInstance is the root of the vSphere inventory.
92 93 94 |
# File 'lib/rbvmomi/vim.rb', line 92 def serviceInstance VIM::ServiceInstance self, 'ServiceInstance' end |