class Fog::VcloudDirector::Compute::Vm

Public Instance Methods

customization() click to toggle source
# File lib/fog/vcloud_director/models/compute/vm.rb, line 136
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 148
def disks
  requires :id
  service.disks(:vm => self)
end
network() click to toggle source
# File lib/fog/vcloud_director/models/compute/vm.rb, line 142
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 49
def power_off
  requires :id
  begin
    response = service.post_power_off_vapp(id)
  rescue Fog::VcloudDirector::Compute::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 61
def power_on
  requires :id
  begin
    response = service.post_power_on_vapp(id)
  rescue Fog::VcloudDirector::Compute::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 165
def ready?
  reload
  status == 'on'
end
reboot() click to toggle source

Reboot the VM.

# File lib/fog/vcloud_director/models/compute/vm.rb, line 73
def reboot
  requires :id
  begin
    response = service.post_reboot_vapp(id)
  rescue Fog::VcloudDirector::Compute::BadRequest => ex
    Fog::Logger.debug(ex.message)
    return false
  end
  service.process_task(response.body)
end
reconfigure(options, current: nil) 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 155
def reconfigure(options, current: nil)
  # Fetch current XML.
  current ||= service.get_vapp(id, :parser => 'xml').body
  # Let post_reconfigure_vm apply modifications.
  response = service.post_reconfigure_vm(id, current, options)
  service.process_task(response.body)

  # TODO: apply modifications on current VM instance.
end
reload() click to toggle source
Calls superclass method
# File lib/fog/vcloud_director/models/compute/vm.rb, line 26
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 33
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 85
def reset
  requires :id
  begin
    response = service.post_reset_vapp(id)
  rescue Fog::VcloudDirector::Compute::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 108
def shutdown
  requires :id
  begin
    response = service.post_shutdown_vapp(id)
  rescue Fog::VcloudDirector::Compute::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 120
def suspend
  requires :id
  begin
    response = service.post_suspend_vapp(id)
  rescue Fog::VcloudDirector::Compute::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 131
def tags
  requires :id
  service.tags(:vm => self)
end
undeploy() click to toggle source
# File lib/fog/vcloud_director/models/compute/vm.rb, line 96
def undeploy
  requires :id
  begin
    response = service.post_undeploy_vapp(id)
  rescue Fog::VcloudDirector::Compute::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 170
def vapp
  # get_by_metadata returns a vm collection where every vapp parent is orpahn
  collection.vapp ||= service.vapps.get(vapp_id)
end