Class: VSphereCloud::Resources::Datastore
- Inherits:
-
Object
- Object
- VSphereCloud::Resources::Datastore
- Includes:
- VimSdk
- Defined in:
- lib/cloud/vsphere/resources/datastore.rb
Constant Summary collapse
- PROPERTIES =
%w(summary.freeSpace summary.capacity name)
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 Attribute Summary collapse
-
#allocated_after_sync ⇒ Integer
Allocated space since vSphere fetch.
-
#mob ⇒ Vim::Datastore
Datastore vSphere MOB.
-
#name ⇒ String
Datastore name.
-
#synced_free_space ⇒ Integer
Datastore free space when fetched from vSphere.
-
#total_space ⇒ Integer
Datastore capacity.
Class Method Summary collapse
Instance Method Summary collapse
-
#allocate(space) ⇒ void
Marks the disk space against the cached utilization data.
- #debug_info ⇒ Object
-
#free_space ⇒ Integer
Free disk space available for allocation.
-
#initialize(name, mob, total_space, synced_free_space) ⇒ Datastore
constructor
Creates a Datastore resource from the prefetched vSphere properties.
-
#inspect ⇒ String
Debug datastore information.
Constructor Details
#initialize(name, mob, total_space, synced_free_space) ⇒ Datastore
Creates a Datastore resource from the prefetched vSphere properties.
45 46 47 48 49 50 51 |
# File 'lib/cloud/vsphere/resources/datastore.rb', line 45 def initialize(name, mob, total_space, synced_free_space) @name = name @mob = mob @total_space = total_space @synced_free_space = synced_free_space @allocated_after_sync = 0 end |
Instance Attribute Details
#allocated_after_sync ⇒ Integer
Returns allocated space since vSphere fetch.
39 40 41 |
# File 'lib/cloud/vsphere/resources/datastore.rb', line 39 def allocated_after_sync @allocated_after_sync end |
#mob ⇒ Vim::Datastore
Returns datastore vSphere MOB.
27 28 29 |
# File 'lib/cloud/vsphere/resources/datastore.rb', line 27 def mob @mob end |
#name ⇒ String
Returns datastore name.
23 24 25 |
# File 'lib/cloud/vsphere/resources/datastore.rb', line 23 def name @name end |
#synced_free_space ⇒ Integer
Returns datastore free space when fetched from vSphere.
35 36 37 |
# File 'lib/cloud/vsphere/resources/datastore.rb', line 35 def synced_free_space @synced_free_space end |
#total_space ⇒ Integer
Returns datastore capacity.
31 32 33 |
# File 'lib/cloud/vsphere/resources/datastore.rb', line 31 def total_space @total_space end |
Class Method Details
.build_from_client(client, datastore_properties) ⇒ Object
9 10 11 12 13 14 15 16 17 18 19 |
# File 'lib/cloud/vsphere/resources/datastore.rb', line 9 def self.build_from_client(client, datastore_properties) ds_properties_map = client.cloud_searcher.get_properties(datastore_properties, Vim::Datastore, Datastore::PROPERTIES) ds_properties_map.values.map do |ds_properties| Datastore.new( ds_properties['name'], ds_properties[:obj], ds_properties['summary.capacity'].to_i / BYTES_IN_MB, ds_properties['summary.freeSpace'].to_i / BYTES_IN_MB, ) end end |
Instance Method Details
#allocate(space) ⇒ void
This method returns an undefined value.
Marks the disk space against the cached utilization data.
62 63 64 |
# File 'lib/cloud/vsphere/resources/datastore.rb', line 62 def allocate(space) @allocated_after_sync += space end |
#debug_info ⇒ Object
71 72 73 |
# File 'lib/cloud/vsphere/resources/datastore.rb', line 71 def debug_info "#{name} (#{free_space}MB free of #{total_space}MB capacity)" end |
#free_space ⇒ Integer
Returns free disk space available for allocation.
54 55 56 |
# File 'lib/cloud/vsphere/resources/datastore.rb', line 54 def free_space @synced_free_space - @allocated_after_sync end |
#inspect ⇒ String
Returns debug datastore information.
67 68 69 |
# File 'lib/cloud/vsphere/resources/datastore.rb', line 67 def inspect "<Datastore: #@mob / #@name>" end |