Class: Odania::Consul::Service
- Inherits:
-
Object
- Object
- Odania::Consul::Service
- Defined in:
- lib/odania/consul.rb
Instance Method Summary collapse
- #build_config(plugin_name, plugin_instance_name, ip, tags = [], port = 80) ⇒ Object
- #deregister(name) ⇒ Object
- #get(key, scope = :first) ⇒ Object
- #get_all ⇒ Object
- #get_all_for(plugin_name) ⇒ Object
-
#get_core_service ⇒ Object
TODO Is there an easier way to get the first service tagges with “core-backend”?.
- #register(consul_config) ⇒ Object
Instance Method Details
#build_config(plugin_name, plugin_instance_name, ip, tags = [], port = 80) ⇒ Object
101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 |
# File 'lib/odania/consul.rb', line 101 def build_config(plugin_name, plugin_instance_name, ip, =[], port=80) { 'id' => plugin_instance_name, 'name' => plugin_name, 'tags' => , 'address' => ip, 'port' => port, 'token' => plugin_instance_name, 'checks' => [ { 'id' => plugin_name, 'name' => "HTTP on port #{port}", 'http' => "http://#{ip}:#{port}/health", 'interval' => '10s', 'timeout' => '1s' } ] } end |
#deregister(name) ⇒ Object
97 98 99 |
# File 'lib/odania/consul.rb', line 97 def deregister(name) Diplomat::Service.deregister name end |
#get(key, scope = :first) ⇒ Object
85 86 87 |
# File 'lib/odania/consul.rb', line 85 def get(key, scope=:first) Diplomat::Service.get(key, scope) end |
#get_all ⇒ Object
57 58 59 60 61 62 63 64 |
# File 'lib/odania/consul.rb', line 57 def get_all services = {} Diplomat::Service.get_all.each_pair do |key, _value| services[key.to_s] = get_all_for(key) end $logger.info "SERVICES: #{JSON.pretty_generate services}" if $debug services end |
#get_all_for(plugin_name) ⇒ Object
66 67 68 69 70 71 72 73 |
# File 'lib/odania/consul.rb', line 66 def get_all_for(plugin_name) begin instances = get(plugin_name, :all) rescue instances = [] end instances.is_a?(Array) ? instances : [instances] end |
#get_core_service ⇒ Object
TODO Is there an easier way to get the first service tagges with “core-backend”?
76 77 78 79 80 81 82 83 |
# File 'lib/odania/consul.rb', line 76 def get_core_service core_backends = [] Diplomat::Service.get_all.each_pair do |key, | core_backends << key if .include? 'core-backend' end get(core_backends.shuffle.first) end |
#register(consul_config) ⇒ Object
89 90 91 92 93 94 95 |
# File 'lib/odania/consul.rb', line 89 def register(consul_config) if Diplomat::Service.register consul_config $logger.info 'Service registered' if $debug else $logger.error 'Error registering service' end end |