lib/fog/vcloud_director/models/compute/vapp.rb in fog-maestrodev-1.15.0.20130927082724 vs lib/fog/vcloud_director/models/compute/vapp.rb in fog-maestrodev-1.18.0.20131111203459

- old
+ new

@@ -28,26 +28,112 @@ def tags requires :id service.tags(:vm => self) end - def undeploy - response = service.undeploy(id) + # @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) + def undeploy(action='powerOff') + begin + response = service.post_undeploy_vapp(id, :UndeployPowerAction => action) + rescue Fog::Compute::VcloudDirector::BadRequest => ex + Fog::Logger.debug(ex.message) + return false + end service.process_task(response.body) end + # Power off all VMs in the vApp. + 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 all VMs in the vApp. def power_on - response = service.post_vm_poweron(id) + 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 - def power_off - response = service.post_vm_poweroff(id) + # Reboot all VMs in the vApp. + 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 + # Reset all VMs in the vApp. + 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 + + # Shut down all VMs in the vApp. + 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 all VMs in the vApp. + 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 + def destroy - response = service.delete_vapp(id) + requires :id + begin + response = service.delete_vapp(id) + rescue Fog::Compute::VcloudDirector::BadRequest => ex + Fog::Logger.debug(ex.message) + return false + end service.process_task(response.body) end end end