summaryrefslogtreecommitdiff
path: root/lib/gitlab_reference_counter.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/gitlab_reference_counter.rb')
-rw-r--r--lib/gitlab_reference_counter.rb52
1 files changed, 0 insertions, 52 deletions
diff --git a/lib/gitlab_reference_counter.rb b/lib/gitlab_reference_counter.rb
deleted file mode 100644
index dc08f42..0000000
--- a/lib/gitlab_reference_counter.rb
+++ /dev/null
@@ -1,52 +0,0 @@
-require_relative 'gitlab_init'
-require_relative 'gitlab_net'
-
-class GitlabReferenceCounter
- REFERENCE_EXPIRE_TIME = 600
-
- attr_reader :path, :key
-
- def initialize(path)
- @path = path
- @key = "git-receive-pack-reference-counter:#{path}"
- end
-
- def value
- (redis_client.get(key) || 0).to_i
- end
-
- def increase
- redis_cmd do
- redis_client.incr(key)
- redis_client.expire(key, REFERENCE_EXPIRE_TIME)
- end
- end
-
- def decrease
- redis_cmd do
- current_value = redis_client.decr(key)
- if current_value < 0
- $logger.warn "Reference counter for #{path} decreased when its value was less than 1. Reseting the counter."
- redis_client.del(key)
- end
- end
- end
-
- private
-
- def redis_client
- @redis_client ||= GitlabNet.new.redis_client
- end
-
- def redis_cmd
- begin
- yield
- true
- rescue => e
- message = "GitLab: An unexpected error occurred in writing to Redis: #{e}"
- $stderr.puts message
- $logger.error message
- false
- end
- end
-end