diff options
Diffstat (limited to 'lib/gitlab_reference_counter.rb')
-rw-r--r-- | lib/gitlab_reference_counter.rb | 52 |
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 |