class Fog::VcloudDirector::Compute::Vapp

Public Class Methods

new(attributes = {}) click to toggle source
# File lib/fog/vcloud_director/models/compute/vapp.rb, line 19
def initialize(attributes = {})
  # Memorize VMs because their full XML description was already included in the vApp XML description.
  # Instead simple Array we rather store as Collection in order to provide common interface e.g.
  #    vapp.vms.all
  #    vapp.vms.get_by_name
  if (vms = attributes.delete(:vms))
    @vms = Fog::VcloudDirector::Compute::Vms.new(
      :vapp    => self,
      :service => attributes[:service]
    ).with_item_list(Array(vms))
  end

  super(attributes)
end

Public Instance Methods

custom_fields() click to toggle source
# File lib/fog/vcloud_director/models/compute/vapp.rb, line 48
def custom_fields
  requires :id
  service.custom_fields( :vapp => self)
end
destroy() click to toggle source
# File lib/fog/vcloud_director/models/compute/vapp.rb, line 166
def destroy
  requires :id
  begin
    response = service.delete_vapp(id)
  rescue Fog::VcloudDirector::Compute::BadRequest => ex
    Fog::Logger.debug(ex.message)
    return false
  end
  service.process_task(response.body)
end
human_status() click to toggle source

pubs.vmware.com/vcd-80/index.jsp#com.vmware.vcloud.api.sp.doc_90/GUID-843BE3AD-5EF6-4442-B864-BCAE44A51867.html

# File lib/fog/vcloud_director/models/compute/vapp.rb, line 54
def human_status
  case status
  when '-1', -1
    'failed_creation'
  when '0', 0
    'creating'
  when '8', 8
    'off'
  when '4', 4
    'on'
  when '3', 3
    'suspended'
  else
    'unknown'
  end
end
power_off() click to toggle source

Power off all VMs in the vApp.

# File lib/fog/vcloud_director/models/compute/vapp.rb, line 95
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 all VMs in the vApp.

# File lib/fog/vcloud_director/models/compute/vapp.rb, line 107
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
reboot() click to toggle source

Reboot all VMs in the vApp.

# File lib/fog/vcloud_director/models/compute/vapp.rb, line 119
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
reset() click to toggle source

Reset all VMs in the vApp.

# File lib/fog/vcloud_director/models/compute/vapp.rb, line 131
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 all VMs in the vApp.

# File lib/fog/vcloud_director/models/compute/vapp.rb, line 143
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 all VMs in the vApp.

# File lib/fog/vcloud_director/models/compute/vapp.rb, line 155
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/vapp.rb, line 43
def tags
  requires :id
  service.tags(:vm => self)
end
undeploy(action='powerOff') click to toggle source

@param [String] action The specified action is applied to all virtual

machines in the vApp. All values other than **default** ignore
actions, order, and delay specified in the StartupSection. One of:
  • powerOff (Power off the virtual machines. This is the default action if this attribute is missing or empty)

  • suspend (Suspend the virtual machines)

  • shutdown (Shut down the virtual machines)

  • force (Attempt to power off the virtual machines. Failures in undeploying the virtual machine or associated networks are ignored. All references to the vApp and its virtual machines are removed from the database)

  • default (Use the actions, order, and delay specified in the StartupSection)

# File lib/fog/vcloud_director/models/compute/vapp.rb, line 84
def undeploy(action='powerOff')
  begin
    response = service.post_undeploy_vapp(id, :UndeployPowerAction => action)
  rescue Fog::VcloudDirector::Compute::BadRequest => ex
    Fog::Logger.debug(ex.message)
    return false
  end
  service.process_task(response.body)
end
vms(force: false) click to toggle source
# File lib/fog/vcloud_director/models/compute/vapp.rb, line 34
def vms(force: false)
  # Return memorized Collection that we parsed based on vApp XML description. This way we prevent
  # additional API request to be made for each VM in a vApp.
  return @vms unless @vms.nil? || force

  requires :id
  service.vms(:vapp => self)
end