Commit 69e9c414 authored by Dmitriy Zaporozhets's avatar Dmitriy Zaporozhets

Merge branch 'expire-application-settings-startup' of https://gitlab.com/stanhu/gitlab-ce

parents c48518ac 78c1ab40
...@@ -2,6 +2,7 @@ Please view this file on the master branch, on stable branches it's out of date. ...@@ -2,6 +2,7 @@ Please view this file on the master branch, on stable branches it's out of date.
v 8.3.0 (unreleased) v 8.3.0 (unreleased)
- Fix Error 500 when viewing user's personal projects from admin page (Stan Hu) - Fix Error 500 when viewing user's personal projects from admin page (Stan Hu)
- Ensure cached application settings are refreshed at startup (Stan Hu)
- Fix: Assignee selector is empty when 'Unassigned' is selected (Jose Corcuera) - Fix: Assignee selector is empty when 'Unassigned' is selected (Jose Corcuera)
- Fix 500 error when update group member permission - Fix 500 error when update group member permission
- Fix: Raw private snippets access workflow - Fix: Raw private snippets access workflow
......
...@@ -73,15 +73,23 @@ class ApplicationSetting < ActiveRecord::Base ...@@ -73,15 +73,23 @@ class ApplicationSetting < ActiveRecord::Base
end end
after_commit do after_commit do
Rails.cache.write('application_setting.last', self) Rails.cache.write(cache_key, self)
end end
def self.current def self.current
Rails.cache.fetch('application_setting.last') do Rails.cache.fetch(cache_key) do
ApplicationSetting.last ApplicationSetting.last
end end
end end
def self.expire
Rails.cache.delete(cache_key)
end
def self.cache_key
'application_setting.last'
end
def self.create_from_defaults def self.create_from_defaults
create( create(
default_projects_limit: Settings.gitlab['default_projects_limit'], default_projects_limit: Settings.gitlab['default_projects_limit'],
......
...@@ -14,11 +14,15 @@ module Ci ...@@ -14,11 +14,15 @@ module Ci
extend Ci::Model extend Ci::Model
after_commit do after_commit do
Rails.cache.write('ci_application_setting.last', self) Rails.cache.write(cache_key, self)
end
def self.expire
Rails.cache.delete(cache_key)
end end
def self.current def self.current
Rails.cache.fetch('ci_application_setting.last') do Rails.cache.fetch(cache_key) do
Ci::ApplicationSetting.last Ci::ApplicationSetting.last
end end
end end
...@@ -29,5 +33,9 @@ module Ci ...@@ -29,5 +33,9 @@ module Ci
add_pusher: Settings.gitlab_ci['add_pusher'], add_pusher: Settings.gitlab_ci['add_pusher'],
) )
end end
def self.cache_key
'ci_application_setting.last'
end
end end
end end
...@@ -293,3 +293,12 @@ if Rails.env.test? ...@@ -293,3 +293,12 @@ if Rails.env.test?
Settings.gitlab['default_can_create_group'] = true Settings.gitlab['default_can_create_group'] = true
Settings.gitlab['default_can_create_team'] = false Settings.gitlab['default_can_create_team'] = false
end end
# Force a refresh of application settings at startup
begin
ApplicationSetting.expire
Ci::ApplicationSetting.expire
rescue
# Gracefully handle when Redis is not available. For example,
# omnibus may fail here during assets:precompile.
end
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment