summaryrefslogtreecommitdiff
path: root/config/initializers/6_validations.rb
diff options
context:
space:
mode:
authorAlejandro Rodríguez <alejorro70@gmail.com>2017-03-08 13:15:05 -0300
committerAlejandro Rodríguez <alejorro70@gmail.com>2017-03-08 15:51:30 -0300
commit46214d5e7b0142af67e2f8a5fa4b54c423d3b3a2 (patch)
tree11515d844f18d90cfc97248e9adb60a3663dfd9b /config/initializers/6_validations.rb
parentc14d37a33440d70780928586e4df223301ef8746 (diff)
downloadgitlab-ce-46214d5e7b0142af67e2f8a5fa4b54c423d3b3a2.tar.gz
Improve storage validation after configuration structure updatestorage-validation-improvement
Besides improving the error message to specify what exactly you need to do to solve the error, we now don't skip all storage validations on the test environment, so that you also get a nice error message if you're running tests. Now if conditions are met to skip valitaions (test env or env variable) we still make sure the settings _look_ sane, we just skip verifying the paths exists and meet the given conditions.
Diffstat (limited to 'config/initializers/6_validations.rb')
-rw-r--r--config/initializers/6_validations.rb16
1 files changed, 10 insertions, 6 deletions
diff --git a/config/initializers/6_validations.rb b/config/initializers/6_validations.rb
index abe570f430c..9e24f42d284 100644
--- a/config/initializers/6_validations.rb
+++ b/config/initializers/6_validations.rb
@@ -13,24 +13,27 @@ def storage_validation_error(message)
raise "#{message}. Please fix this in your gitlab.yml before starting GitLab."
end
-def validate_storages
+def validate_storages_config
storage_validation_error('No repository storage path defined') if Gitlab.config.repositories.storages.empty?
Gitlab.config.repositories.storages.each do |name, repository_storage|
storage_validation_error("\"#{name}\" is not a valid storage name") unless storage_name_valid?(name)
if repository_storage.is_a?(String)
- error = "#{name} is not a valid storage, because it has no `path` key. " \
+ raise "#{name} is not a valid storage, because it has no `path` key. " \
"It may be configured as:\n\n#{name}:\n path: #{repository_storage}\n\n" \
- "Refer to gitlab.yml.example for an updated example"
-
- storage_validation_error(error)
+ "For source installations, update your config/gitlab.yml Refer to gitlab.yml.example for an updated example.\n\n" \
+ "If you're using the Gitlab Development Kit, you can update your configuration running `gdk reconfigure`.\n"
end
if !repository_storage.is_a?(Hash) || repository_storage['path'].nil?
storage_validation_error("#{name} is not a valid storage, because it has no `path` key. Refer to gitlab.yml.example for an updated example")
end
+ end
+end
+def validate_storages_paths
+ Gitlab.config.repositories.storages.each do |name, repository_storage|
parent_name, _parent_path = find_parent_path(name, repository_storage['path'])
if parent_name
storage_validation_error("#{name} is a nested path of #{parent_name}. Nested paths are not supported for repository storages")
@@ -38,4 +41,5 @@ def validate_storages
end
end
-validate_storages unless Rails.env.test? || ENV['SKIP_STORAGE_VALIDATION'] == 'true'
+validate_storages_config
+validate_storages_paths unless Rails.env.test? || ENV['SKIP_STORAGE_VALIDATION'] == 'true'