Module: Boutons
- Defined in:
- lib/boutons.rb,
lib/boutons/uri.rb,
lib/boutons/config.rb,
lib/boutons/version.rb,
lib/boutons/resource.rb,
lib/boutons/event_sniffer.rb
Defined Under Namespace
Classes: Config, EventSniffer, MissingSynapse, Resource, URI, UnknownSynapse
Constant Summary
collapse
- VERSION =
"0.5.0"
Class Method Summary
collapse
Class Method Details
.add(synapse) ⇒ Object
19
20
21
22
23
24
25
26
|
# File 'lib/boutons.rb', line 19
def add synapse
return services[synapse.name] if services[synapse.name]
services[synapse.name] = synapse
start
update
synapse.check
synapse
end
|
.all ⇒ Object
80
81
82
|
# File 'lib/boutons.rb', line 80
def all
services
end
|
.available ⇒ Object
86
87
88
|
# File 'lib/boutons.rb', line 86
def available
Boutons::Config.services.keys.map{|k|k.to_s} rescue []
end
|
.connectable?(service) ⇒ Boolean
83
84
85
|
# File 'lib/boutons.rb', line 83
def connectable? service
available.include?(service.to_s) rescue false
end
|
.emit(event) ⇒ Object
45
46
47
48
49
50
51
52
|
# File 'lib/boutons.rb', line 45
def emit event
@callbacks ||= {}
@callbacks[event] ||= []
return if @callbacks[event].empty?
@callbacks[event].each do |callback|
callback.call
end
end
|
.haproxy ⇒ Object
77
78
79
|
# File 'lib/boutons.rb', line 77
def haproxy
@@haproxy ||= Synapse::Config::Haproxy.new Synapse::Easy::Haproxy.new
end
|
.log_with(logger, synapses: nil) ⇒ Object
63
64
65
66
67
68
69
70
71
72
73
74
75
76
|
# File 'lib/boutons.rb', line 63
def log_with logger, synapses:nil
logger.info "Replace logger #{logger} with #{logger}"
logger=logger
synapse.logger=logger
return unless synapses
if synapses.to_sym == :all
return synapse.service_watchers.map{|s|s.logger=logger}
end
synapse.service_watchers.each do |services_watcher|
if synapses==services_watcher.name
services_watcher.logger = logger
end
end
end
|
.notify(event, callback) ⇒ Object
40
41
42
43
44
|
# File 'lib/boutons.rb', line 40
def notify event, callback
@callbacks ||= {}
@callbacks[event] ||= []
@callbacks[event] << callback
end
|
.provide(service, service_uri) ⇒ Object
27
28
29
30
31
32
33
34
35
36
37
38
39
|
# File 'lib/boutons.rb', line 27
def provide service, service_uri
return services[service.to_sym] if services[service.to_sym]
uri = Boutons::URI.new service_uri
params = {}
params[:application] = uri.host
params[:mode] = uri.mode
params[:uri] = uri.check_uri
params[:method] = uri.registry.method
params[:path] = uri.registry.zk_path
params[:hosts] = uri.registry.zk_hosts
params[:name] = service.to_sym
add Synapse::Easy::Service.new params
end
|
.remove(name) ⇒ Object
53
54
55
56
57
|
# File 'lib/boutons.rb', line 53
def remove name
services[mapping[name]] = nil
start
update
end
|
.with_loggers ⇒ Object
58
59
60
61
62
|
# File 'lib/boutons.rb', line 58
def with_loggers
synapse.service_watchers.collect{|s|s.logger}+[logger,synapse.logger].each do |logger|
yield(logger) if block_given?
end
end
|