omf_common 6.1.3 → 6.1.4.pre.1

Sign up to get free protection for your applications and to get access to all the features.
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=