mirror of
https://github.com/OpenNebula/one.git
synced 2025-03-21 14:50:08 +03:00
feature #3782: Ruby OCA method for snapshot-delete, cli command.
Datastore driver action for snapshot delete
This commit is contained in:
parent
62a98c550d
commit
78c7bdbd5d
@ -301,6 +301,16 @@ cmd=CommandParser::CmdParser.new(ARGV) do
|
||||
end
|
||||
end
|
||||
|
||||
snapshot_delete_desc = <<-EOT.unindent
|
||||
Deletes a snapshot from the image
|
||||
EOT
|
||||
|
||||
command :"snapshot-delete", snapshot_delete_desc, :imageid, :snapshot_id do
|
||||
helper.perform_action(args[0], options, "snapshot deleted") do |o|
|
||||
o.snapshot_delete(args[1].to_i)
|
||||
end
|
||||
end
|
||||
|
||||
list_desc = <<-EOT.unindent
|
||||
Lists Images in the pool
|
||||
EOT
|
||||
|
@ -50,7 +50,8 @@ class DatastoreDriver < OpenNebulaDriver
|
||||
:log => "LOG",
|
||||
:stat => "STAT",
|
||||
:clone => "CLONE",
|
||||
:monitor => "MONITOR"
|
||||
:monitor => "MONITOR",
|
||||
:snap_delete => "SNAP_DELETE"
|
||||
}
|
||||
|
||||
# Register default actions for the protocol
|
||||
@ -65,7 +66,8 @@ class DatastoreDriver < OpenNebulaDriver
|
||||
ACTION[:rm] => nil,
|
||||
ACTION[:mkfs] => nil,
|
||||
ACTION[:clone] => nil,
|
||||
ACTION[:monitor] => nil
|
||||
ACTION[:monitor] => nil,
|
||||
ACTION[:snap_delete] => nil
|
||||
}
|
||||
}.merge!(options)
|
||||
|
||||
@ -87,6 +89,7 @@ class DatastoreDriver < OpenNebulaDriver
|
||||
register_action(ACTION[:stat].to_sym, method("stat"))
|
||||
register_action(ACTION[:clone].to_sym, method("clone"))
|
||||
register_action(ACTION[:monitor].to_sym, method("monitor"))
|
||||
register_action(ACTION[:snap_delete].to_sym, method("snap_delete"))
|
||||
end
|
||||
|
||||
############################################################################
|
||||
@ -123,6 +126,11 @@ class DatastoreDriver < OpenNebulaDriver
|
||||
do_image_action(id, ds, :monitor, "#{drv_message} #{id}", true)
|
||||
end
|
||||
|
||||
def snap_delete(id, drv_message)
|
||||
ds = get_ds_type(drv_message)
|
||||
do_image_action(id, ds, :snap_delete, "#{drv_message} #{id}")
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def is_available?(ds, id, action)
|
||||
|
@ -36,7 +36,8 @@ module OpenNebula
|
||||
:chmod => "image.chmod",
|
||||
:chtype => "image.chtype",
|
||||
:clone => "image.clone",
|
||||
:rename => "image.rename"
|
||||
:rename => "image.rename",
|
||||
:snapshotdelete => "image.snapshotdelete"
|
||||
}
|
||||
|
||||
IMAGE_STATES=%w{INIT READY USED DISABLED LOCKED ERROR CLONE DELETE USED_PERS}
|
||||
@ -224,6 +225,15 @@ module OpenNebula
|
||||
return call(IMAGE_METHODS[:rename], @pe_id, name)
|
||||
end
|
||||
|
||||
# Deletes Image from snapshot
|
||||
#
|
||||
# @param snap_id [Integet] ID of the snapshot to delete
|
||||
#
|
||||
# @return [nil, OpenNebula::Error] nil in case of success or Error
|
||||
def snapshot_delete(snap_id)
|
||||
return call(IMAGE_METHODS[:snapshotdelete], @pe_id, snap_id)
|
||||
end
|
||||
|
||||
#######################################################################
|
||||
# Helpers to get Image information
|
||||
#######################################################################
|
||||
|
Loading…
x
Reference in New Issue
Block a user