Class: Stoplight::Wiring::ConfigCompatibilityValidator
- Inherits:
-
Object
- Object
- Stoplight::Wiring::ConfigCompatibilityValidator
- Defined in:
- lib/stoplight/wiring/config_compatibility_validator.rb
Overview
Validates that traffic control and recovery strategies are compatible with the provided configuration.
Different strategies have different configuration requirements:
-
ErrorRate requires window_size and threshold ∈ [0,1]
-
ConsecutiveErrors requires threshold > 0
-
ConsecutiveSuccesses requires recovery_threshold > 0
Class Method Summary collapse
Instance Method Summary collapse
- #call ⇒ Object
-
#initialize(config:) ⇒ ConfigCompatibilityValidator
constructor
A new instance of ConfigCompatibilityValidator.
- #validate_traffic_recovery! ⇒ Object
Constructor Details
#initialize(config:) ⇒ ConfigCompatibilityValidator
Returns a new instance of ConfigCompatibilityValidator.
21 22 23 |
# File 'lib/stoplight/wiring/config_compatibility_validator.rb', line 21 def initialize(config:) @config = config end |
Class Method Details
.call(config:) ⇒ Object
18 |
# File 'lib/stoplight/wiring/config_compatibility_validator.rb', line 18 def call(config:) = new(config:).call |
Instance Method Details
#call ⇒ Object
25 26 27 28 29 |
# File 'lib/stoplight/wiring/config_compatibility_validator.rb', line 25 def call validate_traffic_control! validate_traffic_recovery! config end |
#validate_traffic_recovery! ⇒ Object
42 43 44 45 46 47 48 49 50 51 |
# File 'lib/stoplight/wiring/config_compatibility_validator.rb', line 42 def validate_traffic_recovery! traffic_recovery = config.traffic_recovery traffic_recovery.check_compatibility(config).then do |compatibility_result| if compatibility_result.incompatible? raise Error::ConfigurationError, "#{traffic_recovery} incompatible with config: #{compatibility_result.}", caller(8) end end end |