summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAzul <azul@riseup.net>2014-07-16 10:32:27 +0200
committerAzul <azul@riseup.net>2014-07-16 10:32:27 +0200
commitd341c90c1493a78ed0ee2e216797651ff0aebfa9 (patch)
tree05915d577f219d032119534e20fb8eaf3dc0bf94
parentac5781ef6edaf03f06fa980478726aa7d11653c0 (diff)
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
-rw-r--r--provider_base/lib/macros/haproxy.rb8
-rw-r--r--provider_base/services/mx.json2
-rw-r--r--provider_base/services/webapp.json2
3 files changed, 8 insertions, 4 deletions
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": {