diff options
-rw-r--r-- | ee/lib/gitlab/geo/fdw.rb | 2 | ||||
-rw-r--r-- | ee/spec/lib/gitlab/geo/fdw_spec.rb | 14 |
2 files changed, 15 insertions, 1 deletions
diff --git a/ee/lib/gitlab/geo/fdw.rb b/ee/lib/gitlab/geo/fdw.rb index 1867696a980..d20f1ea1678 100644 --- a/ee/lib/gitlab/geo/fdw.rb +++ b/ee/lib/gitlab/geo/fdw.rb @@ -62,6 +62,8 @@ module Gitlab def fdw_capable? has_foreign_server? && has_foreign_schema? && foreign_schema_tables_count.positive? + rescue ::Geo::TrackingBase::SecondaryNotConfigured + false end # Check if there is at least one foreign server configured diff --git a/ee/spec/lib/gitlab/geo/fdw_spec.rb b/ee/spec/lib/gitlab/geo/fdw_spec.rb index a1c61639bab..a2c2085eab7 100644 --- a/ee/spec/lib/gitlab/geo/fdw_spec.rb +++ b/ee/spec/lib/gitlab/geo/fdw_spec.rb @@ -2,6 +2,12 @@ require 'spec_helper' describe Gitlab::Geo::Fdw, :geo do describe '.enabled?' do + it 'returns false when Geo secondary database is not configured' do + allow(Gitlab::Geo).to receive(:geo_database_configured?).and_return(false) + + expect(described_class.enabled?).to eq false + end + it 'returns false when foreign server does not exist' do drop_foreign_server @@ -44,7 +50,7 @@ describe Gitlab::Geo::Fdw, :geo do end end - describe '.enabled?' do + describe '.disabled?' do it 'returns true when foreign server does not exist' do drop_foreign_server @@ -70,6 +76,12 @@ describe Gitlab::Geo::Fdw, :geo do expect(described_class.disabled?).to eq true end + it 'returns true when Geo secondary database is not configured' do + allow(Gitlab::Geo).to receive(:geo_database_configured?).and_return(false) + + expect(described_class.disabled?).to eq true + end + it 'returns false when fdw is set in `config/database_geo.yml`' do allow(Rails.configuration).to receive(:geo_database).and_return('fdw' => true) |