diff --git a/lib/fog/cloudstack/requests/compute/delete_snapshot.rb b/lib/fog/cloudstack/requests/compute/delete_snapshot.rb index 0708ce51a..570270be7 100644 --- a/lib/fog/cloudstack/requests/compute/delete_snapshot.rb +++ b/lib/fog/cloudstack/requests/compute/delete_snapshot.rb @@ -3,9 +3,9 @@ module Fog class Cloudstack class Real - # Deletes a specified user. + # Deletes a specified snapshot. # - # {CloudStack API Reference}[http://download.cloud.com/releases/2.2.0/api_2.2.4/global_admin/deleteSnapshot.html] + # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.0.0/user/deleteSnapshot.html] def delete_snapshot(options={}) options.merge!( 'command' => 'deleteSnapshot' @@ -15,6 +15,48 @@ module Fog end end + + class Mock + + # Deletes a specified snapashot. + # + # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.0.0/user/deleteSnapshot.html] + def delete_snapshot(options={}) + snapshot_id = options['id'] + snapshots = self.data[:snapshots] + + if snapshots[snapshot_id] + + snapshots.delete(snapshot_id) + job_id = add_delete_snapshot_job(snapshot_id) + + {'deletesnapshotresponse' => {'jobid' => job_id}} + end + # TODO add cases for empty or wrong id + end + + def add_delete_snapshot_job(snapshot_id) + job_id = Fog::Cloudstack.uuid + + job = { + 'id' => job_id, + 'user_id' => self.data[:users].first, # TODO use current user + 'account_id' => self.data[:accounts].first, # TODO use current user + 'cmd' => 'com.cloud.api.commands.DeleteSnapshotCmd', + 'job_status'=> 1, + 'job_result_type' => nil, + 'job_result_code' => 0, + 'job_proc_status' => 0, + 'created_at' => Time.now.iso8601, + 'job_result' => { "success" => true } + } + + self.data[:jobs][job_id] = job + job_id + end + + end + end end end