omf_common 6.1.3 → 6.1.4.pre.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/Gemfile CHANGED
@@ -6,3 +6,7 @@ gemspec
6
6
  group :test do
7
7
  gem 'rake'
8
8
  end
9
+
10
+ group :xmpp do
11
+ gem 'blather'
12
+ end
@@ -3,8 +3,21 @@
3
3
  # You should find a copy of the License in LICENSE.TXT or at http://opensource.org/licenses/MIT.
4
4
  # By downloading or using this software you accept the terms and the liability disclaimer in the License.
5
5
 
6
- require 'blather'
7
- require 'blather/client/dsl'
6
+ begin
7
+ require 'blather'
8
+ require 'blather/client/dsl'
9
+ rescue LoadError => e
10
+ error <<-ERR
11
+ #{e.message}
12
+
13
+ # Looks like you are trying to use XMPP as your communication protocol but you have not installed XMPP library 'blather'
14
+ #
15
+ # To correct this, install blather. E.g.
16
+ #
17
+ # gem install blather
18
+ ERR
19
+ exit(1)
20
+ end
8
21
 
9
22
  require 'omf_common/comm/xmpp/xmpp_mp'
10
23
  require 'omf_common/comm/xmpp/topic'
data/lib/omf_common.rb CHANGED
@@ -17,6 +17,8 @@ require 'omf_common/auth'
17
17
  require 'omf_common/core_ext/string'
18
18
  require 'omf_common/eventloop'
19
19
 
20
+ require 'oml4r/logging/oml4r_appender'
21
+
20
22
  include OmfCommon::DefaultLogging
21
23
 
22
24
  # Set the default encoding to UTF8
@@ -132,15 +134,54 @@ module OmfCommon
132
134
  }
133
135
  }
134
136
 
137
+ # Initialise the OMF runtime.
138
+ #
139
+ # The options here can be customised via EC or RC's configuration files.
140
+ #
141
+ # Given the following example EC configuration file (YAML format):
142
+ #
143
+ # environment: development
144
+ # communication:
145
+ # url: amqp://localhost
146
+ #
147
+ # OMF runtime will be configured as:
148
+ #
149
+ # OmfCommon.init(:development, { communication: { url: "amqp://localhost" }})
150
+ #
135
151
  #
136
- # Initialize the OMF runtime.
137
- # Options are:
138
- # :communication
139
- # :type
140
- # ... specific opts
141
- # :eventloop
142
- # :type {:em|:local...}
152
+ # @example Use AMQP for communication in :development mode
143
153
  #
154
+ # OmfCommon.init(:development, { communication: { url: "amqp://localhost" }})
155
+ #
156
+ # @example Change Logging configuration
157
+ #
158
+ # options = {
159
+ # communication: { url: "amqp://localhost" },
160
+ # logging: {
161
+ # level: { default: 'debug' },
162
+ # appenders: {
163
+ # stdout: {
164
+ # level: :info,
165
+ # date_pattern: '%H:%M:%S',
166
+ # pattern: '%d %5l %c{2}: %m\n'
167
+ # },
168
+ # rolling_file: {
169
+ # level: :debug,
170
+ # log_dir: '/var/tmp',
171
+ # size: 1024*1024*50, # max 50mb of each log file
172
+ # keep: 5, # keep a 5 logs in total
173
+ # date_pattern: '%F %T %z',
174
+ # pattern: '[%d] %-5l %c: %m\n'
175
+ # },
176
+ # }
177
+ # }
178
+ # }
179
+ #
180
+ # OmfCommon.init(:development, options)
181
+ #
182
+ # @see _init_logging
183
+ #
184
+ # @param [Symbol] op_mode
144
185
  # @param [Hash] opts
145
186
  #
146
187
  def self.init(op_mode, opts = {}, &block)
@@ -245,34 +286,52 @@ module OmfCommon
245
286
  yh
246
287
  end
247
288
 
248
- # DO NOT CALL DIRECTLY
289
+ # DO NOT CALL THIS METHOD DIRECTLY
290
+ #
291
+ # By providing logging section via init method, you could custom how logging messages could be written.
249
292
  #
293
+ # @example Change default logging level to :default, but :info under OmfEc namespace
294
+ #
295
+ # {
296
+ # logging: {
297
+ # level: { default: 'debug', 'OmfEc' => 'info' }
298
+ # }
299
+ # }
300
+ #
301
+ # @example Write logging message to STDOUT, OML, and ROLLING_FILE
302
+ # {
303
+ # logging: {
304
+ # level: { default: 'debug' }, # root logger set to level :debug
305
+ # appenders: {
306
+ # stdout: {
307
+ # level: :info,
308
+ # date_pattern: '%H:%M:%S', # show hours, mintues, seconds
309
+ # pattern: '%d %5l %c{2}: %m\n' # show date time, logging level, namespace/class
310
+ # },
311
+ # rolling_file: {
312
+ # level: :debug,
313
+ # log_dir: '/var/tmp', # files go to /var/tmp
314
+ # log_file: 'bob', # name of file
315
+ # size: 1024*1024*50, # max 50mb of each log file
316
+ # keep: 5, # keep a 5 logs in total
317
+ # date_pattern: '%F %T %z', # shows date, time, timezone
318
+ # pattern: '[%d] %-5l %c: %m\n'
319
+ # },
320
+ # oml4r: {
321
+ # appName: 'bob', # OML appName
322
+ # domain: 'bob_2345', # OML domain (database name)
323
+ # collect: 'tcp:localhost:3003' # OML server
324
+ # }
325
+ # }
326
+ # }
327
+ # }
328
+ #
329
+ # @note OmfCommon now ONLY provides support for STDOUT, OML, FILE, and ROLLING_FILE.
330
+ #
331
+ # @param [Hash] opts
250
332
  def self._init_logging(opts = {})
251
333
  logger = Logging.logger.root
252
- if appenders = opts[:appenders]
253
- logger.clear_appenders
254
- appenders.each do |type, topts|
255
- case type.to_sym
256
- when :stdout
257
- $stdout.sync = true
258
- logger.add_appenders(
259
- Logging.appenders.stdout('custom',
260
- :layout => Logging.layouts.pattern(topts)
261
- ))
262
334
 
263
- when :file
264
- dir_name = topts.delete(:log_dir) || DEF_LOG_DIR
265
- file_name = topts.delete(:log_file) || "#{File.basename($0, File.extname($0))}.log"
266
- path = File.join(dir_name, file_name)
267
- logger.add_appenders(
268
- Logging.appenders.file(path,
269
- :layout => Logging.layouts.pattern(topts)
270
- ))
271
- else
272
- raise "Unknown logging appender type '#{type}'"
273
- end
274
- end
275
- end
276
335
  if level = opts[:level]
277
336
  if level.is_a? Hash
278
337
  # package level settings
@@ -287,6 +346,39 @@ module OmfCommon
287
346
  logger.level = level.to_sym
288
347
  end
289
348
  end
349
+
350
+ if appenders = opts[:appenders]
351
+ logger.clear_appenders
352
+ appenders.each do |type, topts|
353
+ pattern_opts = {
354
+ pattern: topts.delete(:pattern),
355
+ date_pattern: topts.delete(:date_pattern),
356
+ color_scheme: topts.delete(:color_scheme),
357
+ date_method: topts.delete(:date_method)
358
+ }
359
+
360
+ if pattern_opts[:pattern]
361
+ appender_opts = topts.merge(layout: Logging.layouts.pattern(pattern_opts))
362
+ else
363
+ appender_opts = topts
364
+ end
365
+
366
+ case type.to_sym
367
+ when :stdout
368
+ $stdout.sync = true
369
+ logger.add_appenders(Logging.appenders.stdout('custom_stdout', appender_opts))
370
+ when :file, :rolling_file
371
+ dir_name = topts.delete(:log_dir) || DEF_LOG_DIR
372
+ file_name = topts.delete(:log_file) || "#{File.basename($0, File.extname($0))}.log"
373
+ path = File.join(dir_name, file_name)
374
+ logger.add_appenders(Logging.appenders.send(type, path, appender_opts))
375
+ when :oml4r
376
+ logger.add_appenders(Logging.appenders.oml4r('oml4r', appender_opts))
377
+ else
378
+ raise "Unknown logging appender type '#{type}'"
379
+ end
380
+ end
381
+ end
290
382
  end
291
383
 
292
384
  def self._rec_merge(this_hash, other_hash)
data/omf_common.gemspec CHANGED
@@ -28,7 +28,6 @@ Gem::Specification.new do |s|
28
28
  s.add_development_dependency "mocha"
29
29
 
30
30
  s.add_runtime_dependency "eventmachine"
31
- s.add_runtime_dependency "blather"
32
31
  s.add_runtime_dependency "logging"
33
32
  s.add_runtime_dependency "hashie"
34
33
  s.add_runtime_dependency "oml4r", "~> 2.10.1"
metadata CHANGED
@@ -1,18 +1,20 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: omf_common
3
3
  version: !ruby/object:Gem::Version
4
- version: 6.1.3
4
+ version: 6.1.4.pre.1
5
+ prerelease: 6
5
6
  platform: ruby
6
7
  authors:
7
8
  - NICTA
8
9
  autorequire:
9
10
  bindir: bin
10
11
  cert_chain: []
11
- date: 2014-07-02 00:00:00.000000000 Z
12
+ date: 2014-07-09 00:00:00.000000000 Z
12
13
  dependencies:
13
14
  - !ruby/object:Gem::Dependency
14
15
  name: minitest
15
16
  requirement: !ruby/object:Gem::Requirement
17
+ none: false
16
18
  requirements:
17
19
  - - ! '>='
18
20
  - !ruby/object:Gem::Version
@@ -20,6 +22,7 @@ dependencies:
20
22
  type: :development
21
23
  prerelease: false
22
24
  version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
23
26
  requirements:
24
27
  - - ! '>='
25
28
  - !ruby/object:Gem::Version
@@ -27,6 +30,7 @@ dependencies:
27
30
  - !ruby/object:Gem::Dependency
28
31
  name: evented-spec
29
32
  requirement: !ruby/object:Gem::Requirement
33
+ none: false
30
34
  requirements:
31
35
  - - ~>
32
36
  - !ruby/object:Gem::Version
@@ -34,6 +38,7 @@ dependencies:
34
38
  type: :development
35
39
  prerelease: false
36
40
  version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
37
42
  requirements:
38
43
  - - ~>
39
44
  - !ruby/object:Gem::Version
@@ -41,6 +46,7 @@ dependencies:
41
46
  - !ruby/object:Gem::Dependency
42
47
  name: simplecov
43
48
  requirement: !ruby/object:Gem::Requirement
49
+ none: false
44
50
  requirements:
45
51
  - - ! '>='
46
52
  - !ruby/object:Gem::Version
@@ -48,6 +54,7 @@ dependencies:
48
54
  type: :development
49
55
  prerelease: false
50
56
  version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
51
58
  requirements:
52
59
  - - ! '>='
53
60
  - !ruby/object:Gem::Version
@@ -55,6 +62,7 @@ dependencies:
55
62
  - !ruby/object:Gem::Dependency
56
63
  name: pry
57
64
  requirement: !ruby/object:Gem::Requirement
65
+ none: false
58
66
  requirements:
59
67
  - - ! '>='
60
68
  - !ruby/object:Gem::Version
@@ -62,6 +70,7 @@ dependencies:
62
70
  type: :development
63
71
  prerelease: false
64
72
  version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
65
74
  requirements:
66
75
  - - ! '>='
67
76
  - !ruby/object:Gem::Version
@@ -69,6 +78,7 @@ dependencies:
69
78
  - !ruby/object:Gem::Dependency
70
79
  name: mocha
71
80
  requirement: !ruby/object:Gem::Requirement
81
+ none: false
72
82
  requirements:
73
83
  - - ! '>='
74
84
  - !ruby/object:Gem::Version
@@ -76,6 +86,7 @@ dependencies:
76
86
  type: :development
77
87
  prerelease: false
78
88
  version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
79
90
  requirements:
80
91
  - - ! '>='
81
92
  - !ruby/object:Gem::Version
@@ -83,6 +94,7 @@ dependencies:
83
94
  - !ruby/object:Gem::Dependency
84
95
  name: eventmachine
85
96
  requirement: !ruby/object:Gem::Requirement
97
+ none: false
86
98
  requirements:
87
99
  - - ! '>='
88
100
  - !ruby/object:Gem::Version
@@ -90,20 +102,7 @@ dependencies:
90
102
  type: :runtime
91
103
  prerelease: false
92
104
  version_requirements: !ruby/object:Gem::Requirement
93
- requirements:
94
- - - ! '>='
95
- - !ruby/object:Gem::Version
96
- version: '0'
97
- - !ruby/object:Gem::Dependency
98
- name: blather
99
- requirement: !ruby/object:Gem::Requirement
100
- requirements:
101
- - - ! '>='
102
- - !ruby/object:Gem::Version
103
- version: '0'
104
- type: :runtime
105
- prerelease: false
106
- version_requirements: !ruby/object:Gem::Requirement
105
+ none: false
107
106
  requirements:
108
107
  - - ! '>='
109
108
  - !ruby/object:Gem::Version
@@ -111,6 +110,7 @@ dependencies:
111
110
  - !ruby/object:Gem::Dependency
112
111
  name: logging
113
112
  requirement: !ruby/object:Gem::Requirement
113
+ none: false
114
114
  requirements:
115
115
  - - ! '>='
116
116
  - !ruby/object:Gem::Version
@@ -118,6 +118,7 @@ dependencies:
118
118
  type: :runtime
119
119
  prerelease: false
120
120
  version_requirements: !ruby/object:Gem::Requirement
121
+ none: false
121
122
  requirements:
122
123
  - - ! '>='
123
124
  - !ruby/object:Gem::Version
@@ -125,6 +126,7 @@ dependencies:
125
126
  - !ruby/object:Gem::Dependency
126
127
  name: hashie
127
128
  requirement: !ruby/object:Gem::Requirement
129
+ none: false
128
130
  requirements:
129
131
  - - ! '>='
130
132
  - !ruby/object:Gem::Version
@@ -132,6 +134,7 @@ dependencies:
132
134
  type: :runtime
133
135
  prerelease: false
134
136
  version_requirements: !ruby/object:Gem::Requirement
137
+ none: false
135
138
  requirements:
136
139
  - - ! '>='
137
140
  - !ruby/object:Gem::Version
@@ -139,6 +142,7 @@ dependencies:
139
142
  - !ruby/object:Gem::Dependency
140
143
  name: oml4r
141
144
  requirement: !ruby/object:Gem::Requirement
145
+ none: false
142
146
  requirements:
143
147
  - - ~>
144
148
  - !ruby/object:Gem::Version
@@ -146,6 +150,7 @@ dependencies:
146
150
  type: :runtime
147
151
  prerelease: false
148
152
  version_requirements: !ruby/object:Gem::Requirement
153
+ none: false
149
154
  requirements:
150
155
  - - ~>
151
156
  - !ruby/object:Gem::Version
@@ -153,6 +158,7 @@ dependencies:
153
158
  - !ruby/object:Gem::Dependency
154
159
  name: json
155
160
  requirement: !ruby/object:Gem::Requirement
161
+ none: false
156
162
  requirements:
157
163
  - - ! '>='
158
164
  - !ruby/object:Gem::Version
@@ -160,6 +166,7 @@ dependencies:
160
166
  type: :runtime
161
167
  prerelease: false
162
168
  version_requirements: !ruby/object:Gem::Requirement
169
+ none: false
163
170
  requirements:
164
171
  - - ! '>='
165
172
  - !ruby/object:Gem::Version
@@ -167,6 +174,7 @@ dependencies:
167
174
  - !ruby/object:Gem::Dependency
168
175
  name: json-jwt
169
176
  requirement: !ruby/object:Gem::Requirement
177
+ none: false
170
178
  requirements:
171
179
  - - ! '>='
172
180
  - !ruby/object:Gem::Version
@@ -174,6 +182,7 @@ dependencies:
174
182
  type: :runtime
175
183
  prerelease: false
176
184
  version_requirements: !ruby/object:Gem::Requirement
185
+ none: false
177
186
  requirements:
178
187
  - - ! '>='
179
188
  - !ruby/object:Gem::Version
@@ -181,6 +190,7 @@ dependencies:
181
190
  - !ruby/object:Gem::Dependency
182
191
  name: amqp
183
192
  requirement: !ruby/object:Gem::Requirement
193
+ none: false
184
194
  requirements:
185
195
  - - ! '>='
186
196
  - !ruby/object:Gem::Version
@@ -188,6 +198,7 @@ dependencies:
188
198
  type: :runtime
189
199
  prerelease: false
190
200
  version_requirements: !ruby/object:Gem::Requirement
201
+ none: false
191
202
  requirements:
192
203
  - - ! '>='
193
204
  - !ruby/object:Gem::Version
@@ -195,6 +206,7 @@ dependencies:
195
206
  - !ruby/object:Gem::Dependency
196
207
  name: uuidtools
197
208
  requirement: !ruby/object:Gem::Requirement
209
+ none: false
198
210
  requirements:
199
211
  - - ! '>='
200
212
  - !ruby/object:Gem::Version
@@ -202,6 +214,7 @@ dependencies:
202
214
  type: :runtime
203
215
  prerelease: false
204
216
  version_requirements: !ruby/object:Gem::Requirement
217
+ none: false
205
218
  requirements:
206
219
  - - ! '>='
207
220
  - !ruby/object:Gem::Version
@@ -304,49 +317,26 @@ files:
304
317
  homepage: http://omf.mytestbed.net
305
318
  licenses:
306
319
  - MIT
307
- metadata: {}
308
320
  post_install_message:
309
321
  rdoc_options: []
310
322
  require_paths:
311
323
  - lib
312
324
  required_ruby_version: !ruby/object:Gem::Requirement
325
+ none: false
313
326
  requirements:
314
327
  - - ! '>='
315
328
  - !ruby/object:Gem::Version
316
329
  version: 1.9.3
317
330
  required_rubygems_version: !ruby/object:Gem::Requirement
331
+ none: false
318
332
  requirements:
319
- - - ! '>='
333
+ - - ! '>'
320
334
  - !ruby/object:Gem::Version
321
- version: '0'
335
+ version: 1.3.1
322
336
  requirements: []
323
337
  rubyforge_project: omf_common
324
- rubygems_version: 2.1.10
338
+ rubygems_version: 1.8.23
325
339
  signing_key:
326
- specification_version: 4
340
+ specification_version: 3
327
341
  summary: Common library of OMF
328
- test_files:
329
- - test/fixture/1st_level.pem
330
- - test/fixture/2nd_level.pem
331
- - test/fixture/alice-cert.pem
332
- - test/fixture/alice-key.pem
333
- - test/fixture/omf_test.cert.pem
334
- - test/fixture/omf_test.pem
335
- - test/fixture/omf_test.pub
336
- - test/fixture/omf_test.pub.pem
337
- - test/fixture/pubsub.rb
338
- - test/fixture/rc.pem
339
- - test/fixture/root.pem
340
- - test/omf_common/auth/certificate_spec.rb
341
- - test/omf_common/auth/certificate_store_spec.rb
342
- - test/omf_common/auth/ssh_pub_key_convert_spec.rb
343
- - test/omf_common/comm/amqp/communicator_spec.rb
344
- - test/omf_common/comm/topic_spec.rb
345
- - test/omf_common/comm/xmpp/communicator_spec.rb
346
- - test/omf_common/comm/xmpp/topic_spec.rb
347
- - test/omf_common/comm_spec.rb
348
- - test/omf_common/command_spec.rb
349
- - test/omf_common/core_ext/string_spec.rb
350
- - test/omf_common/message/xml/message_spec.rb
351
- - test/omf_common/message_spec.rb
352
- - test/test_helper.rb
342
+ test_files: []
checksums.yaml DELETED
@@ -1,15 +0,0 @@
1
- ---
2
- !binary "U0hBMQ==":
3
- metadata.gz: !binary |-
4
- ZDUxYzc4NjE0ZTNlMzQwZDI2YWY3YWZlZmJmMDg0YjljMWY2ZmE2Mg==
5
- data.tar.gz: !binary |-
6
- NWU2MTQ0NmZkM2RhOTllOTJiYTAxODg3MTdlNTEzY2JmM2E1YTg3ZA==
7
- SHA512:
8
- metadata.gz: !binary |-
9
- ZDMzNDVlODI4OWRmYTA3YWFkMzc0MTgzYzdiMzQxZDI3ZTliMTEwODZhMWI4
10
- YWNiNDMyMzAwOWEyYjY5NjczYmI5OWYzNjY2Mzg0MWNjYzcwYTg5OGFlODYx
11
- MDNmNmFmYzllMTMxODk4YzcyZjZmNGIxNjdmNjg5ZDIyMjAwY2M=
12
- data.tar.gz: !binary |-
13
- ODQ5ZGEzOWY5ODBlYTczMDAxMzI4ZjRiODZiNTk3MzUzZjEyMmI2OWY3Njdl
14
- ZTU4ZDMwZTliZTI3MTVjZmQ0YmY4NmFiNzA5MTc5YTE5MmRkZDc4ZWI4ZTVi
15
- ZGY2M2VlZGZhOTFlNjgyNjQyMTBlZDg1YmJhNzhmMTMyNjRkYTU=