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