lib/capistrano/consul.rb in capistrano3-consul-0.3.5 vs lib/capistrano/consul.rb in capistrano3-consul-0.3.6
- old
+ new
@@ -4,13 +4,15 @@
module Capistrano
module Consul
def self.setup
return if @url
+
@url = fetch(:consul_url)
@token = fetch(:consul_token)
return false unless @url
+
@ssh_gateway = fetch(:consul_ssh_gateway)
if @ssh_gateway
@gateway = Net::SSH::Gateway.new(@ssh_gateway[:host], @ssh_gateway[:username] || @ssh_gateway[:user], @ssh_gateway[:options] || {})
@gateway.open('127.0.0.1', @ssh_gateway[:port], @ssh_gateway[:port])
end
@@ -26,19 +28,27 @@
module DSL
def consul_all_nodes(properties = {})
Consul.setup
Diplomat::Node.get_all.each_with_index do |node, index|
- extra_properties = index.zero? ? { primary: true } : {}
- server(node['Address'], properties.merge(extra_properties))
+ if block_given?
+ yield(node)
+ else
+ extra_properties = index.zero? ? { primary: true } : {}
+ server(node['Address'], properties.merge(extra_properties))
+ end
end
end
def consul_service(service_name, properties = {})
Consul.setup
Diplomat::Service.get(service_name, :all).each_with_index do |node, index|
- extra_properties = index.zero? ? { primary: true } : {}
- server(node['Address'], properties.merge(extra_properties))
+ if block_given?
+ yield(node)
+ else
+ extra_properties = index.zero? ? { primary: true } : {}
+ server(node['Address'], properties.merge(extra_properties))
+ end
end
end
end
end