Remove legacy query to find migrated LFS objects

This commit removes the legacy queries to find migrated
LFS objects since we made Foreign Data Wrapper (FDW) a
hard requirement for Geo on GitLab 12.0.
parent 1e06d068
......@@ -5,13 +5,5 @@ module Geo
def syncable
current_node.lfs_objects.syncable
end
def lfs_objects_migrated_local(except_file_ids:)
legacy_inner_join_registry_ids(
current_node.lfs_objects.with_files_stored_remotely,
Geo::FileRegistry.lfs_objects.file_id_not_in(except_file_ids).pluck_file_key,
LfsObject
)
end
end
end
......@@ -47,14 +47,7 @@ module Geo
# rubocop:disable CodeReuse/ActiveRecord
def find_migrated_local(batch_size:, except_file_ids: [])
relation =
if use_legacy_queries_for_selective_sync?
legacy_finder.lfs_objects_migrated_local(except_file_ids: except_file_ids)
else
lfs_objects_migrated_local(except_file_ids: except_file_ids)
end
relation.limit(batch_size)
lfs_objects_migrated_local(except_file_ids: except_file_ids).limit(batch_size)
end
# rubocop:enable CodeReuse/ActiveRecord
......
......@@ -796,83 +796,5 @@ describe Geo::LfsObjectRegistryFinder, :geo do
end
end
end
describe '#find_migrated_local' do
it 'returns LFS objects remotely and successfully synced locally' do
create(:geo_file_registry, :lfs, file_id: lfs_object_remote_1.id)
lfs_objects = subject.find_migrated_local(batch_size: 10)
expect(lfs_objects).to match_ids(lfs_object_remote_1)
end
it 'excludes LFS objects stored remotely, but not synced yet' do
create(:lfs_object, :object_storage)
lfs_objects = subject.find_migrated_local(batch_size: 10)
expect(lfs_objects).to be_empty
end
it 'excludes synced LFS objects that are stored locally' do
create(:geo_file_registry, :avatar, file_id: lfs_object_1.id)
lfs_objects = subject.find_migrated_local(batch_size: 10)
expect(lfs_objects).to be_empty
end
it 'excludes except_file_ids' do
create(:geo_file_registry, :lfs, file_id: lfs_object_remote_1.id)
create(:geo_file_registry, :lfs, file_id: lfs_object_remote_2.id)
lfs_objects = subject.find_migrated_local(batch_size: 10, except_file_ids: [lfs_object_remote_1.id])
expect(lfs_objects).to match_ids(lfs_object_remote_2)
end
context 'with selective sync by namespace' do
before do
allow_any_instance_of(LfsObjectsProject).to receive(:update_project_statistics).and_return(nil)
create(:lfs_objects_project, project: synced_project, lfs_object: lfs_object_remote_1)
create(:lfs_objects_project, project: synced_project_in_nested_group, lfs_object: lfs_object_remote_2)
create(:lfs_objects_project, project: synced_project_in_nested_group, lfs_object: lfs_object_1)
create(:lfs_objects_project, project: unsynced_project, lfs_object: lfs_object_remote_3)
secondary.update!(selective_sync_type: 'namespaces', namespaces: [synced_group])
end
it 'returns LFS objects remotely and successfully synced locally' do
create(:geo_file_registry, :lfs, file_id: lfs_object_remote_2.id)
create(:geo_file_registry, :lfs, file_id: lfs_object_remote_3.id)
lfs_objects = subject.find_migrated_local(batch_size: 10)
expect(lfs_objects).to match_ids(lfs_object_remote_2)
end
end
context 'with selective sync by shard' do
before do
allow_any_instance_of(LfsObjectsProject).to receive(:update_project_statistics).and_return(nil)
create(:lfs_objects_project, project: synced_project, lfs_object: lfs_object_remote_1)
create(:lfs_objects_project, project: project_broken_storage, lfs_object: lfs_object_remote_2)
create(:lfs_objects_project, project: project_broken_storage, lfs_object: lfs_object_remote_3)
secondary.update!(selective_sync_type: 'shards', selective_sync_shards: ['broken'])
end
it 'returns LFS objects remotely and successfully synced locally' do
create(:geo_file_registry, :lfs, file_id: lfs_object_remote_1.id)
create(:geo_file_registry, :lfs, file_id: lfs_object_remote_2.id)
lfs_objects = subject.find_migrated_local(batch_size: 10)
expect(lfs_objects).to match_ids(lfs_object_remote_2)
end
end
end
end
end
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment