#
# creates a hash suitable for configuring haproxy. the key is the node name of the server we are proxying to.
#
- # stunnel_client contains the mappings to local ports for each node.
+ # * node_list - a hash of nodes for the haproxy servers
+ # * stunnel_client - contains the mappings to local ports for each server node.
+ # * non_stunnel_port - in case self is included in node_list, the port to connect to.
#
# 1000 weight is used for nodes in the same location.
# 100 otherwise.
#
- def haproxy_servers(node_list, stunnel_clients)
+ def haproxy_servers(node_list, stunnel_clients, non_stunnel_port=nil)
default_weight = 10
local_weight = 100
hsh
end
+ # if one the nodes in the node list is ourself, then there will not be a stunnel to it,
+ # but we need to include it anyway in the haproxy config.
+ if node_list[self.name] && non_stunnel_port
+ accept_ports[self.name] = non_stunnel_port
+ end
+
# create the first pass of the servers hash
servers = node_list.values.inject(Config::ObjectList.new) do |hsh, node|
weight = default_weight
module LeapCli
unless defined?(LeapCli::VERSION)
- VERSION = '1.2.2'
+ VERSION = '1.2.3'
COMPATIBLE_PLATFORM_VERSION = '0.2.4'..'1.99'
SUMMARY = 'Command line interface to the LEAP platform'
DESCRIPTION = 'The command "leap" can be used to manage a bevy of servers running the LEAP platform from the comfort of your own home.'