Class: MiqVimClientBase

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

Overview

require ‘profile’

Direct Known Subclasses

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

Methods included from VMwareWebService::Logging

#logger

Constructor Details

#initialize(server:, username:, password:, port: 443, ssl_options: {}) ⇒ 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
35
# File 'lib/VMwareWebService/MiqVimClientBase.rb', line 13

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

  @receiveTimeout = @@receiveTimeout

  on_http_client_init do |http_client, _headers|
    http_client.receive_timeout        = @receiveTimeout
    http_client.ssl_config.verify_mode = ssl_options[:verify_ssl] || OpenSSL::SSL::VERIFY_NONE
    http_client.ssl_config.cert_store.add_cert(OpenSSL::X509::Certificate.new(ssl_options[:ca_file])) if ssl_options[:ca_file]
  end

  on_log_header { |msg| logger.info msg }
  on_log_body   { |msg| logger.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

#portObject (readonly)

Returns the value of attribute port.



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

def port
  @port
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



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

def self.receiveTimeout
  @@receiveTimeout
end

.receiveTimeout=(val) ⇒ Object



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

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

Instance Method Details

#acquireCloneTicketObject



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

def acquireCloneTicket
  super(@sic.sessionManager)
end

#connectObject



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

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

#currentServerTimeObject



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

def currentServerTime
  DateTime.parse(currentTime)
end

#disconnectObject



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

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

#receiveTimeoutObject



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

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

#receiveTimeout=(val) ⇒ Object



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

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

#sdk_uriObject



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

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

#verify_callback(is_ok, ctx) ⇒ Object



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

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