class Chef::Knife::JoyentKeyAdd

Public Instance Methods

run() click to toggle source
# File lib/chef/knife/joyent_key_add.rb, line 21
def run
  keyfile = config[:keyfile]
  keyname = config[:keyname]

  unless File.exists?(keyfile)
    ui.error('keyfile specified does not exist')
    exit 1
  end


  key = begin
          File.read(keyfile)
        rescue
          puts ui.error('Unable to read contents of keyfile')
          exit 1
        end


  begin
    r = self.connection.create_key(
      :name => keyname,
      :key => key
    )
  rescue Excon::Errors::Conflict => e
    body = MultiJson.decode(e.response.body)
    ui.error(body["message"])
    exit 1
  end

  puts ui.color('Created key: '+keyname, :cyan)
rescue => e
  output_error(e)
end