class Fog::Compute::VcloudDirector::Vm

Public Instance Methods

cpu=(new_cpu) click to toggle source
# File lib/fog/vcloud_director/models/compute/vm.rb, line 148
def cpu=(new_cpu)
  has_changed = ( cpu != new_cpu.to_i )
  not_first_set = !cpu.nil?
  attributes[:cpu] = new_cpu.to_i
  if not_first_set && has_changed
    response = service.put_cpu(id, cpu)
    service.process_task(response.body)
  end
end
customization() click to toggle source
# File lib/fog/vcloud_director/models/compute/vm.rb, line 121
def customization
  requires :id
  data = service.get_vm_customization(id).body
  service.vm_customizations.new(data)
end
disks() click to toggle source
# File lib/fog/vcloud_director/models/compute/vm.rb, line 133
def disks
  requires :id
  service.disks(:vm => self)
end
memory=(new_memory) click to toggle source
# File lib/fog/vcloud_director/models/compute/vm.rb, line 138
def memory=(new_memory)
  has_changed = ( memory != new_memory.to_i )
  not_first_set = !memory.nil?
  attributes[:memory] = new_memory.to_i
  if not_first_set && has_changed
    response = service.put_memory(id, memory)
    service.process_task(response.body)
  end
end
network() click to toggle source
# File lib/fog/vcloud_director/models/compute/vm.rb, line 127
def network
  requires :id
  data = service.get_vm_network(id).body
  service.vm_networks.new(data)
end
power_off() click to toggle source

Power off the VM.

# File lib/fog/vcloud_director/models/compute/vm.rb, line 45
def power_off
  requires :id
  begin
    response = service.post_power_off_vapp(id)
  rescue Fog::Compute::VcloudDirector::BadRequest => ex
    Fog::Logger.debug(ex.message)
    return false
  end
  service.process_task(response.body)
end
power_on() click to toggle source

Power on the VM.

# File lib/fog/vcloud_director/models/compute/vm.rb, line 57
def power_on
  requires :id
  begin
    response = service.post_power_on_vapp(id)
  rescue Fog::Compute::VcloudDirector::BadRequest => ex
    Fog::Logger.debug(ex.message)
    return false
  end
  service.process_task(response.body)
end
ready?() click to toggle source
# File lib/fog/vcloud_director/models/compute/vm.rb, line 158
def ready?
  reload
  status == 'on'
end
reboot() click to toggle source

Reboot the VM.

# File lib/fog/vcloud_director/models/compute/vm.rb, line 69
def reboot
  requires :id
  begin
    response = service.post_reboot_vapp(id)
  rescue Fog::Compute::VcloudDirector::BadRequest => ex
    Fog::Logger.debug(ex.message)
    return false
  end
  service.process_task(response.body)
end
reload() click to toggle source
Calls superclass method
# File lib/fog/vcloud_director/models/compute/vm.rb, line 22
def reload
  # when collection.vapp is nil, it means it's fatherless,
  # vms from different vapps are loaded in the same collection.
  # This situation comes from a "query" result
  collection.vapp.nil? ? reload_single_vm : super
end
reload_single_vm() click to toggle source
# File lib/fog/vcloud_director/models/compute/vm.rb, line 29
def reload_single_vm
  return unless data = begin
    collection.get_single_vm(identity)
  rescue Excon::Errors::SocketError
    nil
  end
  # these two attributes don't exists in the get_single_vm response
  # that's why i use the old attributes
  data.attributes[:vapp_id] = attributes[:vapp_id]
  data.attributes[:vapp_name] = attributes[:vapp_name]
  new_attributes = data.attributes
  merge_attributes(new_attributes)
  self
end
reset() click to toggle source

Reset the VM.

# File lib/fog/vcloud_director/models/compute/vm.rb, line 81
def reset
  requires :id
  begin
    response = service.post_reset_vapp(id)
  rescue Fog::Compute::VcloudDirector::BadRequest => ex
    Fog::Logger.debug(ex.message)
    return false
  end
  service.process_task(response.body)
end
shutdown() click to toggle source

Shut down the VM.

# File lib/fog/vcloud_director/models/compute/vm.rb, line 93
def shutdown
  requires :id
  begin
    response = service.post_shutdown_vapp(id)
  rescue Fog::Compute::VcloudDirector::BadRequest => ex
    Fog::Logger.debug(ex.message)
    return false
  end
  service.process_task(response.body)
end
suspend() click to toggle source

Suspend the VM.

# File lib/fog/vcloud_director/models/compute/vm.rb, line 105
def suspend
  requires :id
  begin
    response = service.post_suspend_vapp(id)
  rescue Fog::Compute::VcloudDirector::BadRequest => ex
    Fog::Logger.debug(ex.message)
    return false
  end
  service.process_task(response.body)
end
tags() click to toggle source
# File lib/fog/vcloud_director/models/compute/vm.rb, line 116
def tags
  requires :id
  service.tags(:vm => self)
end
vapp() click to toggle source
# File lib/fog/vcloud_director/models/compute/vm.rb, line 163
def vapp
  # get_by_metadata returns a vm collection where every vapp parent is orpahn
  collection.vapp ||= service.vapps.get(vapp_id)
end