Commit 3e5ff4a2 authored by Michael Kozono's avatar Michael Kozono

Merge branch '223254-remove-fdw-system-checks' into 'master'

Geo - Remove FDW system configuration checks

See merge request gitlab-org/gitlab!38629
parents 7e10cba4 4e960bb6
---
title: 'Geo: Remove FDW warnings from configuration checks'
merge_request: 38629
author:
type: removed
# frozen_string_literal: true
module SystemCheck
module Geo
class FdwEnabledCheck < SystemCheck::BaseCheck
set_name 'GitLab Geo tracking database is configured to use Foreign Data Wrapper?'
set_skip_reason 'not a secondary node'
def skip?
!Gitlab::Geo.secondary?
end
def check?
Gitlab::Geo::Fdw.enabled?
end
def show_error
try_fixing_it(
'Follow Geo setup instructions to configure secondary nodes with FDW support',
'If you upgraded recently check for any new step required to enable FDW'
)
for_more_information('doc/gitlab-geo/database.md')
end
end
end
end
# frozen_string_literal: true
module SystemCheck
module Geo
class FdwSchemaUpToDateCheck < SystemCheck::BaseCheck
set_name 'GitLab Geo tracking database Foreign Data Wrapper schema is up-to-date?'
NOT_SECONDARY_NODE = 'not a secondary node'.freeze
FDW_NOT_CONFIGURED = 'foreign data wrapper is not configured'.freeze
def skip?
unless Gitlab::Geo.secondary?
self.skip_reason = NOT_SECONDARY_NODE
return true
end
unless Gitlab::Geo::Fdw.enabled?
self.skip_reason = FDW_NOT_CONFIGURED
return true
end
false
end
def check?
Gitlab::Geo::Fdw.foreign_tables_up_to_date?
end
def show_error
try_fixing_it(
'Run the following command to refresh the FDW schema:',
'gitlab-rake geo:db:refresh_foreign_tables'
)
for_more_information('doc/administration/geo/replication/troubleshooting.md#geo-database-has-an-outdated-fdw-remote-schema-error')
end
end
end
end
......@@ -36,8 +36,6 @@ module SystemCheck
SystemCheck::Geo::GeoDatabaseConfiguredCheck,
SystemCheck::Geo::DatabaseReplicationEnabledCheck,
SystemCheck::Geo::DatabaseReplicationWorkingCheck,
SystemCheck::Geo::FdwEnabledCheck,
SystemCheck::Geo::FdwSchemaUpToDateCheck,
SystemCheck::Geo::HttpConnectionCheck
] + common_checks
end
......
# frozen_string_literal: true
require 'spec_helper'
require 'rake_helper'
RSpec.describe SystemCheck::Geo::FdwEnabledCheck, :geo do
describe '#skip?' do
subject { described_class.new.skip? }
it 'skips when Geo is disabled' do
allow(Gitlab::Geo).to receive(:enabled?) { false }
is_expected.to be_truthy
end
it 'skips when Geo is enabled but its a primary node' do
allow(Gitlab::Geo).to receive(:enabled?) { true }
allow(Gitlab::Geo).to receive(:secondary?) { false }
is_expected.to be_truthy
end
it 'does not skip when Geo is enabled and its a secondary node' do
allow(Gitlab::Geo).to receive(:enabled?) { true }
allow(Gitlab::Geo).to receive(:secondary?) { true }
is_expected.to be_falsey
end
end
describe '#check?' do
context 'with functional FDW environment', :geo_fdw do
it 'returns true' do
expect(subject.check?).to be_truthy
end
end
end
end
# frozen_string_literal: true
require 'spec_helper'
require 'rake_helper'
RSpec.describe SystemCheck::Geo::FdwSchemaUpToDateCheck, :geo do
describe '#skip?' do
it 'skips when Geo is disabled' do
allow(Gitlab::Geo).to receive(:enabled?) { false }
expect(subject.skip?).to be_truthy
expect(subject.skip_reason).to eq('not a secondary node')
end
it 'skips when Geo is enabled but its a primary node' do
allow(Gitlab::Geo).to receive(:enabled?) { true }
allow(Gitlab::Geo).to receive(:secondary?) { false }
expect(subject.skip?).to be_truthy
expect(subject.skip_reason).to eq('not a secondary node')
end
it 'skips when FDW is disabled' do
allow(Gitlab::Geo).to receive(:enabled?) { true }
allow(Gitlab::Geo).to receive(:secondary?) { true }
allow(Gitlab::Geo::Fdw).to receive(:enabled?) { false }
expect(subject.skip?).to be_truthy
expect(subject.skip_reason).to eq('foreign data wrapper is not configured')
end
it 'does not skip when Geo is enabled, its a secondary node and FDW is enabled' do
allow(Gitlab::Geo).to receive(:enabled?) { true }
allow(Gitlab::Geo).to receive(:secondary?) { true }
allow(Gitlab::Geo::Fdw).to receive(:enabled?) { true }
expect(subject.skip?).to be_falsey
end
end
context 'with functional FDW environment', :geo_fdw do
it 'returns true' do
expect(subject.check?).to be_truthy
end
end
end
......@@ -25,8 +25,6 @@ RSpec.describe SystemCheck::RakeTask::GeoTask do
SystemCheck::Geo::GeoDatabaseConfiguredCheck,
SystemCheck::Geo::DatabaseReplicationEnabledCheck,
SystemCheck::Geo::DatabaseReplicationWorkingCheck,
SystemCheck::Geo::FdwEnabledCheck,
SystemCheck::Geo::FdwSchemaUpToDateCheck,
SystemCheck::Geo::HttpConnectionCheck
] + common_checks
end
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment