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

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_connection_options!
  validate_required_options!
  validate_option_types!
  validate_proxy_options!
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_required_options!Object

Validate required options are present

Raises:

  • (Train::ClientError)


15
16
17
18
# File 'lib/train-juniper/connection/validation.rb', line 15

def validate_required_options!
  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

Raises:

  • (Train::ClientError)


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