class WinRM::ConnectionOpts
WinRM connection options, provides defaults and validation.
Constants
- DEFAULT_LOCALE
- DEFAULT_MAX_ENV_SIZE
- DEFAULT_OPERATION_TIMEOUT
- DEFAULT_RECEIVE_TIMEOUT
- DEFAULT_RETRY_DELAY
- DEFAULT_RETRY_LIMIT
Public Class Methods
create_with_defaults(overrides)
click to toggle source
# File lib/winrm/connection_opts.rb, line 28 def create_with_defaults(overrides) config = default.merge(overrides) config = ensure_receive_timeout_is_greater_than_operation_timeout(config) config.validate config end
Private Class Methods
default()
click to toggle source
# File lib/winrm/connection_opts.rb, line 44 def default config = ConnectionOpts.new config[:session_id] = SecureRandom.uuid.to_s.upcase config[:transport] = :negotiate config[:locale] = DEFAULT_LOCALE config[:max_envelope_size] = DEFAULT_MAX_ENV_SIZE config[:operation_timeout] = DEFAULT_OPERATION_TIMEOUT config[:receive_timeout] = DEFAULT_RECEIVE_TIMEOUT config[:retry_delay] = DEFAULT_RETRY_DELAY config[:retry_limit] = DEFAULT_RETRY_LIMIT config end
ensure_receive_timeout_is_greater_than_operation_timeout(config)
click to toggle source
# File lib/winrm/connection_opts.rb, line 37 def ensure_receive_timeout_is_greater_than_operation_timeout(config) if config[:receive_timeout] < config[:operation_timeout] config[:receive_timeout] = config[:operation_timeout] + 10 end config end
Public Instance Methods
validate()
click to toggle source
# File lib/winrm/connection_opts.rb, line 58 def validate validate_required_fields validate_data_types end
Private Instance Methods
validate_data_types()
click to toggle source
# File lib/winrm/connection_opts.rb, line 76 def validate_data_types validate_integer(:retry_limit) validate_integer(:retry_delay) validate_integer(:max_envelope_size) validate_integer(:operation_timeout) validate_integer(:receive_timeout, self[:operation_timeout]) end
validate_integer(key, min = 0)
click to toggle source
# File lib/winrm/connection_opts.rb, line 84 def validate_integer(key, min = 0) value = self[key] raise "#{key} must be a Integer" unless value && value.is_a?(Integer) raise "#{key} must be greater than #{min}" unless value > min end
validate_required_fields()
click to toggle source
# File lib/winrm/connection_opts.rb, line 65 def validate_required_fields raise 'endpoint is a required option' unless self[:endpoint] if self[:client_cert] raise 'path to client key is required' unless self[:client_key] else raise 'user is a required option' unless self[:user] raise 'password is a required option' unless self[:password] end end