Sha256: 58c6b49252996de497f1361935c25f57b29e967af7f75dcfaa935e68dbb2784c

Contents?: true

Size: 1.19 KB

Versions: 1

Compression:

Stored size: 1.19 KB

Contents

#!/usr/bin/env ruby
require 'net/http'
require 'json'

services = {
  'hawkular-services' => {
    url: 'http://localhost:8080/hawkular/status',
    is_ready: -> (response) { response.code == '200' }
  },
  'metrics' => {
    url: 'http://localhost:8080/hawkular/metrics/status',
    is_ready: -> (response) { response.code == '200' && JSON.parse(response.body)['MetricsService'] == 'STARTED' }
  },
  'alerts' => {
    url: 'http://localhost:8080/hawkular/alerts/status',
    is_ready: -> (response) { response.code == '200' && JSON.parse(response.body)['status'] == 'STARTED' }
  },
  'inventory' => {
    url: 'http://localhost:8080/hawkular/inventory/status',
    is_ready: -> (response) { response.code == '200' && JSON.parse(response.body)['Initialized'] == 'true' }
  }
}

services.each do |name, service|
  loop do
    uri = URI(service[:url])
    begin
      response = Net::HTTP.get_response(uri)
      break if service[:is_ready].call(response)
      puts "Waiting for: #{name}"
    rescue
      puts 'Waiting for Hawkular-Services to accept connections'
    end
    sleep 5
  end
end
puts 'Waiting 2 minutes for agent to complete it\'s first round...'
sleep 120
puts 'Hawkular-services started successfully... '

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
hawkular-client-2.9.0 .travis/wait_for_services.rb