Class: MiqVimClientBase

Inherits:
VimService
  • Object
show all
Defined in:
lib/VMwareWebService/MiqVimClientBase.rb

Overview

require ‘profile’

Direct Known Subclasses

MiqVimCoreUpdater, MiqVimInventory

Constant Summary collapse

@@receiveTimeout =
120

Instance Attribute Summary collapse

Attributes inherited from VimService

#about, #apiVersion, #isVirtualCenter, #serviceInstanceMor, #session_cookie, #sic, #v2, #v20, #v4, #v5, #v6

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from VimService

#acquireMksTicket, #acquireTicket, #addHost_Task, #addInternetScsiSendTargets, #addInternetScsiStaticTargets, #addStandaloneHost_Task, #browseDiagnosticLog, #cancelTask, #cancelWaitForUpdates, #cloneVM_Task, #continueRetrievePropertiesEx, #createAlarm, #createCollectorForEvents, #createCustomizationSpec, #createFilter, #createFolder, #createNasDatastore, #createSnapshot_Task, #createVM_Task, #currentTime, #customizationSpecItemToXml, #deleteCustomizationSpec, #deselectVnicForNicType, #destroyCollector, #destroyPropertyFilter, #destroy_Task, #disableRuleset, #doesCustomizationSpecExist, #enableRuleset, #enterMaintenanceMode_Task, #exitMaintenanceMode_Task, #getAlarm, #getCustomizationSpec, #logUserEvent, #login, #logout, #markAsTemplate, #markAsVirtualMachine, #migrateVM_Task, #moveIntoFolder_Task, #powerDownHostToStandBy_Task, #powerOffVM_Task, #powerOnVM_Task, #powerUpHostFromStandBy_Task, #queryAvailablePerfMetric, #queryDescriptions, #queryDvsConfigTarget, #queryNetConfig, #queryOptions, #queryPerf, #queryPerfComposite, #queryPerfProviderSummary, #readNextEvents, #readPreviousEvents, #rebootGuest, #rebootHost_Task, #reconfigVM_Task, #reconfigureAlarm, #refreshFirewall, #refreshNetworkSystem, #refreshServices, #registerVM_Task, #relocateVM_Task, #removeAlarm, #removeAllSnapshots_Task, #removeSnapshot_Task, #renameSnapshot, #rename_Task, #resetCollector, #resetVM_Task, #restartService, #retrieveProperties, #retrievePropertiesCompat, #retrievePropertiesEx, #retrievePropertiesIter, #retrieveServiceContent, #revertToCurrentSnapshot_Task, #revertToSnapshot_Task, #rewindCollector, #searchDatastoreSubFolders_Task, #searchDatastore_Task, #selectVnicForNicType, #setCollectorPageSize, #setField, #setTaskDescription, #setTaskState, #shutdownGuest, #shutdownHost_Task, #standbyGuest, #startService, #stopService, #suspendVM_Task, #uninstallService, #unregisterVM, #updateDefaultPolicy, #updateServicePolicy, #updateSoftwareInternetScsiEnabled, #waitForUpdates, #waitForUpdatesEx, #xmlToCustomizationSpecItem

Constructor Details

#initialize(server, username, password) ⇒ MiqVimClientBase

Returns a new instance of MiqVimClientBase.



13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/VMwareWebService/MiqVimClientBase.rb', line 13

def initialize(server, username, password)
  @server   = server
  @username = username
  @password = password
  @connId   = "#{@server}_#{@username}"

  @receiveTimeout = @@receiveTimeout

  on_http_client_init do |http_client, _headers|
    http_client.ssl_config.verify_mode    = OpenSSL::SSL::VERIFY_NONE
    http_client.ssl_config.verify_callback  = method(:verify_callback).to_proc
    http_client.receive_timeout       = @receiveTimeout
  end

  on_log_header { |msg| $vim_log.info msg }
  on_log_body   { |msg| $vim_log.debug msg } if $miq_wiredump

  super(:uri => sdk_uri, :version => 1)

  @connected  = false
  @connLock = Sync.new
end

Instance Attribute Details

#connIdObject (readonly)

Returns the value of attribute connId.



11
12
13
# File 'lib/VMwareWebService/MiqVimClientBase.rb', line 11

def connId
  @connId
end

#passwordObject (readonly)

Returns the value of attribute password.



11
12
13
# File 'lib/VMwareWebService/MiqVimClientBase.rb', line 11

def password
  @password
end

#serverObject (readonly)

Returns the value of attribute server.



11
12
13
# File 'lib/VMwareWebService/MiqVimClientBase.rb', line 11

def server
  @server
end

#usernameObject (readonly)

Returns the value of attribute username.



11
12
13
# File 'lib/VMwareWebService/MiqVimClientBase.rb', line 11

def username
  @username
end

Class Method Details

.receiveTimeoutObject



44
45
46
# File 'lib/VMwareWebService/MiqVimClientBase.rb', line 44

def self.receiveTimeout
  @@receiveTimeout
end

.receiveTimeout=(val) ⇒ Object



40
41
42
# File 'lib/VMwareWebService/MiqVimClientBase.rb', line 40

def self.receiveTimeout=(val)
  @@receiveTimeout = val
end

Instance Method Details

#acquireCloneTicketObject



83
84
85
# File 'lib/VMwareWebService/MiqVimClientBase.rb', line 83

def acquireCloneTicket
  super(@sic.sessionManager)
end

#connectObject



61
62
63
64
65
66
67
68
# File 'lib/VMwareWebService/MiqVimClientBase.rb', line 61

def connect
  $vim_log.debug "#{self.class.name}.connect(#{@connId}): #{$PROGRAM_NAME} #{ARGV.join(' ')}" if $vim_log.debug?
  @connLock.synchronize(:EX) do
    return if @connected
    (@sic.sessionManager, @username, @password)
    @connected = true
  end
end

#currentServerTimeObject



79
80
81
# File 'lib/VMwareWebService/MiqVimClientBase.rb', line 79

def currentServerTime
  DateTime.parse(currentTime)
end

#disconnectObject



70
71
72
73
74
75
76
77
# File 'lib/VMwareWebService/MiqVimClientBase.rb', line 70

def disconnect
  $vim_log.debug "#{self.class.name}.disconnect(#{@connId}): #{$PROGRAM_NAME} #{ARGV.join(' ')}" if $vim_log.debug?
  @connLock.synchronize(:EX) do
    return unless @connected
    logout(@sic.sessionManager)
    @connected = false
  end
end

#receiveTimeoutObject



55
56
57
58
59
# File 'lib/VMwareWebService/MiqVimClientBase.rb', line 55

def receiveTimeout
  @connLock.synchronize(:SH) do
    @receiveTimeout
  end
end

#receiveTimeout=(val) ⇒ Object



48
49
50
51
52
53
# File 'lib/VMwareWebService/MiqVimClientBase.rb', line 48

def receiveTimeout=(val)
  @connLock.synchronize(:EX) do
    @receiveTimeout = val
    http_client.receive_timeout = @receiveTimeout if http_client
  end
end

#sdk_uriObject



36
37
38
# File 'lib/VMwareWebService/MiqVimClientBase.rb', line 36

def sdk_uri
  URI::HTTPS.build(:host => server, :path => "/sdk")
end

#verify_callback(is_ok, ctx) ⇒ Object



87
88
89
90
91
92
93
94
95
96
97
98
# File 'lib/VMwareWebService/MiqVimClientBase.rb', line 87

def verify_callback(is_ok, ctx)
  if $DEBUG
    puts "#{is_ok ? 'ok' : 'ng'}: #{ctx.current_cert.subject}"
  end
  unless is_ok
    depth = ctx.error_depth
    code = ctx.error
    msg = ctx.error_string
    STDERR.puts "at depth #{depth} - #{code}: #{msg}" if $DEBUG
  end
  is_ok
end