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 162
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 135
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 147
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 152
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 141
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 48
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 60
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 185
def ready?
  reload
  status == 'on'
end
reboot() click to toggle source

Reboot the VM.

# File lib/fog/vcloud_director/models/compute/vm.rb, line 72
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
reconfigure(options) click to toggle source

Reconfigure a VM using any of the options documented in post_reconfigure_vm

# File lib/fog/vcloud_director/models/compute/vm.rb, line 174
def reconfigure(options)
  options[:name] ||= name # name has to be sent
  # Delete those things that are not changing for performance
  [:cpu, :memory, :description].each do |k|
    options.delete(k) if options.key? k and options[k] == attributes[k]
  end
  response = service.post_reconfigure_vm(id, options)
  service.process_task(response.body)
  options.each {|k,v| attributes[k] = v}
end
reload() click to toggle source
Calls superclass method
# File lib/fog/vcloud_director/models/compute/vm.rb, line 25
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 32
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 84
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 107
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 119
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 130
def tags
  requires :id
  service.tags(:vm => self)
end
undeploy() click to toggle source
# File lib/fog/vcloud_director/models/compute/vm.rb, line 95
def undeploy
  requires :id
  begin
    response = service.post_undeploy_vapp(id)
  rescue Fog::Compute::VcloudDirector::BadRequest => ex
    Fog::Logger.debug(ex.message)
    return false
  end
  service.process_task(response.body)
end
vapp() click to toggle source
# File lib/fog/vcloud_director/models/compute/vm.rb, line 190
def vapp
  # get_by_metadata returns a vm collection where every vapp parent is orpahn
  collection.vapp ||= service.vapps.get(vapp_id)
end