omf_common 6.0.2.pre.2 → 6.0.2
Sign up to get free protection for your applications and to get access to all the features.
- data/bin/file_broadcaster.rb +5 -0
- data/bin/file_receiver.rb +5 -0
- data/bin/omf_keygen +3 -3
- data/bin/omf_send_configure +114 -0
- data/bin/omf_send_request +19 -4
- data/example/engine_alt.rb +13 -7
- data/example/viz/garage_monitor.rb +69 -0
- data/example/viz/garage_viz.rb +52 -0
- data/example/viz/htdocs/image/garage.png +0 -0
- data/example/viz/htdocs/template/garage_banner.html +2 -0
- data/example/viz/layout.yaml +44 -0
- data/example/vm_alt.rb +5 -0
- data/lib/omf_common.rb +17 -8
- data/lib/omf_common/auth.rb +5 -0
- data/lib/omf_common/auth/certificate.rb +21 -2
- data/lib/omf_common/auth/certificate_store.rb +50 -20
- data/lib/omf_common/auth/ssh_pub_key_convert.rb +7 -0
- data/lib/omf_common/comm.rb +6 -1
- data/lib/omf_common/comm/amqp/amqp_communicator.rb +88 -12
- data/lib/omf_common/comm/amqp/amqp_file_transfer.rb +5 -0
- data/lib/omf_common/comm/amqp/amqp_topic.rb +37 -18
- data/lib/omf_common/comm/local/local_communicator.rb +5 -0
- data/lib/omf_common/comm/local/local_topic.rb +5 -0
- data/lib/omf_common/comm/topic.rb +32 -13
- data/lib/omf_common/comm/xmpp/communicator.rb +11 -1
- data/lib/omf_common/comm/xmpp/topic.rb +5 -0
- data/lib/omf_common/comm/xmpp/xmpp_mp.rb +5 -0
- data/lib/omf_common/command.rb +5 -0
- data/lib/omf_common/core_ext/string.rb +5 -0
- data/lib/omf_common/default_logging.rb +23 -5
- data/lib/omf_common/eventloop.rb +40 -23
- data/lib/omf_common/eventloop/em.rb +18 -5
- data/lib/omf_common/eventloop/local_evl.rb +18 -15
- data/lib/omf_common/exec_app.rb +44 -24
- data/lib/omf_common/key.rb +5 -0
- data/lib/omf_common/measure.rb +5 -0
- data/lib/omf_common/message.rb +5 -0
- data/lib/omf_common/message/json/json_message.rb +13 -5
- data/lib/omf_common/message/xml/message.rb +19 -4
- data/lib/omf_common/message/xml/relaxng_schema.rb +5 -0
- data/lib/omf_common/message/xml/topic_message.rb +5 -0
- data/lib/omf_common/version.rb +6 -1
- data/omf_common.gemspec +3 -2
- data/test/fixture/1st_level.pem +20 -0
- data/test/fixture/2nd_level.pem +19 -0
- data/test/fixture/3rd_level.pem +19 -0
- data/test/fixture/pubsub.rb +5 -0
- data/test/fixture/rc.pem +18 -0
- data/test/fixture/root.pem +17 -0
- data/test/omf_common/auth/certificate_spec.rb +27 -0
- data/test/omf_common/auth/certificate_store_spec.rb +58 -0
- data/test/omf_common/auth/ssh_pub_key_convert_spec.rb +5 -0
- data/test/omf_common/comm/topic_spec.rb +7 -1
- data/test/omf_common/comm/xmpp/communicator_spec.rb +5 -0
- data/test/omf_common/comm/xmpp/topic_spec.rb +5 -0
- data/test/omf_common/comm_spec.rb +5 -0
- data/test/omf_common/command_spec.rb +5 -0
- data/test/omf_common/core_ext/string_spec.rb +5 -0
- data/test/omf_common/message/xml/message_spec.rb +5 -0
- data/test/omf_common/message_spec.rb +8 -3
- data/test/test_helper.rb +5 -0
- metadata +48 -11
data/bin/file_broadcaster.rb
CHANGED
@@ -1,3 +1,8 @@
|
|
1
|
+
# Copyright (c) 2012 National ICT Australia Limited (NICTA).
|
2
|
+
# This software may be used and distributed solely under the terms of the MIT license (License).
|
3
|
+
# You should find a copy of the License in LICENSE.TXT or at http://opensource.org/licenses/MIT.
|
4
|
+
# By downloading or using this software you accept the terms and the liability disclaimer in the License.
|
5
|
+
|
1
6
|
#
|
2
7
|
DESCR = %{
|
3
8
|
Broadcast a file to a topic group
|
data/bin/file_receiver.rb
CHANGED
@@ -1,3 +1,8 @@
|
|
1
|
+
# Copyright (c) 2012 National ICT Australia Limited (NICTA).
|
2
|
+
# This software may be used and distributed solely under the terms of the MIT license (License).
|
3
|
+
# You should find a copy of the License in LICENSE.TXT or at http://opensource.org/licenses/MIT.
|
4
|
+
# By downloading or using this software you accept the terms and the liability disclaimer in the License.
|
5
|
+
|
1
6
|
#
|
2
7
|
DESCR = %{
|
3
8
|
Receive a file sent to a topic group
|
data/bin/omf_keygen
CHANGED
@@ -4,7 +4,7 @@ require 'omf_common'
|
|
4
4
|
|
5
5
|
OmfCommon::Auth::CertificateStore.init
|
6
6
|
|
7
|
-
root = OmfCommon::Auth::Certificate.create(nil, 'omf_ca', 'ca', 'omf')
|
7
|
+
root = OmfCommon::Auth::Certificate.create(nil, 'omf_ca', 'ca', 'omf', nil, Time.now, 3600 * 365 * 10)
|
8
8
|
|
9
9
|
ec_key = OpenSSL::PKey::RSA.new(2048)
|
10
10
|
rc_key = OpenSSL::PKey::RSA.new(2048)
|
@@ -12,8 +12,8 @@ rc_key = OpenSSL::PKey::RSA.new(2048)
|
|
12
12
|
ec_pub = ec_key.public_key
|
13
13
|
rc_pub = rc_key.public_key
|
14
14
|
|
15
|
-
ec = root.create_for('
|
16
|
-
rc = root.create_for('
|
15
|
+
ec = root.create_for('my_ec', 'ec', 'controller', 'omf', 3600 * 365 * 10, ec_pub)
|
16
|
+
rc = root.create_for('my_rc', 'rc', 'controller', 'omf', 3600 * 365 * 10, rc_pub)
|
17
17
|
|
18
18
|
%w(root ec_key rc_key ec_pub rc_pub ec rc).each do |n|
|
19
19
|
File.write("#{n}.pem", eval(n).to_pem)
|
@@ -0,0 +1,114 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
BIN_DIR = File.dirname(File.symlink?(__FILE__) ? File.readlink(__FILE__) : __FILE__)
|
3
|
+
TOP_DIR = File.join(BIN_DIR, '..')
|
4
|
+
$: << File.join(TOP_DIR, 'lib')
|
5
|
+
|
6
|
+
DESCR = %{
|
7
|
+
Send a configure message to a specific resource (topic) and print out any replies.
|
8
|
+
|
9
|
+
Any additional command line arguments are interpreted as property:value and are
|
10
|
+
sent with the create message.
|
11
|
+
}
|
12
|
+
|
13
|
+
require 'omf_common'
|
14
|
+
|
15
|
+
OP_MODE = :development
|
16
|
+
$debug = false
|
17
|
+
$timeout = 10
|
18
|
+
|
19
|
+
|
20
|
+
opts = {
|
21
|
+
communication: {
|
22
|
+
#url: 'xmpp://srv.mytestbed.net'
|
23
|
+
},
|
24
|
+
eventloop: { type: :em},
|
25
|
+
logging: {
|
26
|
+
level: 'info'
|
27
|
+
}
|
28
|
+
}
|
29
|
+
|
30
|
+
resource_url = nil
|
31
|
+
resource_properties = {}
|
32
|
+
|
33
|
+
op = OptionParser.new
|
34
|
+
op.banner = "Usage: #{op.program_name} [options] property1:value1 property2:value2 ...\n#{DESCR}\n"
|
35
|
+
op.on '-r', '--resource-url URL', "URL of resource (e.g. xmpp://my.server.com/topic1)" do |url|
|
36
|
+
resource_url = url
|
37
|
+
end
|
38
|
+
op.on '-y', '--yaml YAML_FILE', "Read type and property from YAML file" do |yfile|
|
39
|
+
require 'yaml'
|
40
|
+
y = YAML.load_file(yfile)
|
41
|
+
unless o = y['configure']
|
42
|
+
puts "Expected top level 'configure', but found '#{y.keys.inspect}'"
|
43
|
+
abort
|
44
|
+
end
|
45
|
+
resource_properties = o['properties']
|
46
|
+
end
|
47
|
+
op.on '-d', '--debug', "Set log level to DEBUG" do
|
48
|
+
opts[:logging][:level] = 'debug'
|
49
|
+
$debug = true
|
50
|
+
end
|
51
|
+
op.on_tail('-h', "--help", "Show this message") { $stderr.puts op; exit }
|
52
|
+
rest = op.parse(ARGV) || []
|
53
|
+
|
54
|
+
unless resource_url || resource_type
|
55
|
+
$stderr.puts 'Missing --resource-url --type or'
|
56
|
+
$stderr.puts op
|
57
|
+
exit(-1)
|
58
|
+
end
|
59
|
+
|
60
|
+
r = resource_url.split('/')
|
61
|
+
resource = r.pop
|
62
|
+
opts[:communication][:url] = r.join('/')
|
63
|
+
|
64
|
+
key = nil
|
65
|
+
def err_exit
|
66
|
+
$stderr.puts("Options need to be of the 'key: value' type")
|
67
|
+
exit(-1)
|
68
|
+
end
|
69
|
+
rest.each do |s|
|
70
|
+
sa = s.split(':')
|
71
|
+
if sa.length == 2
|
72
|
+
err_exit if key
|
73
|
+
resource_properties[sa[0]] = sa[1]
|
74
|
+
else
|
75
|
+
if s.end_with?(':')
|
76
|
+
err_exit if key
|
77
|
+
key = s[0]
|
78
|
+
else
|
79
|
+
err_exit unless key
|
80
|
+
resource_properties[key] = s[0]
|
81
|
+
key = nil
|
82
|
+
end
|
83
|
+
end
|
84
|
+
end
|
85
|
+
err_exit if key
|
86
|
+
|
87
|
+
def print_prop(name, value, level = 0)
|
88
|
+
print " #{' ' * level}#{name}:"
|
89
|
+
if value.is_a? Hash
|
90
|
+
puts ''
|
91
|
+
value.each {|k, v| print_prop(k, v, level + 1)}
|
92
|
+
else
|
93
|
+
puts " #{value}"
|
94
|
+
end
|
95
|
+
end
|
96
|
+
|
97
|
+
OmfCommon.init(OP_MODE, opts) do |el|
|
98
|
+
OmfCommon.comm.on_connected do |comm|
|
99
|
+
comm.subscribe(resource) do |topic|
|
100
|
+
topic.configure(resource_properties) do |msg|
|
101
|
+
if (src_topic = msg.src.id) == topic.id
|
102
|
+
puts "#{topic.id}"
|
103
|
+
else
|
104
|
+
puts "#{src_topic} via #{topic.id}"
|
105
|
+
end
|
106
|
+
msg.each_property do |name, value|
|
107
|
+
print_prop(name, value)
|
108
|
+
end
|
109
|
+
puts "-----------------"
|
110
|
+
end
|
111
|
+
el.after($timeout) { el.stop } if $timeout > 0
|
112
|
+
end
|
113
|
+
end
|
114
|
+
end
|
data/bin/omf_send_request
CHANGED
@@ -13,6 +13,7 @@ to those, otherwise all properties are requested.
|
|
13
13
|
require 'omf_common'
|
14
14
|
|
15
15
|
OP_MODE = :development
|
16
|
+
$timeout = 10
|
16
17
|
|
17
18
|
opts = {
|
18
19
|
communication: {
|
@@ -47,17 +48,31 @@ r = resource_url.split('/')
|
|
47
48
|
resource = r.pop
|
48
49
|
opts[:communication][:url] = r.join('/')
|
49
50
|
|
51
|
+
def print_prop(name, value, level = 0)
|
52
|
+
print " #{' ' * level}#{name}:"
|
53
|
+
if value.is_a? Hash
|
54
|
+
puts ''
|
55
|
+
value.each {|k, v| print_prop(k, v, level + 1)}
|
56
|
+
else
|
57
|
+
puts " #{value}"
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
50
61
|
OmfCommon.init(OP_MODE, opts) do |el|
|
51
62
|
OmfCommon.comm.on_connected do |comm|
|
52
63
|
comm.subscribe(resource) do |topic|
|
53
64
|
topic.request(req_properties) do |msg|
|
54
|
-
|
55
|
-
|
65
|
+
if (src_topic = msg.src.id) == topic.id
|
66
|
+
puts "#{topic.id}"
|
67
|
+
else
|
68
|
+
puts "#{src_topic} via #{topic.id}"
|
69
|
+
end
|
56
70
|
msg.each_property do |name, value|
|
57
|
-
|
71
|
+
print_prop(name, value)
|
58
72
|
end
|
59
|
-
puts "
|
73
|
+
puts "-----------------"
|
60
74
|
end
|
75
|
+
el.after($timeout) { el.stop } if $timeout > 0
|
61
76
|
end
|
62
77
|
end
|
63
78
|
end
|
data/example/engine_alt.rb
CHANGED
@@ -1,15 +1,20 @@
|
|
1
|
+
# Copyright (c) 2012 National ICT Australia Limited (NICTA).
|
2
|
+
# This software may be used and distributed solely under the terms of the MIT license (License).
|
3
|
+
# You should find a copy of the License in LICENSE.TXT or at http://opensource.org/licenses/MIT.
|
4
|
+
# By downloading or using this software you accept the terms and the liability disclaimer in the License.
|
5
|
+
|
1
6
|
# OMF_VERSIONS = 6.0
|
2
7
|
require 'omf_common'
|
3
8
|
require 'omf_common/auth/certificate'
|
4
9
|
|
5
|
-
root_cert = OmfCommon::Auth::Certificate.create('sa', 'authority')
|
10
|
+
#root_cert = OmfCommon::Auth::Certificate.create(nil, 'sa', 'authority')
|
6
11
|
opts = {
|
7
12
|
communication: {
|
8
13
|
auth: {
|
9
14
|
#store: 'amqp://localhost',
|
10
|
-
certs: [
|
11
|
-
root_cert.to_pem_compact
|
12
|
-
]
|
15
|
+
# certs: [
|
16
|
+
# root_cert.to_pem_compact
|
17
|
+
# ]
|
13
18
|
}
|
14
19
|
}
|
15
20
|
}
|
@@ -17,7 +22,7 @@ opts = {
|
|
17
22
|
|
18
23
|
OmfCommon.init(:local, opts)
|
19
24
|
# Create a certificate for this controller
|
20
|
-
root_cert.create_for(:controller, :controller, OmfCommon.comm.local_address())
|
25
|
+
#root_cert.create_for(:controller, :controller, OmfCommon.comm.local_address())
|
21
26
|
|
22
27
|
|
23
28
|
def create_engine(garage)
|
@@ -111,8 +116,9 @@ OmfCommon.eventloop.run do |el|
|
|
111
116
|
|
112
117
|
# Create garage proxy
|
113
118
|
load File.join(File.dirname(__FILE__), '..', '..', 'omf_rc', 'example', 'garage_controller.rb')
|
114
|
-
garage_cert = root_cert.create_for(:garage1, :garage)
|
115
|
-
garage_inst = OmfRc::ResourceFactory.create(:garage, uid: :garage_1, certificate: garage_cert)
|
119
|
+
#garage_cert = root_cert.create_for(:garage1, :garage)
|
120
|
+
#garage_inst = OmfRc::ResourceFactory.create(:garage, uid: :garage_1, certificate: garage_cert)
|
121
|
+
garage_inst = OmfRc::ResourceFactory.create(:garage, uid: :garage_1)
|
116
122
|
|
117
123
|
# Get handle on existing entity
|
118
124
|
comm.subscribe('garage_1') do |garage|
|
@@ -0,0 +1,69 @@
|
|
1
|
+
# Copyright (c) 2012 National ICT Australia Limited (NICTA).
|
2
|
+
# This software may be used and distributed solely under the terms of the MIT license (License).
|
3
|
+
# You should find a copy of the License in LICENSE.TXT or at http://opensource.org/licenses/MIT.
|
4
|
+
# By downloading or using this software you accept the terms and the liability disclaimer in the License.
|
5
|
+
|
6
|
+
require 'omf_oml/table'
|
7
|
+
|
8
|
+
class GarageMonitor < OMF::Common::LObject
|
9
|
+
OP_MODE = :development
|
10
|
+
|
11
|
+
def initialize(opts)
|
12
|
+
@observed_topics = {}
|
13
|
+
|
14
|
+
create_event_table
|
15
|
+
Thread.new do
|
16
|
+
begin
|
17
|
+
sleep 3
|
18
|
+
OmfCommon.init(OP_MODE, opts) do |el|
|
19
|
+
OmfCommon.comm.on_connected do |comm|
|
20
|
+
observe('garage1', comm)
|
21
|
+
end
|
22
|
+
end
|
23
|
+
rescue Exception => ex
|
24
|
+
puts "ERROR: #{ex}"
|
25
|
+
puts "\t#{ex.backtrace.join("\n\t")}"
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
|
30
|
+
end
|
31
|
+
|
32
|
+
def observe(tname, comm)
|
33
|
+
return if (tname.nil? || @observed_topics.key?(tname))
|
34
|
+
|
35
|
+
info "Observing '#{tname}'"
|
36
|
+
@observed_topics[tname] = true
|
37
|
+
comm.subscribe(tname) do |topic|
|
38
|
+
topic.on_message do |msg|
|
39
|
+
ts = Time.now.strftime('%H:%M:%S')
|
40
|
+
src = topic.id
|
41
|
+
type = "#{msg.type}(#{msg.itype})"
|
42
|
+
msg.each_property do |name, value|
|
43
|
+
@evt_table.add_row [ts, src, type, name, value]
|
44
|
+
end
|
45
|
+
if msg.itype == 'released' && src != :garage1
|
46
|
+
@engine_table.add_row [ts, src, -1, -1]
|
47
|
+
end
|
48
|
+
|
49
|
+
if (msg[:throttle] && msg[:rpm])
|
50
|
+
puts "RPM: #{msg[:rpm]}::#{msg[:rpm].class}"
|
51
|
+
@engine_table.add_row [ts, src, msg[:throttle], msg[:rpm]]
|
52
|
+
end
|
53
|
+
observe(msg[:res_id], comm)
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
|
59
|
+
|
60
|
+
def create_event_table(fake_events = true)
|
61
|
+
evt_schema = [:ts, :address, :type, :name, :value]
|
62
|
+
@evt_table = OMF::OML::OmlTable.new 'events', evt_schema, :max_size => 500
|
63
|
+
OMF::Web.register_datasource @evt_table
|
64
|
+
|
65
|
+
engine_schema = [:ts, :source, [:throttle, :int], [:rpm, :int]]
|
66
|
+
@engine_table = OMF::OML::OmlTable.new 'engine', engine_schema, :max_size => 20
|
67
|
+
OMF::Web.register_datasource @engine_table.indexed_by(:source), name: 'engine'
|
68
|
+
end
|
69
|
+
end
|
@@ -0,0 +1,52 @@
|
|
1
|
+
# Copyright (c) 2012 National ICT Australia Limited (NICTA).
|
2
|
+
# This software may be used and distributed solely under the terms of the MIT license (License).
|
3
|
+
# You should find a copy of the License in LICENSE.TXT or at http://opensource.org/licenses/MIT.
|
4
|
+
# By downloading or using this software you accept the terms and the liability disclaimer in the License.
|
5
|
+
|
6
|
+
|
7
|
+
require 'omf_common'
|
8
|
+
require 'omf_common/lobject'
|
9
|
+
# require 'yaml'
|
10
|
+
# require 'log4r'
|
11
|
+
|
12
|
+
OMF::Common::Loggable.init_log 'garage_monitor', searchPath: File.dirname(__FILE__)
|
13
|
+
|
14
|
+
|
15
|
+
omf_opts = {
|
16
|
+
communication: {
|
17
|
+
url: 'amqp://0.0.0.0',
|
18
|
+
auth: {}
|
19
|
+
|
20
|
+
},
|
21
|
+
eventloop: { type: :em},
|
22
|
+
logging: {
|
23
|
+
level: 'info'
|
24
|
+
}
|
25
|
+
}
|
26
|
+
|
27
|
+
# Configure the web server
|
28
|
+
#
|
29
|
+
opts = {
|
30
|
+
app_name: 'garage_monitor',
|
31
|
+
page_title: 'Garage',
|
32
|
+
layout: "#{File.dirname(__FILE__)}/layout.yaml",
|
33
|
+
footer_right: 'git:mytestbed/omf',
|
34
|
+
static_dirs_pre: ["#{File.dirname(__FILE__)}/htdocs"],
|
35
|
+
handlers: {
|
36
|
+
# delay connecting to databases to AFTER we may run as daemon
|
37
|
+
pre_rackup: lambda do
|
38
|
+
load("#{File.dirname(__FILE__)}/garage_monitor.rb")
|
39
|
+
GarageMonitor.new(omf_opts)
|
40
|
+
end,
|
41
|
+
pre_parse: lambda do |p|
|
42
|
+
p.separator ""
|
43
|
+
p.separator "GARAGE options:"
|
44
|
+
p.on '--comms-url URL', "URL to communication layer [#{omf_opts[:communication][:url]}]" do |url|
|
45
|
+
omf_opts[:communication][:url] = url
|
46
|
+
end
|
47
|
+
p.separator ""
|
48
|
+
end
|
49
|
+
}
|
50
|
+
}
|
51
|
+
require 'omf_web'
|
52
|
+
OMF::Web.start(opts)
|
Binary file
|
@@ -0,0 +1,44 @@
|
|
1
|
+
|
2
|
+
|
3
|
+
#
|
4
|
+
#
|
5
|
+
|
6
|
+
widget:
|
7
|
+
id: overview
|
8
|
+
name: Overview
|
9
|
+
top_level: true
|
10
|
+
priority: 900
|
11
|
+
type: layout/two_columns/50_50
|
12
|
+
chrome: false # don't show title
|
13
|
+
widgets:
|
14
|
+
left:
|
15
|
+
- type: moustache
|
16
|
+
text: '<img src="/resource/image/garage.png">'
|
17
|
+
context:
|
18
|
+
|
19
|
+
- type: data/gauge
|
20
|
+
title: Engine
|
21
|
+
data_source:
|
22
|
+
name: engine
|
23
|
+
dynamic: 1 # check once a second
|
24
|
+
mapping:
|
25
|
+
id: source
|
26
|
+
value: rpm
|
27
|
+
right:
|
28
|
+
- type: data/table2
|
29
|
+
title: Events
|
30
|
+
data_source:
|
31
|
+
name: events
|
32
|
+
dynamic: 1 # check once a second
|
33
|
+
# topts:
|
34
|
+
# enableCellNavigation: true
|
35
|
+
margin:
|
36
|
+
left: 5
|
37
|
+
|
38
|
+
- type: data/table2
|
39
|
+
title: Engine
|
40
|
+
data_source:
|
41
|
+
name: engine
|
42
|
+
dynamic: 1 # check once a second
|
43
|
+
margin:
|
44
|
+
left: 5
|
data/example/vm_alt.rb
CHANGED
@@ -1,3 +1,8 @@
|
|
1
|
+
# Copyright (c) 2012 National ICT Australia Limited (NICTA).
|
2
|
+
# This software may be used and distributed solely under the terms of the MIT license (License).
|
3
|
+
# You should find a copy of the License in LICENSE.TXT or at http://opensource.org/licenses/MIT.
|
4
|
+
# By downloading or using this software you accept the terms and the liability disclaimer in the License.
|
5
|
+
|
1
6
|
|
2
7
|
# Communication setup
|
3
8
|
Comm.init(:xmpp)
|
data/lib/omf_common.rb
CHANGED
@@ -1,3 +1,8 @@
|
|
1
|
+
# Copyright (c) 2012 National ICT Australia Limited (NICTA).
|
2
|
+
# This software may be used and distributed solely under the terms of the MIT license (License).
|
3
|
+
# You should find a copy of the License in LICENSE.TXT or at http://opensource.org/licenses/MIT.
|
4
|
+
# By downloading or using this software you accept the terms and the liability disclaimer in the License.
|
5
|
+
|
1
6
|
require 'active_support/core_ext'
|
2
7
|
|
3
8
|
require 'omf_common/default_logging'
|
@@ -12,6 +17,10 @@ require 'omf_common/eventloop'
|
|
12
17
|
|
13
18
|
include OmfCommon::DefaultLogging
|
14
19
|
|
20
|
+
# Set the default encoding to UTF8
|
21
|
+
Encoding.default_external = Encoding::UTF_8
|
22
|
+
Encoding.default_internal = Encoding::UTF_8
|
23
|
+
|
15
24
|
module OmfCommon
|
16
25
|
DEFAULTS = {
|
17
26
|
development: {
|
@@ -19,7 +28,7 @@ module OmfCommon
|
|
19
28
|
type: 'em'
|
20
29
|
},
|
21
30
|
logging: {
|
22
|
-
level: {
|
31
|
+
level: {
|
23
32
|
default: 'debug'
|
24
33
|
},
|
25
34
|
appenders: {
|
@@ -36,7 +45,7 @@ module OmfCommon
|
|
36
45
|
type: :em
|
37
46
|
},
|
38
47
|
logging: {
|
39
|
-
level: {
|
48
|
+
level: {
|
40
49
|
default: 'info'
|
41
50
|
},
|
42
51
|
appenders: {
|
@@ -62,7 +71,7 @@ module OmfCommon
|
|
62
71
|
type: :em
|
63
72
|
},
|
64
73
|
logging: {
|
65
|
-
level: {
|
74
|
+
level: {
|
66
75
|
default: 'info'
|
67
76
|
},
|
68
77
|
appenders: {
|
@@ -82,7 +91,7 @@ module OmfCommon
|
|
82
91
|
},
|
83
92
|
eventloop: { type: :local},
|
84
93
|
logging: {
|
85
|
-
level: {
|
94
|
+
level: {
|
86
95
|
default: 'debug'
|
87
96
|
},
|
88
97
|
appenders: {
|
@@ -106,7 +115,7 @@ module OmfCommon
|
|
106
115
|
type: :em
|
107
116
|
},
|
108
117
|
logging: {
|
109
|
-
level: {
|
118
|
+
level: {
|
110
119
|
default: 'debug'
|
111
120
|
},
|
112
121
|
appenders: {
|
@@ -188,9 +197,9 @@ module OmfCommon
|
|
188
197
|
# :remove_root ROOT_NAME: Remove the root node. Throw exception if not ROOT_NAME
|
189
198
|
# :wait_for_readable SECS: Wait until the yaml file becomes readable. Check every SECS
|
190
199
|
# :erb_process flag: Run the content of the loaded file through ERB first before YAML parsing
|
191
|
-
# :erb_safe_level level: If safe_level is set to a non-nil value, ERB code will be run in a
|
200
|
+
# :erb_safe_level level: If safe_level is set to a non-nil value, ERB code will be run in a
|
192
201
|
# separate thread with $SAFE set to the provided level.
|
193
|
-
# :erb_binding binding: Optional binding given to ERB#result
|
202
|
+
# :erb_binding binding: Optional binding given to ERB#result
|
194
203
|
#
|
195
204
|
def self.load_yaml(file_name, opts = {})
|
196
205
|
if path_opt = opts[:path]
|
@@ -262,7 +271,7 @@ module OmfCommon
|
|
262
271
|
if name.to_s == 'default'
|
263
272
|
logger.level = lvl.to_sym
|
264
273
|
else
|
265
|
-
Logging.logger[name.to_s].level = lvl.to_sym
|
274
|
+
Logging.logger[name.to_s].level = lvl.to_sym
|
266
275
|
end
|
267
276
|
end
|
268
277
|
else
|