Sha256: 969e7fb14796fe4e906b1b1a214dc01691c66eff6e3f52b9a90e98cc5ed283b9

Contents?: true

Size: 1.66 KB

Versions: 53

Compression:

Stored size: 1.66 KB

Contents

module Fog
  module Compute
    class Cloudstack
      class Real

        # Deletes a specified snapshot.
        #
        # {CloudStack API Reference}[http://cloudstack.apache.org/docs/api/apidocs-4.0.0/user/deleteSnapshot.html]
        def delete_snapshot(options={})
          options.merge!(
            'command' => 'deleteSnapshot'
          )

          request(options)
        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

Version data entries

53 entries across 53 versions & 3 rubygems

Version Path
fog-maestrodev-1.20.0.20140305101839 lib/fog/cloudstack/requests/compute/delete_snapshot.rb
fog-maestrodev-1.20.0.20140305101305 lib/fog/cloudstack/requests/compute/delete_snapshot.rb
fog-maestrodev-1.19.0.20140212012611 lib/fog/cloudstack/requests/compute/delete_snapshot.rb
fog-1.20.0 lib/fog/cloudstack/requests/compute/delete_snapshot.rb
fog-maestrodev-1.19.0.20140110004459 lib/fog/cloudstack/requests/compute/delete_snapshot.rb
fog-maestrodev-1.19.0.20140110003812 lib/fog/cloudstack/requests/compute/delete_snapshot.rb
fog-maestrodev-1.19.0.20140109202555 lib/fog/cloudstack/requests/compute/delete_snapshot.rb
fog-maestrodev-1.19.0.20140107192102 lib/fog/cloudstack/requests/compute/delete_snapshot.rb
fog-maestrodev-1.19.0.20140107142106 lib/fog/cloudstack/requests/compute/delete_snapshot.rb
fog-maestrodev-1.19.0.20131219203941 lib/fog/cloudstack/requests/compute/delete_snapshot.rb
fog-maestrodev-1.18.0.20131219193542 lib/fog/cloudstack/requests/compute/delete_snapshot.rb
fog-1.19.0 lib/fog/cloudstack/requests/compute/delete_snapshot.rb
fog-maestrodev-1.18.0.20131219033443 lib/fog/cloudstack/requests/compute/delete_snapshot.rb
fog-maestrodev-1.18.0.20131219032002 lib/fog/cloudstack/requests/compute/delete_snapshot.rb
fog-maestrodev-1.18.0.20131219030716 lib/fog/cloudstack/requests/compute/delete_snapshot.rb
fog-maestrodev-1.18.0.20131219022322 lib/fog/cloudstack/requests/compute/delete_snapshot.rb
fog-maestrodev-1.18.0.20131218202447 lib/fog/cloudstack/requests/compute/delete_snapshot.rb
fog-maestrodev-1.18.0.20131209091424 lib/fog/cloudstack/requests/compute/delete_snapshot.rb
fog-maestrodev-1.18.0.20131209090811 lib/fog/cloudstack/requests/compute/delete_snapshot.rb
fog-maestrodev-1.18.0.20131206115947 lib/fog/cloudstack/requests/compute/delete_snapshot.rb