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
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 67 68 69 70 71 |
# File 'lib/rbvmomi/vim.rb', line 30 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
73 74 75 76 77 78 79 80 |
# File 'lib/rbvmomi/vim.rb', line 73 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
142 143 144 145 146 147 148 149 |
# File 'lib/rbvmomi/vim.rb', line 142 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
126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 |
# File 'lib/rbvmomi/vim.rb', line 126 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
122 123 124 |
# File 'lib/rbvmomi/vim.rb', line 122 def instanceUuid serviceContent.about.instanceUuid end |
#propertyCollector ⇒ Object
Alias to serviceContent.propertyCollector
108 109 110 |
# File 'lib/rbvmomi/vim.rb', line 108 def propertyCollector serviceContent.propertyCollector end |
#rev=(x) ⇒ Object
82 83 84 85 |
# File 'lib/rbvmomi/vim.rb', line 82 def rev= x super @serviceContent = nil end |
#rootFolder ⇒ Object Also known as: root
Alias to serviceContent.rootFolder
101 102 103 |
# File 'lib/rbvmomi/vim.rb', line 101 def rootFolder serviceContent.rootFolder end |
#searchIndex ⇒ Object
Alias to serviceContent.searchIndex
113 114 115 |
# File 'lib/rbvmomi/vim.rb', line 113 def searchIndex serviceContent.searchIndex end |
#serviceContent ⇒ Object
Alias to serviceInstance.RetrieveServiceContent
96 97 98 |
# File 'lib/rbvmomi/vim.rb', line 96 def serviceContent @serviceContent ||= serviceInstance.RetrieveServiceContent end |
#serviceInstance ⇒ Object
Return the ServiceInstance
The ServiceInstance is the root of the vSphere inventory.
91 92 93 |
# File 'lib/rbvmomi/vim.rb', line 91 def serviceInstance VIM::ServiceInstance self, 'ServiceInstance' end |