Class: VSphereCloud::LeaseObtainer

Inherits:
Object
  • Object
show all
Includes:
VimSdk
Defined in:
lib/cloud/vsphere/lease_obtainer.rb

Constant Summary

Constants included from VimSdk

VimSdk::BASE_VERSION, VimSdk::DYNAMIC_TYPES, VimSdk::SOAP_BODY_END, VimSdk::SOAP_BODY_START, VimSdk::SOAP_BODY_TAG, VimSdk::SOAP_END, VimSdk::SOAP_ENVELOPE_END, VimSdk::SOAP_ENVELOPE_START, VimSdk::SOAP_ENVELOPE_TAG, VimSdk::SOAP_FAULT_TAG, VimSdk::SOAP_HEADER_END, VimSdk::SOAP_HEADER_START, VimSdk::SOAP_HEADER_TAG, VimSdk::SOAP_NAMESPACE_MAP, VimSdk::SOAP_START, VimSdk::VERSION1, VimSdk::XMLNS_SOAPENC, VimSdk::XMLNS_SOAPENV, VimSdk::XMLNS_VMODL_BASE, VimSdk::XMLNS_XSD, VimSdk::XMLNS_XSI, VimSdk::XML_ENCODING, VimSdk::XML_HEADER

Instance Method Summary collapse

Constructor Details

#initialize(cloud_searcher, logger) ⇒ LeaseObtainer

Returns a new instance of LeaseObtainer.



5
6
7
8
# File 'lib/cloud/vsphere/lease_obtainer.rb', line 5

def initialize(cloud_searcher, logger)
  @cloud_searcher = cloud_searcher
  @logger = logger
end

Instance Method Details

#obtain(resource_pool, import_spec, template_folder) ⇒ Object



10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/cloud/vsphere/lease_obtainer.rb', line 10

def obtain(resource_pool, import_spec, template_folder)
  @logger.info('Importing VApp')
  nfc_lease = resource_pool.mob.import_vapp(import_spec, template_folder.mob, nil)

  @logger.info('Waiting for NFC lease to become ready')
  state = wait_for_nfc_lease(nfc_lease)

  if state == Vim::HttpNfcLease::State::ERROR
    raise_nfc_lease_error(nfc_lease)
  end

  if state != Vim::HttpNfcLease::State::READY
    raise "Could not acquire HTTP NFC lease (state is: '#{state}')"
  end

  nfc_lease
end