summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDouwe Maan <douwe@selenight.nl>2018-12-06 12:29:57 +0100
committerDouwe Maan <douwe@selenight.nl>2018-12-06 12:29:57 +0100
commita7ebb27ac6a8082864bb583a4a39e920524ba4d3 (patch)
tree738dbe1504bc247d662a1d3b517c42024cbf7b8f
parent58cd236af6bd8d8c01cbfbd71d284ada5958c10d (diff)
downloadgitlab-ce-a7ebb27ac6a8082864bb583a4a39e920524ba4d3.tar.gz
Revert "Merge branch '3062-improve-project-cache' into 'master'"
This reverts commit e65e184269bb27661c9a20658933e8482aa90b62, reversing changes made to 646ba2418b630710edeaac94b57d08adf2771257. # Conflicts: # lib/gitlab/cache/ci/project_pipeline_status.rb
-rw-r--r--app/models/repository.rb12
-rw-r--r--lib/gitlab/cache/ci/project_pipeline_status.rb2
-rw-r--r--lib/gitlab/repository_cache.rb4
-rw-r--r--spec/lib/gitlab/repository_cache_spec.rb22
-rw-r--r--spec/models/repository_spec.rb18
5 files changed, 16 insertions, 42 deletions
diff --git a/app/models/repository.rb b/app/models/repository.rb
index 35dd120856d..a9c167373c3 100644
--- a/app/models/repository.rb
+++ b/app/models/repository.rb
@@ -1060,19 +1060,11 @@ class Repository
end
def cache
- @cache ||= if is_wiki
- Gitlab::RepositoryCache.new(self, extra_namespace: 'wiki')
- else
- Gitlab::RepositoryCache.new(self)
- end
+ @cache ||= Gitlab::RepositoryCache.new(self)
end
def request_store_cache
- @request_store_cache ||= if is_wiki
- Gitlab::RepositoryCache.new(self, extra_namespace: 'wiki', backend: Gitlab::SafeRequestStore)
- else
- Gitlab::RepositoryCache.new(self, backend: Gitlab::SafeRequestStore)
- end
+ @request_store_cache ||= Gitlab::RepositoryCache.new(self, backend: Gitlab::SafeRequestStore)
end
def tags_sorted_by_committed_date
diff --git a/lib/gitlab/cache/ci/project_pipeline_status.rb b/lib/gitlab/cache/ci/project_pipeline_status.rb
index ea7013db2ce..eec4e3fde16 100644
--- a/lib/gitlab/cache/ci/project_pipeline_status.rb
+++ b/lib/gitlab/cache/ci/project_pipeline_status.rb
@@ -110,7 +110,7 @@ module Gitlab
end
def cache_key
- "#{Gitlab::Redis::Cache::CACHE_NAMESPACE}:project:#{project.id}:pipeline_status:#{commit&.sha}"
+ "#{Gitlab::Redis::Cache::CACHE_NAMESPACE}:projects/#{project.id}/pipeline_status/#{commit&.sha}"
end
def commit
diff --git a/lib/gitlab/repository_cache.rb b/lib/gitlab/repository_cache.rb
index 6b0808f5304..56007574b1b 100644
--- a/lib/gitlab/repository_cache.rb
+++ b/lib/gitlab/repository_cache.rb
@@ -7,13 +7,13 @@ module Gitlab
def initialize(repository, extra_namespace: nil, backend: Rails.cache)
@repository = repository
- @namespace = "project:#{repository.project.id}"
+ @namespace = "#{repository.full_path}:#{repository.project.id}"
@namespace = "#{@namespace}:#{extra_namespace}" if extra_namespace
@backend = backend
end
def cache_key(type)
- "#{namespace}:#{type}"
+ "#{type}:#{namespace}"
end
def expire(key)
diff --git a/spec/lib/gitlab/repository_cache_spec.rb b/spec/lib/gitlab/repository_cache_spec.rb
index 1b9a8b4ab0d..741ee12633f 100644
--- a/spec/lib/gitlab/repository_cache_spec.rb
+++ b/spec/lib/gitlab/repository_cache_spec.rb
@@ -4,14 +4,14 @@ describe Gitlab::RepositoryCache do
let(:backend) { double('backend').as_null_object }
let(:project) { create(:project) }
let(:repository) { project.repository }
- let(:namespace) { "project:#{project.id}" }
+ let(:namespace) { "#{repository.full_path}:#{project.id}" }
let(:cache) { described_class.new(repository, backend: backend) }
describe '#cache_key' do
subject { cache.cache_key(:foo) }
it 'includes the namespace' do
- expect(subject).to eq "#{namespace}:foo"
+ expect(subject).to eq "foo:#{namespace}"
end
context 'with a given namespace' do
@@ -22,7 +22,7 @@ describe Gitlab::RepositoryCache do
end
it 'includes the full namespace' do
- expect(subject).to eq "#{namespace}:#{extra_namespace}:foo"
+ expect(subject).to eq "foo:#{namespace}:#{extra_namespace}"
end
end
end
@@ -30,21 +30,21 @@ describe Gitlab::RepositoryCache do
describe '#expire' do
it 'expires the given key from the cache' do
cache.expire(:foo)
- expect(backend).to have_received(:delete).with("#{namespace}:foo")
+ expect(backend).to have_received(:delete).with("foo:#{namespace}")
end
end
describe '#fetch' do
it 'fetches the given key from the cache' do
cache.fetch(:bar)
- expect(backend).to have_received(:fetch).with("#{namespace}:bar")
+ expect(backend).to have_received(:fetch).with("bar:#{namespace}")
end
it 'accepts a block' do
p = -> {}
cache.fetch(:baz, &p)
- expect(backend).to have_received(:fetch).with("#{namespace}:baz", &p)
+ expect(backend).to have_received(:fetch).with("baz:#{namespace}", &p)
end
end
@@ -67,7 +67,7 @@ describe Gitlab::RepositoryCache do
end
it 'caches the value' do
- expect(backend).to receive(:write).with("#{namespace}:#{key}", true)
+ expect(backend).to receive(:write).with("#{key}:#{namespace}", true)
cache.fetch_without_caching_false(key) { true }
end
@@ -83,7 +83,7 @@ describe Gitlab::RepositoryCache do
end
it 'does not cache the value' do
- expect(backend).not_to receive(:write).with("#{namespace}:#{key}", true)
+ expect(backend).not_to receive(:write).with("#{key}:#{namespace}", true)
cache.fetch_without_caching_false(key, &p)
end
@@ -92,7 +92,7 @@ describe Gitlab::RepositoryCache do
context 'when the cached value is truthy' do
before do
- backend.write("#{namespace}:#{key}", true)
+ backend.write("#{key}:#{namespace}", true)
end
it 'returns the cached value' do
@@ -116,7 +116,7 @@ describe Gitlab::RepositoryCache do
context 'when the cached value is falsey' do
before do
- backend.write("#{namespace}:#{key}", false)
+ backend.write("#{key}:#{namespace}", false)
end
it 'returns the result of the block' do
@@ -126,7 +126,7 @@ describe Gitlab::RepositoryCache do
end
it 'writes the truthy value to the cache' do
- expect(backend).to receive(:write).with("#{namespace}:#{key}", 'block result')
+ expect(backend).to receive(:write).with("#{key}:#{namespace}", 'block result')
cache.fetch_without_caching_false(key) { 'block result' }
end
diff --git a/spec/models/repository_spec.rb b/spec/models/repository_spec.rb
index f09b4b67061..d6c5b9228c0 100644
--- a/spec/models/repository_spec.rb
+++ b/spec/models/repository_spec.rb
@@ -2339,22 +2339,4 @@ describe Repository do
repository.merge_base('master', 'fix')
end
end
-
- describe '#cache' do
- subject(:cache) { repository.send(:cache) }
-
- it 'returns a RepositoryCache' do
- expect(subject).to be_kind_of Gitlab::RepositoryCache
- end
-
- it 'when is_wiki it includes wiki as part of key' do
- allow(repository).to receive(:is_wiki) { true }
-
- expect(subject.namespace).to include('wiki')
- end
-
- it 'when is_wiki is false extra_namespace is nil' do
- expect(subject.namespace).not_to include('wiki')
- end
- end
end