diff --git a/.rubocop_todo/gitlab/bounded_contexts.yml b/.rubocop_todo/gitlab/bounded_contexts.yml index 01ae4b178bc487a635c2b2b659a2b017879e4dc1..529152c7bace6b7d8b3b9fd79eec7720b215fcf8 100644 --- a/.rubocop_todo/gitlab/bounded_contexts.yml +++ b/.rubocop_todo/gitlab/bounded_contexts.yml @@ -2907,7 +2907,6 @@ Gitlab/BoundedContexts: - 'ee/app/models/elastic/index_setting.rb' - 'ee/app/models/elastic/migration_record.rb' - 'ee/app/models/elastic/reindexing_slice.rb' - - 'ee/app/models/elastic/reindexing_subtask.rb' - 'ee/app/models/elastic/reindexing_task.rb' - 'ee/app/models/elasticsearch_indexed_namespace.rb' - 'ee/app/models/elasticsearch_indexed_project.rb' diff --git a/.rubocop_todo/rails/inverse_of.yml b/.rubocop_todo/rails/inverse_of.yml index c8dbb9b7a0e1c7fa433849a435c2aef76be28793..2ed8bc1ae8c6970fd168d3bc75e82d9f7c50c2ca 100644 --- a/.rubocop_todo/rails/inverse_of.yml +++ b/.rubocop_todo/rails/inverse_of.yml @@ -60,7 +60,6 @@ Rails/InverseOf: - 'ee/app/models/ee/project.rb' - 'ee/app/models/ee/service_desk_setting.rb' - 'ee/app/models/ee/user.rb' - - 'ee/app/models/elastic/reindexing_subtask.rb' - 'ee/app/models/geo/event.rb' - 'ee/app/models/geo/event_log.rb' - 'ee/app/models/geo/job_artifact_registry.rb' diff --git a/.rubocop_todo/rspec/feature_category.yml b/.rubocop_todo/rspec/feature_category.yml index 7721a1987bec2facf37c1d13dc3532dd300e9081..3967d117d3b76ea90825bec92e2da75d30d34059 100644 --- a/.rubocop_todo/rspec/feature_category.yml +++ b/.rubocop_todo/rspec/feature_category.yml @@ -816,7 +816,6 @@ RSpec/FeatureCategory: - 'ee/spec/models/ee/users_statistics_spec.rb' - 'ee/spec/models/elastic/index_setting_spec.rb' - 'ee/spec/models/elastic/reindexing_slice_spec.rb' - - 'ee/spec/models/elastic/reindexing_subtask_spec.rb' - 'ee/spec/models/elastic/reindexing_task_spec.rb' - 'ee/spec/models/epic_user_mention_spec.rb' - 'ee/spec/models/gitlab/seat_link_data_spec.rb' diff --git a/.rubocop_todo/search/namespaced_class.yml b/.rubocop_todo/search/namespaced_class.yml index 28479ab5826cc8eb5a3d60b6a498ebdf76621ee1..118f78429906a941f6b38baf128057bf47e9fd7a 100644 --- a/.rubocop_todo/search/namespaced_class.yml +++ b/.rubocop_todo/search/namespaced_class.yml @@ -31,7 +31,6 @@ Search/NamespacedClass: - 'ee/app/models/elastic/index_setting.rb' - 'ee/app/models/elastic/migration_record.rb' - 'ee/app/models/elastic/reindexing_slice.rb' - - 'ee/app/models/elastic/reindexing_subtask.rb' - 'ee/app/models/elastic/reindexing_task.rb' - 'ee/app/models/elasticsearch_indexed_namespace.rb' - 'ee/app/models/elasticsearch_indexed_project.rb' diff --git a/.rubocop_todo/style/class_and_module_children.yml b/.rubocop_todo/style/class_and_module_children.yml index 6867e5d4eda5e4a8333d991ccdec18ee9ef2baa1..542cbbc3bb22965c0c7aaf133d78babd0dd63972 100644 --- a/.rubocop_todo/style/class_and_module_children.yml +++ b/.rubocop_todo/style/class_and_module_children.yml @@ -421,7 +421,6 @@ Style/ClassAndModuleChildren: - 'ee/app/models/dast/profile_schedule.rb' - 'ee/app/models/ee/ci/job_artifact.rb' - 'ee/app/models/elastic/reindexing_slice.rb' - - 'ee/app/models/elastic/reindexing_subtask.rb' - 'ee/app/models/elastic/reindexing_task.rb' - 'ee/app/models/epic/metrics.rb' - 'ee/app/models/epic/related_epic_link.rb' diff --git a/db/docs/elastic_reindexing_subtasks.yml b/db/docs/elastic_reindexing_subtasks.yml index 5f05170cf166ff639695970e740a1fe2ebd88b9b..ae61b89eef1bbb1e7590cc05cd6527fd6ecd1d94 100644 --- a/db/docs/elastic_reindexing_subtasks.yml +++ b/db/docs/elastic_reindexing_subtasks.yml @@ -1,7 +1,7 @@ --- table_name: elastic_reindexing_subtasks classes: -- Elastic::ReindexingSubtask +- Search::Elastic::ReindexingSubtask feature_categories: - global_search description: TODO diff --git a/ee/app/models/elastic/reindexing_slice.rb b/ee/app/models/elastic/reindexing_slice.rb index 83a28ca7213ef46659ad6ca925cae72c709e324e..377924a94ef9051cc7a080b755587c4d2d5fb8ad 100644 --- a/ee/app/models/elastic/reindexing_slice.rb +++ b/ee/app/models/elastic/reindexing_slice.rb @@ -3,7 +3,7 @@ class Elastic::ReindexingSlice < ApplicationRecord self.table_name = 'elastic_reindexing_slices' - belongs_to :elastic_reindexing_subtask, class_name: 'Elastic::ReindexingSubtask' + belongs_to :elastic_reindexing_subtask, class_name: 'Search::Elastic::ReindexingSubtask' validates :elastic_slice, :elastic_max_slice, :retry_attempt, presence: true, numericality: { greater_than_or_equal_to: 0 } diff --git a/ee/app/models/elastic/reindexing_subtask.rb b/ee/app/models/elastic/reindexing_subtask.rb deleted file mode 100644 index 9793e1f8b0d50a0fa75326e339e9a0dc33a95ebc..0000000000000000000000000000000000000000 --- a/ee/app/models/elastic/reindexing_subtask.rb +++ /dev/null @@ -1,13 +0,0 @@ -# frozen_string_literal: true - -class Elastic::ReindexingSubtask < ApplicationRecord - self.table_name = 'elastic_reindexing_subtasks' - - belongs_to :elastic_reindexing_task, class_name: 'Elastic::ReindexingTask' - - has_many :slices, class_name: 'Elastic::ReindexingSlice', foreign_key: :elastic_reindexing_subtask_id - - validates :index_name_from, :index_name_to, presence: true - - scope :order_by_alias_name_asc, -> { order(alias_name: :asc) } -end diff --git a/ee/app/models/elastic/reindexing_task.rb b/ee/app/models/elastic/reindexing_task.rb index f1dbc09c63305b2af0b8816041c71e96ca943695..7acb414e39ad1983e7156438a6de4777b963e482 100644 --- a/ee/app/models/elastic/reindexing_task.rb +++ b/ee/app/models/elastic/reindexing_task.rb @@ -11,7 +11,7 @@ class Elastic::ReindexingTask < ApplicationRecord attribute :options, :ind_jsonb # for indifferent access - has_many :subtasks, class_name: 'Elastic::ReindexingSubtask', + has_many :subtasks, class_name: 'Search::Elastic::ReindexingSubtask', foreign_key: :elastic_reindexing_task_id, inverse_of: :elastic_reindexing_task enum state: { diff --git a/ee/app/models/search/elastic/reindexing_subtask.rb b/ee/app/models/search/elastic/reindexing_subtask.rb new file mode 100644 index 0000000000000000000000000000000000000000..80f6b9fe3245589062a79afb90210d2f2c155fde --- /dev/null +++ b/ee/app/models/search/elastic/reindexing_subtask.rb @@ -0,0 +1,18 @@ +# frozen_string_literal: true + +module Search + module Elastic + class ReindexingSubtask < ApplicationRecord + self.table_name = 'elastic_reindexing_subtasks' + + belongs_to :elastic_reindexing_task, class_name: 'Elastic::ReindexingTask' + + has_many :slices, class_name: 'Elastic::ReindexingSlice', + foreign_key: :elastic_reindexing_subtask_id, inverse_of: :elastic_reindexing_subtask + + validates :index_name_from, :index_name_to, presence: true + + scope :order_by_alias_name_asc, -> { order(alias_name: :asc) } + end + end +end diff --git a/ee/spec/factories/elastic/reindexing_subtasks.rb b/ee/spec/factories/elastic/reindexing_subtasks.rb index e77c03aaeae9abab061851aeb93583abd6daa5b5..dc7607109d7562af6ff980f5d855ed889b9e0e8c 100644 --- a/ee/spec/factories/elastic/reindexing_subtasks.rb +++ b/ee/spec/factories/elastic/reindexing_subtasks.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true FactoryBot.define do - factory :elastic_reindexing_subtask, class: 'Elastic::ReindexingSubtask' do + factory :elastic_reindexing_subtask, class: 'Search::Elastic::ReindexingSubtask' do association :elastic_reindexing_task, in_progress: false, state: :success sequence(:index_name_from) { |n| "old_index_name_#{n}" } sequence(:index_name_to) { |n| "new_index_name_#{n}" } diff --git a/ee/spec/models/elastic/reindexing_subtask_spec.rb b/ee/spec/models/search/elastic/reindexing_subtask_spec.rb similarity index 68% rename from ee/spec/models/elastic/reindexing_subtask_spec.rb rename to ee/spec/models/search/elastic/reindexing_subtask_spec.rb index 460716fa710373196db0905e8380aa3705a45091..87435d2f2608dcc19f978d7598a5a523cbb47fb0 100644 --- a/ee/spec/models/elastic/reindexing_subtask_spec.rb +++ b/ee/spec/models/search/elastic/reindexing_subtask_spec.rb @@ -2,9 +2,10 @@ require 'spec_helper' -RSpec.describe Elastic::ReindexingSubtask, type: :model do +RSpec.describe Search::Elastic::ReindexingSubtask, type: :model, feature_category: :global_search do describe 'relations' do it { is_expected.to belong_to(:elastic_reindexing_task) } + it { is_expected.to have_many(:slices) } end describe 'validations' do