# File lib/openshift-origin-controller/app/controllers/keys_controller.rb, line 58
  def update
    id = params[:id]
    content = params[:content]
    type = params[:type]
    
    Rails.logger.debug "Updating key name:#{id} type:#{type} for user #{@login}"
    key = Key.new(id, type, content)
    if key.invalid?
      messages = get_error_messages(key)
      return render_format_error(:unprocessable_entity, nil, nil, "UPDATE_KEY", nil, nil, messages)
    end

    return render_format_error(:not_found, "SSH key '#{id}' not found", 118,
                               "UPDATE_KEY") if !@cloud_user.ssh_keys or !@cloud_user.ssh_keys.has_key?(id)

    begin
      @cloud_user.update_ssh_key(content, type, id)
      @cloud_user.save
      ssh_key = RestKey.new(id, @cloud_user.ssh_keys[id]["key"], @cloud_user.ssh_keys[id]["type"], get_url, nolinks)
      render_format_success(:ok, "key", ssh_key, "UPDATE_KEY", "Updated SSH key #{id}", true)
    rescue Exception => e
      return render_format_exception(e, "UPDATE_KEY")
    end
  end