summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ee/lib/gitlab/geo/fdw.rb2
-rw-r--r--ee/spec/lib/gitlab/geo/fdw_spec.rb14
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)