class Vcloud::Walker::Resource::Vm
Constants
- HARDWARE_RESOURCE_TYPES
Attributes
cpu[R]
disks[R]
id[R]
memory[R]
metadata[R]
network_cards[R]
network_connections[R]
operating_system[R]
primary_network_connection_index[R]
status[R]
storage_profile[R]
virtual_system_type[R]
vmware_tools[R]
Public Class Methods
new(fog_vm)
click to toggle source
# File lib/vcloud/walker/resource/vm.rb, line 28 def initialize fog_vm @id = extract_id(fog_vm[:href]) @status = fog_vm[:status] @operating_system = fog_vm[:'ovf:OperatingSystemSection'][:'ovf:Description'] @network_connections = fog_vm[:NetworkConnectionSection][:NetworkConnection] if fog_vm[:NetworkConnectionSection] @primary_network_connection_index = fog_vm[:NetworkConnectionSection][:PrimaryNetworkConnectionIndex] extract_compute_capacity fog_vm[:'ovf:VirtualHardwareSection'][:'ovf:Item'] @vmware_tools = fog_vm[:RuntimeInfoSection][:VMWareTools] @virtual_system_type = extract_virtual_system_type(fog_vm[:'ovf:VirtualHardwareSection']) @storage_profile = { :id => fog_vm[:StorageProfile][:href].split('/').last, :name => fog_vm[:StorageProfile][:name], } @metadata = Vcloud::Core::Vm.get_metadata(id) end
Private Instance Methods
extract_compute_capacity(ovf_resources)
click to toggle source
# File lib/vcloud/walker/resource/vm.rb, line 46 def extract_compute_capacity ovf_resources %w(cpu memory disks network_cards).each { |resource| send("extract_#{resource}", ovf_resources) } unless ovf_resources.empty? end
extract_cpu(resources)
click to toggle source
# File lib/vcloud/walker/resource/vm.rb, line 50 def extract_cpu(resources) @cpu = resources.detect { |element| element[:'rasd:ResourceType']== HARDWARE_RESOURCE_TYPES[:cpu] }[:'rasd:ElementName'] end
extract_disk_capacity(d)
click to toggle source
# File lib/vcloud/walker/resource/vm.rb, line 65 def extract_disk_capacity(d) (d[:"rasd:HostResource"][:ns12_capacity] || d[:"rasd:HostResource"][:vcloud_capacity]).to_i end
extract_disks(resources)
click to toggle source
# File lib/vcloud/walker/resource/vm.rb, line 58 def extract_disks(resources) disk_resources = resources.select { |element| element[:'rasd:ResourceType']== HARDWARE_RESOURCE_TYPES[:hard_disk] } @disks = disk_resources.collect do |d| {:name => d[:'rasd:ElementName'], :size => extract_disk_capacity(d)} end end
extract_memory(resources)
click to toggle source
# File lib/vcloud/walker/resource/vm.rb, line 54 def extract_memory(resources) @memory = resources.detect { |element| element[:'rasd:ResourceType']== HARDWARE_RESOURCE_TYPES[:memory] }[:'rasd:ElementName'] end
extract_network_cards(resources)
click to toggle source
# File lib/vcloud/walker/resource/vm.rb, line 69 def extract_network_cards(resources) resources = resources.select { |element| element[:'rasd:ResourceType'] == HARDWARE_RESOURCE_TYPES[:network_adapter] } @network_cards = resources.collect do |r| {:name => r[:'rasd:ElementName'], :type => r[:'rasd:ResourceSubType'], :mac_address => r[:'rasd:Address'], } end end
extract_virtual_system_type(virtual_hardware_section)
click to toggle source
# File lib/vcloud/walker/resource/vm.rb, line 81 def extract_virtual_system_type virtual_hardware_section virtual_system = virtual_hardware_section[:"ovf:System"] virtual_system[:"vssd:VirtualSystemType"] if virtual_system end