From d452c7e8130c7db558b4dacd4d7e144450891e21 Mon Sep 17 00:00:00 2001
From: Matt Kasa <mkasa@gitlab.com>
Date: Wed, 23 Feb 2022 18:52:50 -0800
Subject: [PATCH] Annotate uses of ActiveRecord::Base in Pseudonymizer

Relates to https://gitlab.com/gitlab-org/gitlab/-/issues/350190
---
 .rubocop_todo/database/multiple_databases.yml | 3 ---
 ee/lib/pseudonymizer/dumper.rb                | 4 ++++
 ee/lib/pseudonymizer/pager.rb                 | 8 ++++++++
 ee/spec/lib/pseudonymizer/dumper_spec.rb      | 4 ++++
 4 files changed, 16 insertions(+), 3 deletions(-)

diff --git a/.rubocop_todo/database/multiple_databases.yml b/.rubocop_todo/database/multiple_databases.yml
index 69bc0b64a30d5..40005b2b5005d 100644
--- a/.rubocop_todo/database/multiple_databases.yml
+++ b/.rubocop_todo/database/multiple_databases.yml
@@ -5,9 +5,6 @@ Database/MultipleDatabases:
   - ee/lib/gitlab/geo/geo_tasks.rb
   - ee/lib/gitlab/geo/health_check.rb
   - ee/lib/gitlab/geo/log_cursor/daemon.rb
-  - ee/lib/pseudonymizer/dumper.rb
-  - ee/lib/pseudonymizer/pager.rb
-  - ee/spec/lib/pseudonymizer/dumper_spec.rb
   - ee/spec/services/ee/merge_requests/update_service_spec.rb
   - lib/backup/database.rb
   - lib/backup/manager.rb
diff --git a/ee/lib/pseudonymizer/dumper.rb b/ee/lib/pseudonymizer/dumper.rb
index 0173df811c982..8f9a2a548f9e5 100644
--- a/ee/lib/pseudonymizer/dumper.rb
+++ b/ee/lib/pseudonymizer/dumper.rb
@@ -77,6 +77,9 @@ def table_page_results(table, whitelist_columns, pseudonymity_columns)
       end.lazy
     end
 
+    # Disable rubocop Database/MultipleDatabases cop until Pseudonymizer is removed
+    # See https://gitlab.com/gitlab-org/gitlab/-/issues/350190
+    # rubocop:disable Database/MultipleDatabases
     def table_to_schema(table)
       table_config = @config.dig(:tables, table)
 
@@ -97,6 +100,7 @@ def table_to_schema(table)
 
       set_schema_column_types(table, type_results)
     end
+    # rubocop:enable Database/MultipleDatabases
 
     def set_schema_column_types(table, type_results)
       has_id = type_results.any? {|c| c[:name] == "id" }
diff --git a/ee/lib/pseudonymizer/pager.rb b/ee/lib/pseudonymizer/pager.rb
index 68d17bb27daf8..ac4027b7e6dd4 100644
--- a/ee/lib/pseudonymizer/pager.rb
+++ b/ee/lib/pseudonymizer/pager.rb
@@ -19,6 +19,9 @@ def pages(&block)
       end
     end
 
+    # Disable rubocop Database/MultipleDatabases cop until Pseudonymizer is removed
+    # See https://gitlab.com/gitlab-org/gitlab/-/issues/350190
+    # rubocop:disable Database/MultipleDatabases
     def pages_per_id(&block)
       id_offset = 0
 
@@ -40,7 +43,11 @@ def pages_per_id(&block)
         break if results.count < PAGE_SIZE
       end
     end
+    # rubocop:enable Database/MultipleDatabases
 
+    # Disable rubocop Database/MultipleDatabases cop until Pseudonymizer is removed
+    # See https://gitlab.com/gitlab-org/gitlab/-/issues/350190
+    # rubocop:disable Database/MultipleDatabases
     def pages_per_offset(&block)
       offset = 0
 
@@ -61,5 +68,6 @@ def pages_per_offset(&block)
         break if results.count < PAGE_SIZE
       end
     end
+    # rubocop:enable Database/MultipleDatabases
   end
 end
diff --git a/ee/spec/lib/pseudonymizer/dumper_spec.rb b/ee/spec/lib/pseudonymizer/dumper_spec.rb
index 77dc894d0104c..7581a20683f3f 100644
--- a/ee/spec/lib/pseudonymizer/dumper_spec.rb
+++ b/ee/spec/lib/pseudonymizer/dumper_spec.rb
@@ -102,6 +102,9 @@ def decode_project_csv(project_table_file)
     end
   end
 
+  # Disable rubocop Database/MultipleDatabases cop until Pseudonymizer is removed
+  # See https://gitlab.com/gitlab-org/gitlab/-/issues/350190
+  # rubocop:disable Database/MultipleDatabases
   describe "manifest is valid" do
     it "all tables exist" do
       existing_tables = ActiveRecord::Base.connection.tables
@@ -130,4 +133,5 @@ def decode_project_csv(project_table_file)
       end
     end
   end
+  # rubocop:enable Database/MultipleDatabases
 end
-- 
GitLab