Skip to content
代码片段 群组 项目
未验证 提交 ba149ad9 编辑于 作者: Vijay Hawoldar's avatar Vijay Hawoldar 提交者: GitLab
浏览文件

Merge branch 'vij-replace-namespace-settings-index' into 'master'

No related branches found
No related tags found
无相关合并请求
# frozen_string_literal: true
class AddRemoveDormantMembersIdxNamespaceSettings < Gitlab::Database::Migration[2.2]
disable_ddl_transaction!
milestone '17.8'
COLUMNS = %i[last_dormant_member_review_at remove_dormant_members]
INDEX_NAME = 'idx_namespace_settings_on_remove_dormant_members_review_at'
TABLE = :namespace_settings
def up
add_concurrent_index(
TABLE,
COLUMNS,
where: 'remove_dormant_members IS true',
name: INDEX_NAME
)
end
def down
remove_concurrent_index(
TABLE,
COLUMNS,
name: INDEX_NAME
)
end
end
# frozen_string_literal: true
class RemoveLastDormantMemberReviewAtIdxNamespaceSettings < Gitlab::Database::Migration[2.2]
disable_ddl_transaction!
milestone '17.8'
INDEX_NAME = 'idx_namespace_settings_on_last_dormant_member_review_at'
def up
remove_concurrent_index :namespace_settings, :last_dormant_member_review_at, name: INDEX_NAME
end
def down
add_concurrent_index(
:namespace_settings, :last_dormant_member_review_at,
where: 'remove_dormant_members IS true',
name: INDEX_NAME
)
end
end
3762bf062f641523600b9899d2b77f51cc381df06e283492b8d3de0647b5fe11
\ No newline at end of file
521f5a1d38e9313554d8b054cb1539a8f5e5dd1713df7715d82ed92dd29938cc
\ No newline at end of file
...@@ -29039,7 +29039,7 @@ CREATE INDEX idx_namespace_hostname_import_type_id_source_name_and_username ON i ...@@ -29039,7 +29039,7 @@ CREATE INDEX idx_namespace_hostname_import_type_id_source_name_and_username ON i
   
CREATE UNIQUE INDEX idx_namespace_settings_on_default_compliance_framework_id ON namespace_settings USING btree (default_compliance_framework_id); CREATE UNIQUE INDEX idx_namespace_settings_on_default_compliance_framework_id ON namespace_settings USING btree (default_compliance_framework_id);
   
CREATE INDEX idx_namespace_settings_on_last_dormant_member_review_at ON namespace_settings USING btree (last_dormant_member_review_at) WHERE (remove_dormant_members IS TRUE); CREATE INDEX idx_namespace_settings_on_remove_dormant_members_review_at ON namespace_settings USING btree (last_dormant_member_review_at, remove_dormant_members) WHERE (remove_dormant_members IS TRUE);
   
CREATE UNIQUE INDEX idx_o11y_log_issue_conn_on_issue_id_logs_search_metadata ON observability_logs_issues_connections USING btree (issue_id, service_name, severity_number, log_timestamp, log_fingerprint, trace_identifier); CREATE UNIQUE INDEX idx_o11y_log_issue_conn_on_issue_id_logs_search_metadata ON observability_logs_issues_connections USING btree (issue_id, service_name, severity_number, log_timestamp, log_fingerprint, trace_identifier);
   
...@@ -6,8 +6,17 @@ module NamespaceSetting ...@@ -6,8 +6,17 @@ module NamespaceSetting
extend ::Gitlab::Utils::Override extend ::Gitlab::Utils::Override
prepended do prepended do
DORMANT_REVIEW_PERIOD = 18.hours.ago
cascading_attr :duo_features_enabled cascading_attr :duo_features_enabled
scope :requiring_dormant_member_review, ->(limit) do
# look for settings that have not been reviewed in more than
# 18 hours (catering for 6-hourly review schedule)
where(remove_dormant_members: true)
.where('last_dormant_member_review_at < ? OR last_dormant_member_review_at IS NULL', DORMANT_REVIEW_PERIOD)
.limit(limit)
end
scope :duo_features_set, ->(setting) { where(duo_features_enabled: setting) } scope :duo_features_set, ->(setting) { where(duo_features_enabled: setting) }
belongs_to :default_compliance_framework, optional: true, class_name: "ComplianceManagement::Framework" belongs_to :default_compliance_framework, optional: true, class_name: "ComplianceManagement::Framework"
......
...@@ -16,6 +16,20 @@ ...@@ -16,6 +16,20 @@
end end
end end
describe 'scopes' do
describe '.requiring_dormant_member_review', :freeze_time do
it 'returns settings with feature enabled requiring review' do
setting_never_reviewed = create(:namespace_settings, remove_dormant_members: true, last_dormant_member_review_at: nil)
setting_reviewed_19_hours_ago = create(:namespace_settings, remove_dormant_members: true, last_dormant_member_review_at: 19.hours.ago)
create(:namespace_settings, last_dormant_member_review_at: 18.hours.ago) # exactly 18 hours ago
create(:namespace_settings, remove_dormant_members: false) # feature is disabled
expect(described_class.requiring_dormant_member_review(3))
.to contain_exactly(setting_never_reviewed, setting_reviewed_19_hours_ago)
end
end
end
describe 'validations' do describe 'validations' do
subject(:settings) { group.namespace_settings } subject(:settings) { group.namespace_settings }
......
0% 加载中 .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册