51 lines
1.2 KiB
Ruby
51 lines
1.2 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
module Gitlab
|
|
module ImportExport
|
|
module Project
|
|
class BaseTask
|
|
include Gitlab::WithRequestStore
|
|
|
|
def initialize(opts, logger: Logger.new($stdout))
|
|
@project_path = opts.fetch(:project_path)
|
|
@file_path = opts.fetch(:file_path)
|
|
@namespace = Namespace.find_by_full_path(opts.fetch(:namespace_path))
|
|
@current_user = User.find_by_username(opts.fetch(:username))
|
|
@logger = logger
|
|
end
|
|
|
|
private
|
|
|
|
attr_reader :project, :namespace, :current_user, :file_path, :project_path, :logger
|
|
|
|
def disable_upload_object_storage
|
|
overwrite_uploads_setting('enabled', false) do
|
|
yield
|
|
end
|
|
end
|
|
|
|
def overwrite_uploads_setting(key, value)
|
|
old_value = Settings.uploads.object_store[key]
|
|
Settings.uploads.object_store[key] = value
|
|
|
|
yield
|
|
|
|
ensure
|
|
Settings.uploads.object_store[key] = old_value
|
|
end
|
|
|
|
def success(message)
|
|
logger.info(message)
|
|
|
|
true
|
|
end
|
|
|
|
def error(message)
|
|
logger.error(message)
|
|
|
|
false
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|