class VagrantPlugins::OVirtProvider::Action::SnapshotDelete
Public Class Methods
new(app, env)
click to toggle source
# File lib/vagrant-ovirt4/action/snapshot_delete.rb, line 7 def initialize(app, env) @logger = Log4r::Logger.new("vagrant_ovirt4::action::snapshot_delete") @app = app end
Public Instance Methods
call(env)
click to toggle source
# File lib/vagrant-ovirt4/action/snapshot_delete.rb, line 12 def call(env) env[:ui].info(I18n.t("vagrant_ovirt4.snapshot_delete")) snapshots_service = env[:vms_service].vm_service(env[:machine].id).snapshots_service snapshot = snapshots_service.snapshot_service(env[:snapshot_name]) begin raise RemoveActiveSnapshotError, :id => env[:snapshot_name] if snapshot.get.snapshot_type == 'active' snapshot.remove rescue OvirtSDK4::Error => e fault_detail = /Fault detail is \"\[(.*)\]\".*/.match(e.message) error_message = e.message error_message = fault_detail[1] unless fault_detail.nil? raise Errors::RemoveSnapshotError, :id => env[:snapshot_name], :error_message => error_message end @app.call(env) end