Class: Pinot::ClientConfig
- Inherits:
-
Object
- Object
- Pinot::ClientConfig
- Defined in:
- lib/pinot/config.rb
Instance Attribute Summary collapse
-
#broker_list ⇒ Object
Returns the value of attribute broker_list.
-
#circuit_breaker_enabled ⇒ Object
Returns the value of attribute circuit_breaker_enabled.
-
#circuit_breaker_threshold ⇒ Object
Returns the value of attribute circuit_breaker_threshold.
-
#circuit_breaker_timeout ⇒ Object
Returns the value of attribute circuit_breaker_timeout.
-
#controller_config ⇒ Object
Returns the value of attribute controller_config.
-
#extra_http_header ⇒ Object
Returns the value of attribute extra_http_header.
-
#grpc_config ⇒ Object
Returns the value of attribute grpc_config.
-
#http_timeout ⇒ Object
Returns the value of attribute http_timeout.
-
#keep_alive_timeout ⇒ Object
Returns the value of attribute keep_alive_timeout.
-
#logger ⇒ Object
Returns the value of attribute logger.
-
#max_retries ⇒ Object
Returns the value of attribute max_retries.
-
#pool_size ⇒ Object
Returns the value of attribute pool_size.
-
#query_timeout_ms ⇒ Object
Returns the value of attribute query_timeout_ms.
-
#retry_interval_ms ⇒ Object
Returns the value of attribute retry_interval_ms.
-
#tls_config ⇒ Object
Returns the value of attribute tls_config.
-
#use_multistage_engine ⇒ Object
Returns the value of attribute use_multistage_engine.
-
#zookeeper_config ⇒ Object
Returns the value of attribute zookeeper_config.
Instance Method Summary collapse
-
#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, max_retries: 0, retry_interval_ms: 200, pool_size: nil, keep_alive_timeout: nil, circuit_breaker_enabled: false, circuit_breaker_threshold: 5, circuit_breaker_timeout: 30) ⇒ ClientConfig
constructor
A new instance of ClientConfig.
- #validate! ⇒ Object
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, max_retries: 0, retry_interval_ms: 200, pool_size: nil, keep_alive_timeout: nil, circuit_breaker_enabled: false, circuit_breaker_threshold: 5, circuit_breaker_timeout: 30) ⇒ ClientConfig
Returns a new instance of ClientConfig.
34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 |
# File 'lib/pinot/config.rb', line 34 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, max_retries: 0, retry_interval_ms: 200, pool_size: nil, keep_alive_timeout: nil, circuit_breaker_enabled: false, circuit_breaker_threshold: 5, circuit_breaker_timeout: 30 ) @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 @max_retries = max_retries @retry_interval_ms = retry_interval_ms @pool_size = pool_size @keep_alive_timeout = keep_alive_timeout @circuit_breaker_enabled = circuit_breaker_enabled @circuit_breaker_threshold = circuit_breaker_threshold @circuit_breaker_timeout = circuit_breaker_timeout end |
Instance Attribute Details
#broker_list ⇒ Object
Returns the value of attribute broker_list.
23 24 25 |
# File 'lib/pinot/config.rb', line 23 def broker_list @broker_list end |
#circuit_breaker_enabled ⇒ Object
Returns the value of attribute circuit_breaker_enabled.
23 24 25 |
# File 'lib/pinot/config.rb', line 23 def circuit_breaker_enabled @circuit_breaker_enabled end |
#circuit_breaker_threshold ⇒ Object
Returns the value of attribute circuit_breaker_threshold.
23 24 25 |
# File 'lib/pinot/config.rb', line 23 def circuit_breaker_threshold @circuit_breaker_threshold end |
#circuit_breaker_timeout ⇒ Object
Returns the value of attribute circuit_breaker_timeout.
23 24 25 |
# File 'lib/pinot/config.rb', line 23 def circuit_breaker_timeout @circuit_breaker_timeout end |
#controller_config ⇒ Object
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_header ⇒ Object
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_config ⇒ Object
Returns the value of attribute grpc_config.
23 24 25 |
# File 'lib/pinot/config.rb', line 23 def grpc_config @grpc_config end |
#http_timeout ⇒ Object
Returns the value of attribute http_timeout.
23 24 25 |
# File 'lib/pinot/config.rb', line 23 def http_timeout @http_timeout end |
#keep_alive_timeout ⇒ Object
Returns the value of attribute keep_alive_timeout.
23 24 25 |
# File 'lib/pinot/config.rb', line 23 def keep_alive_timeout @keep_alive_timeout end |
#logger ⇒ Object
Returns the value of attribute logger.
23 24 25 |
# File 'lib/pinot/config.rb', line 23 def logger @logger end |
#max_retries ⇒ Object
Returns the value of attribute max_retries.
23 24 25 |
# File 'lib/pinot/config.rb', line 23 def max_retries @max_retries end |
#pool_size ⇒ Object
Returns the value of attribute pool_size.
23 24 25 |
# File 'lib/pinot/config.rb', line 23 def pool_size @pool_size end |
#query_timeout_ms ⇒ Object
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 |
#retry_interval_ms ⇒ Object
Returns the value of attribute retry_interval_ms.
23 24 25 |
# File 'lib/pinot/config.rb', line 23 def retry_interval_ms @retry_interval_ms end |
#tls_config ⇒ Object
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_engine ⇒ Object
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_config ⇒ Object
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
72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 |
# File 'lib/pinot/config.rb', line 72 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 if !pool_size.nil? && pool_size < 1 raise ConfigurationError, "pool_size must be at least 1, got: #{pool_size}" end if !keep_alive_timeout.nil? && keep_alive_timeout <= 0 raise ConfigurationError, "keep_alive_timeout must be positive, got: #{keep_alive_timeout}" end self end |