Sha256: d00655210525d6522b81ee9e95cac50d7d5a4454ebb42e7dbe19820c9f5161ef

Contents?: true

Size: 1.02 KB

Versions: 2

Compression:

Stored size: 1.02 KB

Contents

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

module KnifeJoyent
  class JoyentSnapshotCreate < Chef::Knife

    include KnifeJoyent::Base

    banner 'knife joyent snapshot create <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.create(server, ssname)
      puts ui.color("Created snapshot", :cyan)
      puts ui.output({
        :server => snapshot.machine_id,
        :name => snapshot.name,
        :state => snapshot.state,
        :created => snapshot.created
      })
      exit 0
    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_create.rb
knife-joyent-0.0.9 lib/chef/knife/joyent_snapshot_create.rb