From 9af31c2254757c2904a9b4c8806cb181fa60541c Mon Sep 17 00:00:00 2001 From: Andy Allan Date: Wed, 13 Mar 2019 17:33:28 +0100 Subject: [PATCH] Only take the STATUS configuration from the environment This allows us to remove the preinitializer-based configuration parsing. --- config/.gitignore | 1 - config/application.rb | 17 ++++++++++++++++- config/example.application.yml | 18 ------------------ config/preinitializer.rb | 13 ------------- 4 files changed, 16 insertions(+), 33 deletions(-) delete mode 100644 config/example.application.yml delete mode 100644 config/preinitializer.rb diff --git a/config/.gitignore b/config/.gitignore index f8580b426..b5649dd03 100644 --- a/config/.gitignore +++ b/config/.gitignore @@ -1,2 +1 @@ -application.yml database.yml diff --git a/config/application.rb b/config/application.rb index f05c6fa62..2a0547a72 100644 --- a/config/application.rb +++ b/config/application.rb @@ -1,6 +1,21 @@ require_relative "boot" -require_relative "preinitializer" +# Set the STATUS constant from the environment, if it matches a recognized value +ALLOWED_STATUS = [ + :online, # online and operating normally + :api_readonly, # site online but API in read-only mode + :api_offline, # site online but API offline + :database_readonly, # database and site in read-only mode + :database_offline, # database offline with site in emergency mode + :gpx_offline # gpx storage offline +].freeze + +status = if ENV["STATUS"] && ALLOWED_STATUS.include?(ENV["STATUS"].to_sym) + ENV["STATUS"].to_sym + else + :online + end +Object.const_set("STATUS", status) if STATUS == :database_offline require "action_controller/railtie" diff --git a/config/example.application.yml b/config/example.application.yml deleted file mode 100644 index 0b23680b6..000000000 --- a/config/example.application.yml +++ /dev/null @@ -1,18 +0,0 @@ -defaults: &defaults - # Application status - possible values are: - # :online - online and operating normally - # :api_readonly - site online but API in read-only mode - # :api_offline - site online but API offline - # :database_readonly - database and site in read-only mode - # :database_offline - database offline with site in emergency mode - # :gpx_offline - gpx storage offline - status: :online - -development: - <<: *defaults - -production: - <<: *defaults - -test: - <<: *defaults diff --git a/config/preinitializer.rb b/config/preinitializer.rb deleted file mode 100644 index 253f58605..000000000 --- a/config/preinitializer.rb +++ /dev/null @@ -1,13 +0,0 @@ -require "yaml" - -env = if defined?(Rake.application) && Rake.application.top_level_tasks.grep(/^(default$|test(:|$))/).any? - "test" - else - ENV["RAILS_ENV"] || "development" - end - -config = YAML.load_file(File.expand_path(env == "test" ? "../example.application.yml" : "../application.yml", __FILE__)) - -config[env].each do |key, value| - Object.const_set(key.upcase, value) unless Object.const_defined?(key.upcase) -end -- 2.43.2