aboutsummaryrefslogtreecommitdiffstats
path: root/collector_proxy/lib/collector_proxy.rb
diff options
context:
space:
mode:
Diffstat (limited to 'collector_proxy/lib/collector_proxy.rb')
-rw-r--r--collector_proxy/lib/collector_proxy.rb38
1 files changed, 38 insertions, 0 deletions
diff --git a/collector_proxy/lib/collector_proxy.rb b/collector_proxy/lib/collector_proxy.rb
new file mode 100644
index 0000000..07804e9
--- /dev/null
+++ b/collector_proxy/lib/collector_proxy.rb
@@ -0,0 +1,38 @@
+Bundler.require
+require "yaml"
+require "logger"
+require "event_channel"
+require "node_manager"
+require "collector_connection"
+require "worker_node_connection"
+
+Settings = OpenStruct.new(YAML.load_file(File.expand_path("../../settings.yml", __FILE__)))
+
+class CollectorProxy
+ class << self
+ def run
+ EventChannel.setup
+ NodeManager.setup
+
+ EM.run do
+ collector_connection = EM.start_server("0.0.0.0", Settings.collector_port, CollectorConnection)
+ worker_node_connections = EM.start_server("0.0.0.0", Settings.worker_node_port, WorkerNodeConnection)
+
+ stop = proc do
+ EM.stop_server(worker_node_connections)
+ sleep 1
+ EM.stop_server(collector_connection)
+ EM.stop
+ end
+
+ Signal.trap(:INT, &stop)
+ Signal.trap(:TERM, &stop)
+ end
+ end
+
+ def logger
+ @logger ||= Logger.new(STDOUT).tap {|l|
+ l.level = Logger.const_get(Settings.log_level.upcase) }
+ end
+ end
+end