Sha256: 10364c4f85a53f66129a5ee5e42798f8042ff897620c59b88dd2785331eff2ff

Contents?: true

Size: 1.01 KB

Versions: 2

Compression:

Stored size: 1.01 KB

Contents

require File.expand_path(File.dirname(__FILE__) + '/base')

module KnifeJoyent
  class JoyentSnapshotDelete < Chef::Knife

    include KnifeJoyent::Base

    banner 'knife joyent snapshot delete <server> <snapshot_name>'

    def run
      unless name_args.size == 2
        show_usage
        exit 1
      end

      server = name_args[0]
      ssname = name_args[1]

      snapshot = self.connection.snapshots.get(server, ssname)
      snapshot.destroy
      puts ui.color("Deleted snapshot #{snapshot.name}", :cyan)
      exit 0
    rescue Excon::Errors::NotFound => e
      puts ui.error("Snapshot #{ssname} on server #{server} not found")
      exit 1
    rescue Excon::Errors::Conflict => e
      if e.response && e.response.body.kind_of?(String)
        error = MultiJson.decode(e.response.body)
        puts ui.error(error['message'])
        exit 1
      else
        puts ui.error(e.message)
        exit 1
      end
    rescue => e
      puts ui.error('Unexpected Error Occured:' + e.message)
      exit 1
    end

  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
knife-joyent-0.0.10 lib/chef/knife/joyent_snapshot_delete.rb
knife-joyent-0.0.9 lib/chef/knife/joyent_snapshot_delete.rb