class Fog::VcloudDirector::Compute::Vapp
Public Class Methods
new(attributes = {})
click to toggle source
Calls superclass method
Fog::VcloudDirector::Compute::Model::new
# 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
# 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
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