Skip to content

Instantly share code, notes, and snippets.

@rosconap
Forked from ijin/consul_dynamic_inventory.rb
Last active August 29, 2015 14:23
Show Gist options
  • Save rosconap/d823269cab2e2bff8d63 to your computer and use it in GitHub Desktop.
Save rosconap/d823269cab2e2bff8d63 to your computer and use it in GitHub Desktop.
#!/usr/bin/env ruby
require 'net/http'
require 'uri'
require 'json'
output = {}
s_json = JSON.parse(Net::HTTP.get_response(URI.parse('http://localhost:8500/v1/catalog/services')).body)
services = s_json.keys.reject{|k| k == 'consul'}
services.each do |srv|
res = Net::HTTP.get_response(URI.parse("http://localhost:8500/v1/catalog/service/#{srv}")).body
json = JSON.parse(res)
a = []
json.each {|j| a << j['Address'] }
output = output.merge({srv => a})
end
puts JSON.generate(output)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment