Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'qa/qa/specs/features/api/12_systems/gitaly/praefect_repo_sync_spec.rb')
-rw-r--r--qa/qa/specs/features/api/12_systems/gitaly/praefect_repo_sync_spec.rb96
1 files changed, 0 insertions, 96 deletions
diff --git a/qa/qa/specs/features/api/12_systems/gitaly/praefect_repo_sync_spec.rb b/qa/qa/specs/features/api/12_systems/gitaly/praefect_repo_sync_spec.rb
deleted file mode 100644
index 4f916300ee3..00000000000
--- a/qa/qa/specs/features/api/12_systems/gitaly/praefect_repo_sync_spec.rb
+++ /dev/null
@@ -1,96 +0,0 @@
-# frozen_string_literal: true
-
-module QA
- RSpec.describe 'Systems' do
- describe 'Praefect repository commands', :orchestrated, :gitaly_cluster, product_group: :gitaly do
- let(:praefect_manager) { Service::PraefectManager.new }
-
- let(:repo1) do
- { "relative_path" => "@hashed/repo1.git", "storage" => "gitaly1", "virtual_storage" => "default" }
- end
-
- let(:repo2) do
- { "relative_path" => "@hashed/path/to/repo2.git", "storage" => "gitaly3", "virtual_storage" => "default" }
- end
-
- before do
- praefect_manager.start_all_nodes
- praefect_manager.add_repo_to_disk(praefect_manager.primary_node, repo1["relative_path"])
- praefect_manager.add_repo_to_disk(praefect_manager.tertiary_node, repo2["relative_path"])
- end
-
- after do
- praefect_manager.remove_repo_from_disk(repo1["relative_path"])
- praefect_manager.remove_repo_from_disk(repo2["relative_path"])
- praefect_manager.remove_repository_from_praefect_database(repo1["relative_path"])
- praefect_manager.remove_repository_from_praefect_database(repo2["relative_path"])
- end
-
- it 'allows admin to manage difference between praefect database and disk state',
- testcase: 'https://gitlab.com/gitlab-org/gitlab/-/quality/test_cases/347606' do
- # Some repos are on disk that praefect is not aware of
- untracked_repositories = praefect_manager.list_untracked_repositories
- expect(untracked_repositories).to include(repo1)
- expect(untracked_repositories).to include(repo2)
-
- # admin manually adds the first repo to the praefect database
- praefect_manager
- .track_repository_in_praefect(repo1["relative_path"], repo1["storage"], repo1["virtual_storage"])
- untracked_repositories = praefect_manager.list_untracked_repositories
- expect(untracked_repositories).not_to include(repo1)
- expect(untracked_repositories).to include(repo2)
- expect(praefect_manager.repository_exists_on_node_disk?(praefect_manager.primary_node, repo1["relative_path"]))
- .to be true
- expect(praefect_manager.praefect_database_tracks_repo?(repo1["relative_path"])).to be true
-
- # admin manually adds the second repo to the praefect database
- praefect_manager
- .track_repository_in_praefect(repo2["relative_path"], repo2["storage"], repo2["virtual_storage"])
- untracked_repositories = praefect_manager.list_untracked_repositories
- expect(untracked_repositories).not_to include(repo2)
- expect(praefect_manager.repository_exists_on_node_disk?(praefect_manager.tertiary_node, repo2["relative_path"]))
- .to be true
- expect(praefect_manager.praefect_database_tracks_repo?(repo2["relative_path"])).to be true
-
- # admin ensures replication to other nodes occurs
- expect(praefect_manager.repository_replicated_to_disk?(praefect_manager.secondary_node, repo1["relative_path"]))
- .to be true
- expect(praefect_manager.repository_replicated_to_disk?(praefect_manager.tertiary_node, repo1["relative_path"]))
- .to be true
- expect(praefect_manager.repository_replicated_to_disk?(praefect_manager.primary_node, repo2["relative_path"]))
- .to be true
- expect(praefect_manager.repository_replicated_to_disk?(praefect_manager.secondary_node, repo2["relative_path"]))
- .to be true
-
- # admin chooses to remove the first repo completely from praefect and disk
- praefect_manager.remove_tracked_praefect_repository(repo1["relative_path"], repo1["virtual_storage"])
- expect(praefect_manager.repository_exists_on_node_disk?(praefect_manager.primary_node, repo1["relative_path"]))
- .to be false
- expect(praefect_manager.repository_exists_on_node_disk?(praefect_manager
- .secondary_node, repo1["relative_path"])).to be false
- expect(praefect_manager.repository_exists_on_node_disk?(praefect_manager.tertiary_node, repo1["relative_path"]))
- .to be false
- expect(praefect_manager.praefect_database_tracks_repo?(repo1["relative_path"])).to be false
-
- untracked_repositories = praefect_manager.list_untracked_repositories
- expect(untracked_repositories).not_to include(repo1)
- end
-
- it 'allows admin to control the number of replicas of data',
- testcase: 'https://gitlab.com/gitlab-org/gitlab/-/quality/test_cases/347566' do
- praefect_manager
- .track_repository_in_praefect(repo1['relative_path'], repo1['storage'], repo1['virtual_storage'])
-
- praefect_manager.set_replication_factor(repo1['relative_path'], repo1['virtual_storage'], 2)
- replication_storages = praefect_manager
- .get_replication_storages(repo1['relative_path'], repo1['virtual_storage'])
- expect(replication_storages).to have_attributes(size: 2)
-
- praefect_manager.set_replication_factor(repo1['relative_path'], repo1['virtual_storage'], 3)
- replication_storages = praefect_manager
- .get_replication_storages(repo1['relative_path'], repo1['virtual_storage'])
- expect(replication_storages).to eq(%w[gitaly1 gitaly2 gitaly3])
- end
- end
- end
-end