Class: Elasticsnap::VerifyEsClusterStatus
- Inherits:
-
Object
- Object
- Elasticsnap::VerifyEsClusterStatus
- Defined in:
- lib/elasticsnap/verify_es_cluster_status.rb
Defined Under Namespace
Classes: Error, NoQuorum, StatusRed
Instance Attribute Summary collapse
-
#quorum_nodes ⇒ Object
Returns the value of attribute quorum_nodes.
-
#url ⇒ Object
Returns the value of attribute url.
-
#wait_timeout ⇒ Object
Returns the value of attribute wait_timeout.
Instance Method Summary collapse
-
#initialize(url: nil, quorum_nodes: nil, wait_timeout: 30) ⇒ VerifyEsClusterStatus
constructor
A new instance of VerifyEsClusterStatus.
- #verify! ⇒ Object
- #wait_for_green_quorum! ⇒ Object
Constructor Details
#initialize(url: nil, quorum_nodes: nil, wait_timeout: 30) ⇒ VerifyEsClusterStatus
Returns a new instance of VerifyEsClusterStatus.
13 14 15 16 17 18 19 20 |
# File 'lib/elasticsnap/verify_es_cluster_status.rb', line 13 def initialize(url: nil, quorum_nodes: nil, wait_timeout: 30) raise ArgumentError, 'url required' if url.nil? raise ArgumentError, 'quorum_nodes required' if quorum_nodes.nil? @url = url @quorum_nodes = quorum_nodes @wait_timeout = wait_timeout end |
Instance Attribute Details
#quorum_nodes ⇒ Object
Returns the value of attribute quorum_nodes.
10 11 12 |
# File 'lib/elasticsnap/verify_es_cluster_status.rb', line 10 def quorum_nodes @quorum_nodes end |
#url ⇒ Object
Returns the value of attribute url.
9 10 11 |
# File 'lib/elasticsnap/verify_es_cluster_status.rb', line 9 def url @url end |
#wait_timeout ⇒ Object
Returns the value of attribute wait_timeout.
11 12 13 |
# File 'lib/elasticsnap/verify_es_cluster_status.rb', line 11 def wait_timeout @wait_timeout end |
Instance Method Details
#verify! ⇒ Object
22 23 24 |
# File 'lib/elasticsnap/verify_es_cluster_status.rb', line 22 def verify! wait_for_green_quorum! end |
#wait_for_green_quorum! ⇒ Object
26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
# File 'lib/elasticsnap/verify_es_cluster_status.rb', line 26 def wait_for_green_quorum! Flex::Configuration.http_client.base_uri = url health = Flex.cluster_health( params: { wait_for_status: 'yellow', wait_for_nodes: "gt(#{quorum_nodes})", timeout: "#{wait_timeout}s" } ) raise StatusRed if health['status'] == 'red' raise NoQuorum if health['number_of_nodes'] < quorum_nodes health end |