From 31a37708af9c63f74dccae5ac152382415de6099 Mon Sep 17 00:00:00 2001 From: Rob Kaufman Date: Mon, 10 Jan 2022 10:14:40 -0800 Subject: [PATCH] single tenant seeds were broken by account validation (#1772) * single tenant seeds were broken by account validation * fix geocoder * try to fix zookeeper * Update Dockerfile * make sure fcrepo and solr are default config before cleaning * Fix typo --- .circleci/config.yml | 1 + Gemfile.lock | 2 +- app/models/account.rb | 2 +- db/seeds.rb | 15 ++++++--------- spec/rails_helper.rb | 3 +++ 5 files changed, 12 insertions(+), 11 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index eab3ccf5..2864c042 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -44,6 +44,7 @@ jobs: ALLOW_ANONYMOUS_LOGIN: "yes" JVMFLAGS: -Dzookeeper.4lw.commands.whitelist=ruok -Dzookeeper.admin.enableServer=false ZOO_SERVERS: zoo1:2888:3888 + ZOO_ADMIN_SERVER_PORT_NUMBER: 8020 - image: circleci/redis:<> - image: circleci/postgres:9.6.2-alpine parallelism: 4 diff --git a/Gemfile.lock b/Gemfile.lock index 5e46d332..bbf308c2 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -398,7 +398,7 @@ GEM gems (1.2.0) gender_detector (0.1.2) unicode_utils (>= 1.3.0) - geocoder (1.7.1) + geocoder (1.7.2) globalid (1.0.0) activesupport (>= 5.0) google-api-client (0.53.0) diff --git a/app/models/account.rb b/app/models/account.rb index e967b776..449795ac 100644 --- a/app/models/account.rb +++ b/app/models/account.rb @@ -39,7 +39,7 @@ class Account < ApplicationRecord validates :tenant, presence: true, uniqueness: true, format: { with: /\A[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}\z/ }, - unless: proc { |a| a.tenant == 'public' } + unless: proc { |a| a.tenant == 'public' || a.tenant == 'single' } def self.admin_host host = ENV.fetch('HYKU_ADMIN_HOST', nil) diff --git a/db/seeds.rb b/db/seeds.rb index 5ccac4c7..8bd80a92 100644 --- a/db/seeds.rb +++ b/db/seeds.rb @@ -7,15 +7,12 @@ unless ActiveModel::Type::Boolean.new.cast(ENV.fetch('HYKU_MULTITENANT', false)) puts "\n== Creating single tenant resources" - begin - single_tenant_default = Account.find_by(cname: 'single.tenant.default') - if single_tenant_default.blank? - single_tenant_default = Account.new(name: 'Single Tenant', cname: 'single.tenant.default', tenant: 'single', is_public: true) - CreateAccount.new(single_tenant_default).save - single_tenant_default = single_tenant_default.reload - end - # Rescue from any errors during creation - rescue + single_tenant_default = Account.find_by(cname: 'single.tenant.default') + if single_tenant_default.blank? + single_tenant_default = Account.new(name: 'Single Tenant', cname: 'single.tenant.default', tenant: 'single', is_public: true) + CreateAccount.new(single_tenant_default).save + raise "Account creation failed for #{single_tenant_default.errors.full_messages}" unless single_tenant_default.valid? + single_tenant_default = single_tenant_default.reload end AccountElevator.switch!(single_tenant_default.cname) diff --git a/spec/rails_helper.rb b/spec/rails_helper.rb index ef319921..5f1ce1bf 100644 --- a/spec/rails_helper.rb +++ b/spec/rails_helper.rb @@ -146,6 +146,9 @@ end config.before do |example| + # make sure we are on the default fedora config + ActiveFedora::Fedora.reset! + ActiveFedora::SolrService.reset! # Pass `:clean' to destroy objects in fedora/solr and start from scratch ActiveFedora::Cleaner.clean! if example.metadata[:clean] if example.metadata[:type] == :feature && Capybara.current_driver != :rack_test