From d341c90c1493a78ed0ee2e216797651ff0aebfa9 Mon Sep 17 00:00:00 2001 From: Azul Date: Wed, 16 Jul 2014 10:32:27 +0200 Subject: haproxy connects to a local couch if available When running a service that requires couch (webapp or mx) on a node that also had couch running the haproxy was confused because it did not have an stunnel port for the local couch. Emit a more useful error and fixed this for webapp and mx --- provider_base/lib/macros/haproxy.rb | 8 ++++++-- provider_base/services/mx.json | 2 +- provider_base/services/webapp.json | 2 +- 3 files changed, 8 insertions(+), 4 deletions(-) (limited to 'provider_base') diff --git a/provider_base/lib/macros/haproxy.rb b/provider_base/lib/macros/haproxy.rb index c0f9ede5..602ae726 100644 --- a/provider_base/lib/macros/haproxy.rb +++ b/provider_base/lib/macros/haproxy.rb @@ -39,6 +39,10 @@ module LeapCli # create the first pass of the servers hash servers = node_list.values.inject(Config::ObjectList.new) do |hsh, node| + # make sure we have a port to talk to + unless accept_ports[node.name] + error "haproxy needs a local port to talk to when connecting to #{node.name}" + end weight = default_weight try { weight = local_weight if self.location.name == node.location.name @@ -46,7 +50,7 @@ module LeapCli hsh[node.name] = Config::Object[ 'backup', false, 'host', 'localhost', - 'port', accept_ports[node.name] || 0, + 'port', accept_ports[node.name], 'weight', weight ] if node.services.include?('couchdb') @@ -66,4 +70,4 @@ module LeapCli end end -end \ No newline at end of file +end diff --git a/provider_base/services/mx.json b/provider_base/services/mx.json index 1f0e613e..32a93638 100644 --- a/provider_base/services/mx.json +++ b/provider_base/services/mx.json @@ -7,7 +7,7 @@ "haproxy": { "couch": { "listen_port": 4096, - "servers": "= haproxy_servers(nodes_like_me[:services => :couchdb], stunnel.clients.couch_client)" + "servers": "= haproxy_servers(nodes_like_me[:services => :couchdb], stunnel.clients.couch_client, 5984)" } }, "couchdb_leap_mx_user": { diff --git a/provider_base/services/webapp.json b/provider_base/services/webapp.json index 1b550af9..c1e3791f 100644 --- a/provider_base/services/webapp.json +++ b/provider_base/services/webapp.json @@ -39,7 +39,7 @@ "haproxy": { "couch": { "listen_port": 4096, - "servers": "= haproxy_servers(nodes_like_me[:services => :couchdb], stunnel.clients.couch_client, global.services[:couchdb].couch.port)" + "servers": "= haproxy_servers(nodes_like_me[:services => :couchdb], stunnel.clients.couch_client, global.services[:couchdb].couch.port, 5984)" } }, "definition_files": { -- cgit v1.2.3