X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/b96d5caa0056472fe67b82bd5305448d85c7d0cd..e3c25b992f96b34810c371aa75e30ba8ce40a639:/services/api/app/controllers/database_controller.rb diff --git a/services/api/app/controllers/database_controller.rb b/services/api/app/controllers/database_controller.rb index 5c4cf7bc16..6bcbd52798 100644 --- a/services/api/app/controllers/database_controller.rb +++ b/services/api/app/controllers/database_controller.rb @@ -6,6 +6,8 @@ class DatabaseController < ApplicationController skip_before_action :find_object_by_uuid skip_before_action :render_404_if_no_object before_action :admin_required + around_action :silence_logs, only: [:reset] + def reset raise ArvadosModel::PermissionDeniedError unless Rails.env == 'test' @@ -23,7 +25,7 @@ class DatabaseController < ApplicationController unexpected_uuids = user_uuids - fixture_uuids if unexpected_uuids.any? logger.error("Running in test environment, but non-fixture users exist: " + - "#{unexpected_uuids}") + "#{unexpected_uuids}" + "\nMaybe test users without @example.com email addresses were created?") raise ArvadosModel::PermissionDeniedError end @@ -59,7 +61,7 @@ class DatabaseController < ApplicationController ActiveRecord::FixtureSet. create_fixtures(Rails.root.join('test', 'fixtures'), fixturesets) - # Dump cache of permissions etc. + # Reset cache and global state Rails.cache.clear ActiveRecord::Base.connection.clear_query_cache @@ -83,4 +85,17 @@ class DatabaseController < ApplicationController # Done. send_json success: true end + + protected + + def silence_logs + Rails.logger.info("(logging level temporarily raised to :error, see #{__FILE__})") + orig = ActiveRecord::Base.logger.level + ActiveRecord::Base.logger.level = :error + begin + yield + ensure + ActiveRecord::Base.logger.level = orig + end + end end