summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDouglas Barbosa Alexandre <dbalexandre@gmail.com>2019-05-02 13:30:25 -0300
committerStan Hu <stanhu@gmail.com>2019-05-02 14:42:41 -0700
commit9babc9f7897a66111e2caf472c461a95bcef6db2 (patch)
treeb6f64a2310982177d815e9947578c0b5ff47e039
parent57afb276b1e51525375445fefa252eb2cfc6882c (diff)
downloadgitlab-ce-9babc9f7897a66111e2caf472c461a95bcef6db2.tar.gz
Fix FDW check when Geo secondary database is not configured
-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)