Module: TrainPlugins::Juniper::Validation
- Included in:
- Connection
- Defined in:
- lib/train-juniper/connection/validation.rb
Overview
Validation methods for connection options
Instance Method Summary collapse
-
#validate_bastion_port! ⇒ Object
Validate bastion port is in valid range.
-
#validate_connection_options! ⇒ Object
Validate all connection options.
-
#validate_option_types! ⇒ Object
Validate option types and ranges.
-
#validate_port! ⇒ Object
Validate port is in valid range.
-
#validate_port_value!(port_key, port_name = nil) ⇒ Object
private
DRY method for validating port values.
-
#validate_proxy_options! ⇒ Object
private
Validate proxy configuration options (Train standard).
-
#validate_required_options! ⇒ Object
Validate required options are present.
-
#validate_timeout! ⇒ Object
Validate timeout is positive number.
Instance Method Details
#validate_bastion_port! ⇒ Object
Validate bastion port is in valid range
39 40 41 |
# File 'lib/train-juniper/connection/validation.rb', line 39 def validate_bastion_port! validate_port_value!(:bastion_port) end |
#validate_connection_options! ⇒ Object
Validate all connection options
8 9 10 11 12 |
# File 'lib/train-juniper/connection/validation.rb', line 8 def validate_option_types! end |
#validate_option_types! ⇒ Object
Validate option types and ranges
21 22 23 24 25 |
# File 'lib/train-juniper/connection/validation.rb', line 21 def validate_option_types! validate_port! if @options[:port] validate_timeout! if @options[:timeout] validate_bastion_port! if @options[:bastion_port] end |
#validate_port! ⇒ Object
Validate port is in valid range
28 29 30 |
# File 'lib/train-juniper/connection/validation.rb', line 28 def validate_port! validate_port_value!(:port) end |
#validate_port_value!(port_key, port_name = nil) ⇒ Object (private)
DRY method for validating port values
48 49 50 51 52 |
# File 'lib/train-juniper/connection/validation.rb', line 48 def validate_port_value!(port_key, port_name = nil) port_name ||= port_key.to_s.tr('_', ' ') port = @options[port_key].to_i raise Train::ClientError, "Invalid #{port_name}: #{@options[port_key]} (must be 1-65535)" unless port.between?(1, 65_535) end |
#validate_proxy_options! ⇒ Object (private)
Validate proxy configuration options (Train standard)
55 56 57 58 59 60 |
# File 'lib/train-juniper/connection/validation.rb', line 55 def # Cannot use both bastion_host and proxy_command simultaneously if @options[:bastion_host] && @options[:proxy_command] raise Train::ClientError, 'Cannot specify both bastion_host and proxy_command' end end |
#validate_required_options! ⇒ Object
Validate required options are present
15 16 17 18 |
# File 'lib/train-juniper/connection/validation.rb', line 15 def raise Train::ClientError, 'Host is required' unless @options[:host] raise Train::ClientError, 'User is required' unless @options[:user] end |
#validate_timeout! ⇒ Object
Validate timeout is positive number
33 34 35 36 |
# File 'lib/train-juniper/connection/validation.rb', line 33 def validate_timeout! timeout = @options[:timeout] raise Train::ClientError, "Invalid timeout: #{timeout} (must be positive number)" unless timeout.is_a?(Numeric) && timeout.positive? end |