summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorDouwe Maan <douwe@gitlab.com>2016-11-04 11:37:49 +0000
committerDouwe Maan <douwe@gitlab.com>2016-11-04 11:37:49 +0000
commit5ef2bd192aa9b3ecbfc23e83c6984e2a818fb736 (patch)
treeefcc6951aefa2fa5de95593325060bd6bd167d69 /lib
parent69bff037be19b0b426306959dfd9835021886ab8 (diff)
parenta3847fa091991089486fc237428a7fc0e5948947 (diff)
downloadgitlab-ce-5ef2bd192aa9b3ecbfc23e83c6984e2a818fb736.tar.gz
Merge branch '24059-round-robin-repository-storage' into 'master'
Resolve "Introduce round-robin project creation to spread load over multiple shards" ## What does this MR do? Allow multiple shards to be enabled in the admin settings page, balancing project creation across all enabled shards. ## Are there points in the code the reviewer needs to double check? * `f.select ..., multiple: true` isn't the most beautiful UI in the world, but switching to `collection_check_boxes` (or a facsimile thereof) isn't trivial * Should `pick_repository_storage` be a method of `ApplicationSetting`, or `Project`? It's going to accrete logic over time so perhaps it should be its own class already? * This is written to avoid the need for a database migration, so it is`serialize :repository_storage` without `, Array`. This is tested, but alternatives include: * Add a database migration * Write a custom Coder that will accept a String or Array in `load` and always `dump an Array. ## Why was this MR needed? ## Screenshots (if relevant) ![Screen_Shot_2016-11-03_at_14.42.41](/uploads/7de15d6c1b3fa60bb7a34d6a7d9f00ce/Screen_Shot_2016-11-03_at_14.42.41.png) ## Does this MR meet the acceptance criteria? - [X] [CHANGELOG](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/CHANGELOG.md) entry added - [X] [Documentation created/updated](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/development/doc_styleguide.md) - [x] API support added - Tests - [X] Added for this feature/bug - [ ] All builds are passing - [X] Conform by the [merge request performance guides](http://docs.gitlab.com/ce/development/merge_request_performance_guidelines.html) - [X] Conform by the [style guides](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/CONTRIBUTING.md#style-guides) - [X] Branch has no merge conflicts with `master` (if it does - rebase it please) - [X] [Squashed related commits together](https://git-scm.com/book/en/Git-Tools-Rewriting-History#Squashing-Commits) ## What are the relevant issue numbers? Closes #24059 See merge request !7273
Diffstat (limited to 'lib')
-rw-r--r--lib/api/entities.rb1
-rw-r--r--lib/api/settings.rb4
2 files changed, 3 insertions, 2 deletions
diff --git a/lib/api/entities.rb b/lib/api/entities.rb
index d52496451a2..1f378ba1635 100644
--- a/lib/api/entities.rb
+++ b/lib/api/entities.rb
@@ -509,6 +509,7 @@ module API
expose :after_sign_out_path
expose :container_registry_token_expire_delay
expose :repository_storage
+ expose :repository_storages
expose :koding_enabled
expose :koding_url
end
diff --git a/lib/api/settings.rb b/lib/api/settings.rb
index c885fcd7ea3..c4cb1c7924a 100644
--- a/lib/api/settings.rb
+++ b/lib/api/settings.rb
@@ -17,12 +17,12 @@ module API
present current_settings, with: Entities::ApplicationSetting
end
- # Modify applicaiton settings
+ # Modify application settings
#
# Example Request:
# PUT /application/settings
put "application/settings" do
- attributes = current_settings.attributes.keys - ["id"]
+ attributes = ["repository_storage"] + current_settings.attributes.keys - ["id"]
attrs = attributes_for_keys(attributes)
if current_settings.update_attributes(attrs)