Class: Pinot::ClientConfig

Inherits:
Object
  • Object
show all
Defined in:
lib/pinot/config.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(broker_list: [], http_timeout: nil, query_timeout_ms: nil, extra_http_header: {}, use_multistage_engine: false, controller_config: nil, logger: nil, tls_config: nil, grpc_config: nil, zookeeper_config: nil) ⇒ ClientConfig

Returns a new instance of ClientConfig.



27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
# File 'lib/pinot/config.rb', line 27

def initialize(
  broker_list: [],
  http_timeout: nil,
  query_timeout_ms: nil,
  extra_http_header: {},
  use_multistage_engine: false,
  controller_config: nil,
  logger: nil,
  tls_config: nil,
  grpc_config: nil,
  zookeeper_config: nil
)
  @broker_list = broker_list
  @http_timeout = http_timeout
  @query_timeout_ms = query_timeout_ms
  @extra_http_header = extra_http_header
  @use_multistage_engine = use_multistage_engine
  @controller_config = controller_config
  @logger = logger
  @tls_config = tls_config
  @grpc_config = grpc_config
  @zookeeper_config = zookeeper_config
  @query_timeout_ms = query_timeout_ms
end

Instance Attribute Details

#broker_listObject

Returns the value of attribute broker_list.



23
24
25
# File 'lib/pinot/config.rb', line 23

def broker_list
  @broker_list
end

#controller_configObject

Returns the value of attribute controller_config.



23
24
25
# File 'lib/pinot/config.rb', line 23

def controller_config
  @controller_config
end

#extra_http_headerObject

Returns the value of attribute extra_http_header.



23
24
25
# File 'lib/pinot/config.rb', line 23

def extra_http_header
  @extra_http_header
end

#grpc_configObject

Returns the value of attribute grpc_config.



23
24
25
# File 'lib/pinot/config.rb', line 23

def grpc_config
  @grpc_config
end

#http_timeoutObject

Returns the value of attribute http_timeout.



23
24
25
# File 'lib/pinot/config.rb', line 23

def http_timeout
  @http_timeout
end

#loggerObject

Returns the value of attribute logger.



23
24
25
# File 'lib/pinot/config.rb', line 23

def logger
  @logger
end

#query_timeout_msObject

Returns the value of attribute query_timeout_ms.



23
24
25
# File 'lib/pinot/config.rb', line 23

def query_timeout_ms
  @query_timeout_ms
end

#tls_configObject

Returns the value of attribute tls_config.



23
24
25
# File 'lib/pinot/config.rb', line 23

def tls_config
  @tls_config
end

#use_multistage_engineObject

Returns the value of attribute use_multistage_engine.



23
24
25
# File 'lib/pinot/config.rb', line 23

def use_multistage_engine
  @use_multistage_engine
end

#zookeeper_configObject

Returns the value of attribute zookeeper_config.



23
24
25
# File 'lib/pinot/config.rb', line 23

def zookeeper_config
  @zookeeper_config
end

Instance Method Details

#validate!Object



52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
# File 'lib/pinot/config.rb', line 52

def validate!
  sources = [
    !broker_list.empty?,
    !controller_config.nil?,
    !zookeeper_config.nil?,
    !grpc_config.nil?
  ].count(true)

  if sources == 0
    raise ConfigurationError, "ClientConfig requires at least one of: broker_list, controller_config, zookeeper_config, or grpc_config"
  end

  if !http_timeout.nil? && http_timeout <= 0
    raise ConfigurationError, "http_timeout must be positive, got: #{http_timeout}"
  end

  if !query_timeout_ms.nil? && query_timeout_ms <= 0
    raise ConfigurationError, "query_timeout_ms must be positive, got: #{query_timeout_ms}"
  end

  self
end