summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>2017-05-12 18:26:01 +0300
committerDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>2017-05-12 18:27:59 +0300
commitbbd1be002b15ad50b559c217c4e2f9d50a79ef20 (patch)
tree781f7cebf2f7aaa25568f5c0d60f0eebfe1f38d1
parent1028e05378f1fd25b49d95f36cf577a2b819844d (diff)
downloadgitlab-ce-dz-project-list-cache-key.tar.gz
Change project list cache key to use route.cache_key instead of namespacedz-project-list-cache-key
Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
-rw-r--r--app/helpers/projects_helper.rb3
-rw-r--r--app/models/namespace.rb4
-rw-r--r--app/models/route.rb2
-rw-r--r--changelogs/unreleased/dz-project-list-cache-key.yml2
-rw-r--r--spec/helpers/projects_helper_spec.rb10
-rw-r--r--spec/models/namespace_spec.rb6
6 files changed, 5 insertions, 22 deletions
diff --git a/app/helpers/projects_helper.rb b/app/helpers/projects_helper.rb
index fd85217debf..98bbcfaaba5 100644
--- a/app/helpers/projects_helper.rb
+++ b/app/helpers/projects_helper.rb
@@ -158,8 +158,7 @@ module ProjectsHelper
def project_list_cache_key(project)
key = [
- 'parent/' + project.namespace.parent_full_path,
- project.namespace.cache_key,
+ project.route.cache_key,
project.cache_key,
controller.controller_name,
controller.action_name,
diff --git a/app/models/namespace.rb b/app/models/namespace.rb
index cf82b56cc7a..a7ede5e3b9e 100644
--- a/app/models/namespace.rb
+++ b/app/models/namespace.rb
@@ -224,10 +224,6 @@ class Namespace < ActiveRecord::Base
parent.present?
end
- def parent_full_path
- full_path.split('/')[0...-1].join('/')
- end
-
private
def repository_storage_paths
diff --git a/app/models/route.rb b/app/models/route.rb
index 12a7fa3d01b..be77b8b51a5 100644
--- a/app/models/route.rb
+++ b/app/models/route.rb
@@ -35,7 +35,7 @@ class Route < ActiveRecord::Base
old_path = route.path
# Callbacks must be run manually
- route.update_columns(attributes)
+ route.update_columns(attributes.merge(updated_at: Time.now))
# We are not calling route.delete_conflicting_redirects here, in hopes
# of avoiding deadlocks. The parent (self, in this method) already
diff --git a/changelogs/unreleased/dz-project-list-cache-key.yml b/changelogs/unreleased/dz-project-list-cache-key.yml
index 79d89b1c509..9e4826e686a 100644
--- a/changelogs/unreleased/dz-project-list-cache-key.yml
+++ b/changelogs/unreleased/dz-project-list-cache-key.yml
@@ -1,4 +1,4 @@
---
-title: Add parent full path to project list cache key
+title: Use route.cache_key for project list cache key
merge_request: 11325
author:
diff --git a/spec/helpers/projects_helper_spec.rb b/spec/helpers/projects_helper_spec.rb
index ceabf0caf31..54c5ba57bdf 100644
--- a/spec/helpers/projects_helper_spec.rb
+++ b/spec/helpers/projects_helper_spec.rb
@@ -66,14 +66,8 @@ describe ProjectsHelper do
describe "#project_list_cache_key", redis: true do
let(:project) { create(:project) }
- it "includes the namespace" do
- expect(helper.project_list_cache_key(project)).to include(project.namespace.cache_key)
- end
-
- it "includes the parent namespace in case of subgroup" do
- project = create(:project, group: create(:group, :nested))
-
- expect(helper.project_list_cache_key(project)).to include("parent/#{project.namespace.parent.path}")
+ it "includes the route" do
+ expect(helper.project_list_cache_key(project)).to include(project.route.cache_key)
end
it "includes the project" do
diff --git a/spec/models/namespace_spec.rb b/spec/models/namespace_spec.rb
index ca61e34b78e..8624616316c 100644
--- a/spec/models/namespace_spec.rb
+++ b/spec/models/namespace_spec.rb
@@ -332,10 +332,4 @@ describe Namespace, models: true do
it { expect(group.all_projects.to_a).to eq([project2, project1]) }
end
-
- describe '#parent_full_path' do
- let(:namespace) { create(:group, :nested) }
-
- it { expect(namespace.parent_full_path).to eq(namespace.parent.path) }
- end
end