Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitaly.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorQuang-Minh Nguyen <qmnguyen@gitlab.com>2022-10-31 19:53:28 +0300
committerQuang-Minh Nguyen <qmnguyen@gitlab.com>2022-10-31 19:55:58 +0300
commit63b206dd21eac0e7f573b099f6bd4154ca44ae3a (patch)
tree2cc501d32f2d8bbbc8d712864768d2b197e1783e
parent2a76a2615d8b1c6d611d0623e4d0925a4b9f914e (diff)
ruby: Remove FeatureFlags
FeatureFlags is a wrapper for feature flags passed from Gitaly via gRPC metadata. As there is barely anything left in ruby sidecar, it becomes redundant. Changelog: other
-rw-r--r--ruby/lib/gitaly_server.rb1
-rw-r--r--ruby/lib/gitaly_server/feature_flags.rb59
-rw-r--r--ruby/spec/lib/gitaly_server/feature_flags_spec.rb49
3 files changed, 0 insertions, 109 deletions
diff --git a/ruby/lib/gitaly_server.rb b/ruby/lib/gitaly_server.rb
index dcd54dfd8..bb293c7bf 100644
--- a/ruby/lib/gitaly_server.rb
+++ b/ruby/lib/gitaly_server.rb
@@ -7,7 +7,6 @@ require_relative 'gitaly_server/client.rb'
require_relative 'gitaly_server/utils.rb'
require_relative 'gitaly_server/repository_service.rb'
require_relative 'gitaly_server/health_service.rb'
-require_relative 'gitaly_server/feature_flags.rb'
module GitalyServer
STORAGE_PATH_HEADER = 'gitaly-storage-path'.freeze
diff --git a/ruby/lib/gitaly_server/feature_flags.rb b/ruby/lib/gitaly_server/feature_flags.rb
deleted file mode 100644
index da6718a84..000000000
--- a/ruby/lib/gitaly_server/feature_flags.rb
+++ /dev/null
@@ -1,59 +0,0 @@
-# frozen_string_literal: true
-
-module GitalyServer
- # Interface to Ruby-specific feature flags passed to the Gitaly Ruby server
- # via headers.
- class FeatureFlags
- # Only headers prefixed with this String will be made available
- HEADER_PREFIX = 'gitaly-feature-ruby-'
-
- def initialize(metadata)
- @flags = metadata.select do |key, _|
- key.start_with?(HEADER_PREFIX)
- end
- end
-
- # Check if a given flag is enabled
- #
- # The `gitaly-feature-ruby-` prefix is optional, and underscores are
- # translated to hyphens automatically.
- #
- # Examples
- #
- # enabled?('gitaly-feature-ruby-my-flag')
- # => true
- #
- # enabled?(:my_flag)
- # => true
- #
- # enabled?('my-flag')
- # => true
- #
- # enabled?(:unknown_flag)
- # => false
- def enabled?(flag, on_by_default: false)
- flag = normalize_flag(flag)
-
- @flags.fetch(flag, on_by_default.to_s) == 'true'
- end
-
- def disabled?(flag, on_by_default: false)
- !enabled?(flag, on_by_default: on_by_default)
- end
-
- def inspect
- pairs = @flags.map { |name, value| "#{name}=#{value}" }
- pairs.unshift(self.class.name)
-
- "#<#{pairs.join(' ')}>"
- end
-
- private
-
- def normalize_flag(flag)
- flag = flag.to_s.delete_prefix(HEADER_PREFIX).tr('_', '-')
-
- "#{HEADER_PREFIX}#{flag}"
- end
- end
-end
diff --git a/ruby/spec/lib/gitaly_server/feature_flags_spec.rb b/ruby/spec/lib/gitaly_server/feature_flags_spec.rb
deleted file mode 100644
index 40e24a024..000000000
--- a/ruby/spec/lib/gitaly_server/feature_flags_spec.rb
+++ /dev/null
@@ -1,49 +0,0 @@
-# frozen_string_literal: true
-
-require 'spec_helper'
-
-describe GitalyServer::FeatureFlags do
- describe '#enabled?' do
- let(:metadata) do
- {
- "#{described_class::HEADER_PREFIX}some-feature" => 'true',
- 'gitaly-storage-path' => 'foo',
- 'gitaly-repo-path' => 'bar'
- }
- end
-
- subject { described_class.new(metadata) }
-
- it 'returns true for an enabled flag' do
- expect(subject.enabled?(:some_feature)).to eq(true)
- end
-
- it 'returns true for a missing flag that is on by default' do
- expect(subject.enabled?(:feature_default_on, on_by_default: true)).to eq(true)
- end
-
- it 'returns false for an unknown flag' do
- expect(subject.enabled?(:missing_feature)).to eq(false)
- end
-
- it 'removes the prefix if provided' do
- expect(subject.enabled?(metadata.keys.first)).to eq(true)
- end
-
- it 'translates underscores' do
- expect(subject.enabled?('some-feature')).to eq(true)
- end
- end
-
- describe '#disabled?' do
- it 'is the inverse of `enabled?`' do
- instance = described_class.new({})
-
- expect(instance).to receive(:enabled?)
- .with(:some_feature, on_by_default: false)
- .and_return(false)
-
- expect(instance.disabled?(:some_feature)).to eq(true)
- end
- end
-end