Loading ee/lib/system_check/geo/fdw_enabled_check.rb +2 −2 Original line number Diff line number Diff line Loading @@ -2,10 +2,10 @@ module SystemCheck module Geo class FdwEnabledCheck < SystemCheck::BaseCheck set_name 'GitLab Geo tracking database is configured to use Foreign Data Wrapper?' set_skip_reason 'Geo is not enabled' set_skip_reason 'not a secondary node' def skip? !Gitlab::Geo.enabled? !Gitlab::Geo.secondary? end def check? Loading ee/lib/system_check/geo/fdw_schema_up_to_date_check.rb +6 −4 Original line number Diff line number Diff line Loading @@ -2,17 +2,19 @@ module SystemCheck module Geo class FdwSchemaUpToDateCheck < SystemCheck::BaseCheck set_name 'GitLab Geo tracking database Foreign Data Wrapper schema is up-to-date?' set_skip_reason 'Geo is not enabled' NOT_SECONDARY_NODE = 'not a secondary node'.freeze FDW_NOT_CONFIGURED = 'foreign data wrapper is not configured'.freeze def skip? unless Gitlab::Geo.enabled? self.skip_reason = 'Geo is not enabled' unless Gitlab::Geo.secondary? self.skip_reason = NOT_SECONDARY_NODE return true end unless Gitlab::Geo::Fdw.enabled? self.skip_reason = 'Foreign Data Wrapper is not configured' self.skip_reason = FDW_NOT_CONFIGURED return true end Loading ee/spec/lib/system_check/geo/fdw_enabled_check_spec.rb 0 → 100644 +36 −0 Original line number Diff line number Diff line require 'spec_helper' require 'rake_helper' 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_tracking_db do it 'returns true' do expect(subject.check?).to be_truthy end end end end ee/spec/lib/system_check/geo/fdw_schema_up_to_date_check_spec.rb 0 → 100644 +44 −0 Original line number Diff line number Diff line require 'spec_helper' require 'rake_helper' 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_tracking_db do it 'returns true' do expect(subject.check?).to be_truthy end end end spec/spec_helper.rb +4 −0 Original line number Diff line number Diff line Loading @@ -200,6 +200,10 @@ example.run if Gitlab::Database.postgresql? end config.around(:each, :geo_tracking_db) do |example| example.run if Gitlab::Geo.geo_database_configured? end config.around(:each, :postgresql) do |example| example.run if Gitlab::Database.postgresql? end Loading Loading
ee/lib/system_check/geo/fdw_enabled_check.rb +2 −2 Original line number Diff line number Diff line Loading @@ -2,10 +2,10 @@ module SystemCheck module Geo class FdwEnabledCheck < SystemCheck::BaseCheck set_name 'GitLab Geo tracking database is configured to use Foreign Data Wrapper?' set_skip_reason 'Geo is not enabled' set_skip_reason 'not a secondary node' def skip? !Gitlab::Geo.enabled? !Gitlab::Geo.secondary? end def check? Loading
ee/lib/system_check/geo/fdw_schema_up_to_date_check.rb +6 −4 Original line number Diff line number Diff line Loading @@ -2,17 +2,19 @@ module SystemCheck module Geo class FdwSchemaUpToDateCheck < SystemCheck::BaseCheck set_name 'GitLab Geo tracking database Foreign Data Wrapper schema is up-to-date?' set_skip_reason 'Geo is not enabled' NOT_SECONDARY_NODE = 'not a secondary node'.freeze FDW_NOT_CONFIGURED = 'foreign data wrapper is not configured'.freeze def skip? unless Gitlab::Geo.enabled? self.skip_reason = 'Geo is not enabled' unless Gitlab::Geo.secondary? self.skip_reason = NOT_SECONDARY_NODE return true end unless Gitlab::Geo::Fdw.enabled? self.skip_reason = 'Foreign Data Wrapper is not configured' self.skip_reason = FDW_NOT_CONFIGURED return true end Loading
ee/spec/lib/system_check/geo/fdw_enabled_check_spec.rb 0 → 100644 +36 −0 Original line number Diff line number Diff line require 'spec_helper' require 'rake_helper' 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_tracking_db do it 'returns true' do expect(subject.check?).to be_truthy end end end end
ee/spec/lib/system_check/geo/fdw_schema_up_to_date_check_spec.rb 0 → 100644 +44 −0 Original line number Diff line number Diff line require 'spec_helper' require 'rake_helper' 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_tracking_db do it 'returns true' do expect(subject.check?).to be_truthy end end end
spec/spec_helper.rb +4 −0 Original line number Diff line number Diff line Loading @@ -200,6 +200,10 @@ example.run if Gitlab::Database.postgresql? end config.around(:each, :geo_tracking_db) do |example| example.run if Gitlab::Geo.geo_database_configured? end config.around(:each, :postgresql) do |example| example.run if Gitlab::Database.postgresql? end Loading