From 0c10078b2c27d4cf9a3bf697019865a376cb4037 Mon Sep 17 00:00:00 2001 From: rkumar555 <rkumar@gitlab.com> Date: Tue, 20 Jun 2023 23:00:35 +0200 Subject: [PATCH] Remove the code related to FF simplify_logic_to_find_search_proxy_class Since the FF simplify_logic_to_find_search_proxy_class has been rolled out completely and is stable so we can remove the code related to this feature_flag. ProjectWikiProxy will be replaced by WikiProxy. Changelog: other MR: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/124236 EE: true --- .rubocop_todo/layout/argument_alignment.yml | 1 - .../rspec/missing_feature_category.yml | 2 - .rubocop_todo/search/namespaced_class.yml | 4 -- ...plify_logic_to_find_search_proxy_class.yml | 8 ---- .../latest/project_wiki_class_proxy.rb | 19 --------- .../latest/project_wiki_instance_proxy.rb | 29 -------------- ee/lib/elastic/multi_version_util.rb | 4 +- .../elastic/v12p1/project_wiki_class_proxy.rb | 10 ----- .../v12p1/project_wiki_instance_proxy.rb | 10 ----- .../latest/project_wiki_class_proxy_spec.rb | 40 ------------------- .../project_wiki_instance_proxy_spec.rb | 36 ----------------- .../elastic/multi_version_class_proxy_spec.rb | 12 ------ spec/support/rspec_order_todo.yml | 2 - 13 files changed, 1 insertion(+), 176 deletions(-) delete mode 100644 ee/config/feature_flags/development/simplify_logic_to_find_search_proxy_class.yml delete mode 100644 ee/lib/elastic/latest/project_wiki_class_proxy.rb delete mode 100644 ee/lib/elastic/latest/project_wiki_instance_proxy.rb delete mode 100644 ee/lib/elastic/v12p1/project_wiki_class_proxy.rb delete mode 100644 ee/lib/elastic/v12p1/project_wiki_instance_proxy.rb delete mode 100644 ee/spec/lib/elastic/latest/project_wiki_class_proxy_spec.rb delete mode 100644 ee/spec/lib/elastic/latest/project_wiki_instance_proxy_spec.rb diff --git a/.rubocop_todo/layout/argument_alignment.yml b/.rubocop_todo/layout/argument_alignment.yml index 8c8fcb52e22f1..a8035ac1af5da 100644 --- a/.rubocop_todo/layout/argument_alignment.yml +++ b/.rubocop_todo/layout/argument_alignment.yml @@ -1120,7 +1120,6 @@ Layout/ArgumentAlignment: - 'ee/spec/lib/ee/gitlab/scim/provisioning_service_spec.rb' - 'ee/spec/lib/ee/gitlab/usage/service_ping_report_spec.rb' - 'ee/spec/lib/ee/gitlab/usage_data_spec.rb' - - 'ee/spec/lib/elastic/latest/project_wiki_class_proxy_spec.rb' - 'ee/spec/lib/gitlab/analytics/cycle_analytics/data_collector_spec.rb' - 'ee/spec/lib/gitlab/analytics/cycle_analytics/distinct_stage_loader_spec.rb' - 'ee/spec/lib/gitlab/analytics/cycle_analytics/summary/stage_time_summary_spec.rb' diff --git a/.rubocop_todo/rspec/missing_feature_category.yml b/.rubocop_todo/rspec/missing_feature_category.yml index 4d635a3071c7d..e3829a97b0200 100644 --- a/.rubocop_todo/rspec/missing_feature_category.yml +++ b/.rubocop_todo/rspec/missing_feature_category.yml @@ -723,8 +723,6 @@ RSpec/MissingFeatureCategory: - 'ee/spec/lib/elastic/latest/issue_config_spec.rb' - 'ee/spec/lib/elastic/latest/merge_request_config_spec.rb' - 'ee/spec/lib/elastic/latest/note_config_spec.rb' - - 'ee/spec/lib/elastic/latest/project_wiki_class_proxy_spec.rb' - - 'ee/spec/lib/elastic/latest/project_wiki_instance_proxy_spec.rb' - 'ee/spec/lib/elastic/latest/routing_spec.rb' - 'ee/spec/lib/elastic/latest/snippet_instance_proxy_spec.rb' - 'ee/spec/lib/elastic/latest/user_config_spec.rb' diff --git a/.rubocop_todo/search/namespaced_class.yml b/.rubocop_todo/search/namespaced_class.yml index ba2dbafb3c7cf..71067dd4e1cdf 100644 --- a/.rubocop_todo/search/namespaced_class.yml +++ b/.rubocop_todo/search/namespaced_class.yml @@ -108,8 +108,6 @@ Search/NamespacedClass: - 'ee/lib/elastic/latest/note_instance_proxy.rb' - 'ee/lib/elastic/latest/project_class_proxy.rb' - 'ee/lib/elastic/latest/project_instance_proxy.rb' - - 'ee/lib/elastic/latest/project_wiki_class_proxy.rb' - - 'ee/lib/elastic/latest/project_wiki_instance_proxy.rb' - 'ee/lib/elastic/latest/query_context.rb' - 'ee/lib/elastic/latest/repository_class_proxy.rb' - 'ee/lib/elastic/latest/repository_instance_proxy.rb' @@ -142,8 +140,6 @@ Search/NamespacedClass: - 'ee/lib/elastic/v12p1/note_instance_proxy.rb' - 'ee/lib/elastic/v12p1/project_class_proxy.rb' - 'ee/lib/elastic/v12p1/project_instance_proxy.rb' - - 'ee/lib/elastic/v12p1/project_wiki_class_proxy.rb' - - 'ee/lib/elastic/v12p1/project_wiki_instance_proxy.rb' - 'ee/lib/elastic/v12p1/repository_class_proxy.rb' - 'ee/lib/elastic/v12p1/repository_instance_proxy.rb' - 'ee/lib/elastic/v12p1/routing.rb' diff --git a/ee/config/feature_flags/development/simplify_logic_to_find_search_proxy_class.yml b/ee/config/feature_flags/development/simplify_logic_to_find_search_proxy_class.yml deleted file mode 100644 index 1a2f53dcff1bd..0000000000000 --- a/ee/config/feature_flags/development/simplify_logic_to_find_search_proxy_class.yml +++ /dev/null @@ -1,8 +0,0 @@ ---- -name: simplify_logic_to_find_search_proxy_class -introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/121928 -rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/413420 -milestone: '16.1' -type: development -group: group::global search -default_enabled: false diff --git a/ee/lib/elastic/latest/project_wiki_class_proxy.rb b/ee/lib/elastic/latest/project_wiki_class_proxy.rb deleted file mode 100644 index 350e5d7c068c6..0000000000000 --- a/ee/lib/elastic/latest/project_wiki_class_proxy.rb +++ /dev/null @@ -1,19 +0,0 @@ -# frozen_string_literal: true - -module Elastic - module Latest - class ProjectWikiClassProxy < ApplicationClassProxy - include GitClassProxy - - def es_type - 'wiki_blob' - end - - def elastic_search_as_wiki_page(*args) - elastic_search_as_found_blob(*args).map! do |blob| - Gitlab::Search::FoundWikiPage.new(blob) - end - end - end - end -end diff --git a/ee/lib/elastic/latest/project_wiki_instance_proxy.rb b/ee/lib/elastic/latest/project_wiki_instance_proxy.rb deleted file mode 100644 index 271c330272578..0000000000000 --- a/ee/lib/elastic/latest/project_wiki_instance_proxy.rb +++ /dev/null @@ -1,29 +0,0 @@ -# frozen_string_literal: true - -module Elastic - module Latest - class ProjectWikiInstanceProxy < ApplicationInstanceProxy - include GitInstanceProxy - - delegate :project, to: :target - delegate :id, to: :project, prefix: true - - # @return [Kaminari::PaginatableArray] - def elastic_search_as_wiki_page(query, page: 1, per: 20, options: {}) - options = repository_specific_options(options) - - self.class.elastic_search_as_wiki_page(query, page: page, per: per, options: options) - end - - private - - def repository_id - if ::Elastic::DataMigrationService.migration_has_finished?(:add_suffix_project_in_wiki_rid) - "wiki_project_#{project.id}" - else - "wiki_#{project.id}" - end - end - end - end -end diff --git a/ee/lib/elastic/multi_version_util.rb b/ee/lib/elastic/multi_version_util.rb index 170b0705d8f09..b27923513e777 100644 --- a/ee/lib/elastic/multi_version_util.rb +++ b/ee/lib/elastic/multi_version_util.rb @@ -34,9 +34,7 @@ def elastic_writing_targets private def get_data_class(klass) - return (klass.try(:base_class) || klass) if Feature.enabled?(:simplify_logic_to_find_search_proxy_class) - - klass < ActiveRecord::Base ? klass.base_class : klass + klass.try(:base_class) || klass end # Handles which method calls should be forwarded to all targets, diff --git a/ee/lib/elastic/v12p1/project_wiki_class_proxy.rb b/ee/lib/elastic/v12p1/project_wiki_class_proxy.rb deleted file mode 100644 index 5f401784a5bd5..0000000000000 --- a/ee/lib/elastic/v12p1/project_wiki_class_proxy.rb +++ /dev/null @@ -1,10 +0,0 @@ -# rubocop:disable Naming/FileName -# frozen_string_literal: true - -module Elastic - module V12p1 - ProjectWikiClassProxy = Elastic::Latest::ProjectWikiClassProxy - end -end - -# rubocop:enable Naming/FileName diff --git a/ee/lib/elastic/v12p1/project_wiki_instance_proxy.rb b/ee/lib/elastic/v12p1/project_wiki_instance_proxy.rb deleted file mode 100644 index c0931ee029e85..0000000000000 --- a/ee/lib/elastic/v12p1/project_wiki_instance_proxy.rb +++ /dev/null @@ -1,10 +0,0 @@ -# rubocop:disable Naming/FileName -# frozen_string_literal: true - -module Elastic - module V12p1 - ProjectWikiInstanceProxy = Elastic::Latest::ProjectWikiInstanceProxy - end -end - -# rubocop:enable Naming/FileName diff --git a/ee/spec/lib/elastic/latest/project_wiki_class_proxy_spec.rb b/ee/spec/lib/elastic/latest/project_wiki_class_proxy_spec.rb deleted file mode 100644 index 9020788fb9d89..0000000000000 --- a/ee/spec/lib/elastic/latest/project_wiki_class_proxy_spec.rb +++ /dev/null @@ -1,40 +0,0 @@ -# frozen_string_literal: true - -require 'spec_helper' - -RSpec.describe Elastic::Latest::ProjectWikiClassProxy, :elastic, feature_category: :global_search do - let(:project) { create(:project, :wiki_repo) } - - subject { described_class.new(project.wiki.class, use_separate_indices: ProjectWiki.use_separate_indices?) } - - describe '#elastic_search_as_wiki_page' do - let!(:page) { create(:wiki_page, wiki: project.wiki) } - - before do - stub_ee_application_setting(elasticsearch_search: true, elasticsearch_indexing: true) - - Gitlab::Elastic::Indexer.new(project, wiki: true).run - ensure_elasticsearch_index! - end - - it 'returns FoundWikiPage', :sidekiq_inline do - results = subject.elastic_search_as_wiki_page('*') - - expect(results.size).to eq(1) - expect(results).to all(be_a(Gitlab::Search::FoundWikiPage)) - - result = results.first - - expect(result.path).to eq(page.path) - expect(result.startline).to eq(1) - expect(result.data).to include(page.content) - expect(result.project).to eq(project) - end - end - - it 'names elasticsearch queries' do - subject.elastic_search_as_wiki_page('*') - - assert_named_queries('doc:is_a:wiki_blob', 'blob:match:search_terms') - end -end diff --git a/ee/spec/lib/elastic/latest/project_wiki_instance_proxy_spec.rb b/ee/spec/lib/elastic/latest/project_wiki_instance_proxy_spec.rb deleted file mode 100644 index 701c60beb3d54..0000000000000 --- a/ee/spec/lib/elastic/latest/project_wiki_instance_proxy_spec.rb +++ /dev/null @@ -1,36 +0,0 @@ -# frozen_string_literal: true - -require 'spec_helper' - -RSpec.describe Elastic::Latest::ProjectWikiInstanceProxy, feature_category: :global_search do - let_it_be(:project) { create(:project, :wiki_repo) } - - subject { described_class.new(project.wiki, use_separate_indices: true) } - - describe '#elastic_search_as_wiki_page' do - let(:params) do - { - page: 2, - per: 30, - options: { foo: :bar } - } - end - - it 'provides repository_id if not provided' do - expected_params = params.deep_dup - expected_params[:options][:repository_id] = "wiki_#{project.id}" - - expect(subject.class).to receive(:elastic_search_as_wiki_page).with('foo', expected_params) - - subject.elastic_search_as_wiki_page('foo', **params) - end - - it 'uses provided repository_id' do - params[:options][:repository_id] = "wiki_63" - - expect(subject.class).to receive(:elastic_search_as_wiki_page).with('foo', params) - - subject.elastic_search_as_wiki_page('foo', **params) - end - end -end diff --git a/ee/spec/lib/elastic/multi_version_class_proxy_spec.rb b/ee/spec/lib/elastic/multi_version_class_proxy_spec.rb index a609f1732f487..be066f602dea4 100644 --- a/ee/spec/lib/elastic/multi_version_class_proxy_spec.rb +++ b/ee/spec/lib/elastic/multi_version_class_proxy_spec.rb @@ -25,18 +25,6 @@ expect(wiki_result).to be_a(Elastic::V12p1::WikiClassProxy) expect(wiki_result.target).to eq(ProjectWiki) end - - context 'when feature_flag simplify_logic_to_find_search_proxy_class is disabled' do - before do - stub_feature_flags(simplify_logic_to_find_search_proxy_class: false) - end - - it 'returns ProjectWikiClassProxy for wiki' do - wiki_proxy = described_class.new(ProjectWiki) - wiki_result = wiki_proxy.version('V12p1') - expect(wiki_result).to be_a(Elastic::V12p1::ProjectWikiClassProxy) - end - end end end diff --git a/spec/support/rspec_order_todo.yml b/spec/support/rspec_order_todo.yml index adee31ca64413..b9ce1f80c0231 100644 --- a/spec/support/rspec_order_todo.yml +++ b/spec/support/rspec_order_todo.yml @@ -1213,8 +1213,6 @@ - './ee/spec/lib/elastic/latest/merge_request_config_spec.rb' - './ee/spec/lib/elastic/latest/note_config_spec.rb' - './ee/spec/lib/elastic/latest/project_instance_proxy_spec.rb' -- './ee/spec/lib/elastic/latest/project_wiki_class_proxy_spec.rb' -- './ee/spec/lib/elastic/latest/project_wiki_instance_proxy_spec.rb' - './ee/spec/lib/elastic/latest/routing_spec.rb' - './ee/spec/lib/elastic/latest/snippet_instance_proxy_spec.rb' - './ee/spec/lib/elastic/migration_spec.rb' -- GitLab