omf_ec 6.1.2.pre.3 → 6.1.2.pre.4
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/bin/omf_ec +3 -1
- data/lib/omf_ec/dsl.rb +8 -7
- data/lib/omf_ec/experiment.rb +10 -0
- data/lib/omf_ec/runner.rb +8 -1
- data/omf_ec.gemspec +2 -3
- data/test/oedls/empty.oedl +0 -0
- data/test/omf_ec/runner_spec.rb +25 -0
- data/test/test_helper.rb +8 -17
- metadata +18 -32
data/bin/omf_ec
CHANGED
data/lib/omf_ec/dsl.rb
CHANGED
@@ -141,7 +141,7 @@ module OmfEc
|
|
141
141
|
# Take the same parameter as def_property
|
142
142
|
#
|
143
143
|
def ensure_property(name, default_value, description = nil, type = nil)
|
144
|
-
begin
|
144
|
+
begin
|
145
145
|
property[name]
|
146
146
|
rescue
|
147
147
|
def_property(name, default_value, description, type)
|
@@ -211,10 +211,10 @@ module OmfEc
|
|
211
211
|
end
|
212
212
|
end
|
213
213
|
|
214
|
-
# Load an additional OEDL script
|
214
|
+
# Load an additional OEDL script
|
215
215
|
#
|
216
|
-
# First try to load the script from the paths associated to this running
|
217
|
-
# Ruby instance. This would allow the loading of scripts shipped with
|
216
|
+
# First try to load the script from the paths associated to this running
|
217
|
+
# Ruby instance. This would allow the loading of scripts shipped with
|
218
218
|
# the EC gem. If that fails, then look for the script in the local file
|
219
219
|
# system or at the given web URL.
|
220
220
|
#
|
@@ -226,7 +226,7 @@ module OmfEc
|
|
226
226
|
#
|
227
227
|
def load_oedl(location, opts = {})
|
228
228
|
# Define the additional properties from opts
|
229
|
-
opts.each { |k,v| def_property(k, v,) }
|
229
|
+
opts.each { |k,v| def_property(k, v,) }
|
230
230
|
# Try to load OEDL Library as built-in then external
|
231
231
|
begin
|
232
232
|
require location
|
@@ -238,13 +238,14 @@ module OmfEc
|
|
238
238
|
file = Tempfile.new("oedl-#{Time.now.to_i}")
|
239
239
|
open(location) { |io| file.write(io.read) }
|
240
240
|
file.close
|
241
|
-
|
241
|
+
OmfEc.experiment.archive_oedl(file.path)
|
242
|
+
load(file.path)
|
242
243
|
file.unlink
|
243
244
|
info "Loaded external OEDL library '#{location}'"
|
244
245
|
rescue Exception => e
|
245
246
|
error "Fail loading external OEDL library '#{location}': #{e}"
|
246
247
|
end
|
247
|
-
rescue Exception => e
|
248
|
+
rescue Exception => e
|
248
249
|
error "Fail loading built-in OEDL library '#{location}': #{e}"
|
249
250
|
end
|
250
251
|
end
|
data/lib/omf_ec/experiment.rb
CHANGED
@@ -5,6 +5,7 @@
|
|
5
5
|
|
6
6
|
require 'hashie'
|
7
7
|
require 'singleton'
|
8
|
+
require 'zlib'
|
8
9
|
require 'monitor'
|
9
10
|
|
10
11
|
module OmfEc
|
@@ -187,6 +188,15 @@ module OmfEc
|
|
187
188
|
MetaData.inject(domain.to_s, key.to_s, value.to_s)
|
188
189
|
end
|
189
190
|
|
191
|
+
# Archive OEDL content to OML db
|
192
|
+
def archive_oedl(script_name)
|
193
|
+
log_metadata(
|
194
|
+
script_name,
|
195
|
+
Base64.encode64(Zlib::Deflate.deflate(File.read(script_name))),
|
196
|
+
"oedl_content"
|
197
|
+
)
|
198
|
+
end
|
199
|
+
|
190
200
|
# Purely for backward compatibility
|
191
201
|
class << self
|
192
202
|
# Disconnect communicator, try to delete any XMPP affiliations
|
data/lib/omf_ec/runner.rb
CHANGED
@@ -9,6 +9,8 @@ module OmfEc
|
|
9
9
|
class Runner
|
10
10
|
include Hashie
|
11
11
|
|
12
|
+
attr_reader :oedl_path
|
13
|
+
|
12
14
|
def initialize
|
13
15
|
@gem_version = OmfEc::VERSION
|
14
16
|
@oml_enabled = false
|
@@ -245,6 +247,7 @@ module OmfEc
|
|
245
247
|
OmfEc.experiment.log_metadata("ec_version", "#{OmfEc::VERSION}")
|
246
248
|
OmfEc.experiment.log_metadata("exp_path", @oedl_path)
|
247
249
|
OmfEc.experiment.log_metadata("ec_pid", "#{Process.pid}")
|
250
|
+
OmfEc.experiment.archive_oedl(@oedl_path)
|
248
251
|
|
249
252
|
begin
|
250
253
|
load @oedl_path
|
@@ -268,9 +271,13 @@ module OmfEc
|
|
268
271
|
end
|
269
272
|
end
|
270
273
|
|
271
|
-
def
|
274
|
+
def init
|
272
275
|
oml_init
|
273
276
|
setup_experiment
|
277
|
+
#load_experiment
|
278
|
+
end
|
279
|
+
|
280
|
+
def run
|
274
281
|
load_experiment
|
275
282
|
end
|
276
283
|
end
|
data/omf_ec.gemspec
CHANGED
@@ -22,13 +22,12 @@ Gem::Specification.new do |s|
|
|
22
22
|
s.require_paths = ["lib"]
|
23
23
|
|
24
24
|
# specify any dependencies here; for example:
|
25
|
-
s.add_development_dependency "minitest"
|
26
|
-
s.add_development_dependency "em-minitest-spec", "~> 1.1.1"
|
25
|
+
s.add_development_dependency "minitest"
|
27
26
|
s.add_development_dependency "simplecov"
|
28
27
|
s.add_development_dependency "pry"
|
29
28
|
s.add_development_dependency "mocha"
|
29
|
+
s.add_development_dependency "evented-spec"
|
30
30
|
|
31
31
|
s.add_runtime_dependency "omf_common", "= #{OmfCommon::VERSION}"
|
32
|
-
s.add_runtime_dependency "gli"
|
33
32
|
s.add_runtime_dependency "sequel"
|
34
33
|
end
|
File without changes
|
@@ -0,0 +1,25 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
require 'omf_ec/runner'
|
3
|
+
|
4
|
+
describe OmfEc::Runner do
|
5
|
+
before do
|
6
|
+
uninit
|
7
|
+
end
|
8
|
+
|
9
|
+
after do
|
10
|
+
uninit
|
11
|
+
end
|
12
|
+
it "must allow to accept a set of command line options" do
|
13
|
+
ARGV.clear
|
14
|
+
"-u amqp://localhost --slice empty --oml_uri tcp:localhost:3003 -e xxx -d --experiment e1 --show-graph exec #{File.dirname(__FILE__)}/../oedls/empty.oedl -- --prop_1 p1value".split(" ").each do |opt|
|
15
|
+
ARGV << opt
|
16
|
+
end
|
17
|
+
runner = OmfEc::Runner.new
|
18
|
+
runner.init
|
19
|
+
|
20
|
+
assert_equal 'e1', OmfEc.experiment.name
|
21
|
+
assert_equal "tcp:localhost:3003", OmfEc.experiment.oml_uri
|
22
|
+
assert_equal true, OmfEc.experiment.show_graph
|
23
|
+
assert_match /oedls\/empty.oedl/, runner.oedl_path
|
24
|
+
end
|
25
|
+
end
|
data/test/test_helper.rb
CHANGED
@@ -11,17 +11,17 @@ require 'minitest/autorun'
|
|
11
11
|
require 'minitest/pride'
|
12
12
|
require 'mocha/setup'
|
13
13
|
|
14
|
-
require '
|
14
|
+
require 'evented-spec'
|
15
15
|
|
16
|
-
|
17
|
-
FIXTURE_DIR = "#{File.dirname(__FILE__)}/fixture"
|
16
|
+
require 'omf_ec'
|
18
17
|
|
19
18
|
# Shut up all the loggers
|
20
19
|
Logging.logger.root.clear_appenders
|
21
20
|
|
22
|
-
|
23
|
-
|
24
|
-
|
21
|
+
def uninit
|
22
|
+
OmfEc::Experiment.reset
|
23
|
+
OmfEc::ExperimentProperty.reset
|
24
|
+
OmfCommon::Eventloop.reset
|
25
25
|
end
|
26
26
|
|
27
27
|
class OmfCommon::Eventloop
|
@@ -32,21 +32,12 @@ end
|
|
32
32
|
|
33
33
|
class OmfEc::Experiment
|
34
34
|
def self.reset
|
35
|
-
|
36
|
-
@groups = []
|
37
|
-
@events = []
|
38
|
-
@app_definitions = Hashie::Mash.new
|
39
|
-
@sub_groups = Hashie::Mash.new
|
40
|
-
@cmdline_properties = Hashie::Mash.new
|
41
|
-
end
|
35
|
+
Singleton.__init__(self)
|
42
36
|
end
|
43
37
|
end
|
44
38
|
|
45
39
|
class OmfEc::ExperimentProperty
|
46
40
|
def self.reset
|
47
|
-
|
48
|
-
@@creation_observers = []
|
41
|
+
Singleton.__init__(self)
|
49
42
|
end
|
50
43
|
end
|
51
|
-
|
52
|
-
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: omf_ec
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 6.1.2.pre.
|
4
|
+
version: 6.1.2.pre.4
|
5
5
|
prerelease: 6
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,42 +9,42 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2014-05-
|
12
|
+
date: 2014-05-15 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: minitest
|
16
16
|
requirement: !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
|
-
- -
|
19
|
+
- - ! '>='
|
20
20
|
- !ruby/object:Gem::Version
|
21
|
-
version: '
|
21
|
+
version: '0'
|
22
22
|
type: :development
|
23
23
|
prerelease: false
|
24
24
|
version_requirements: !ruby/object:Gem::Requirement
|
25
25
|
none: false
|
26
26
|
requirements:
|
27
|
-
- -
|
27
|
+
- - ! '>='
|
28
28
|
- !ruby/object:Gem::Version
|
29
|
-
version: '
|
29
|
+
version: '0'
|
30
30
|
- !ruby/object:Gem::Dependency
|
31
|
-
name:
|
31
|
+
name: simplecov
|
32
32
|
requirement: !ruby/object:Gem::Requirement
|
33
33
|
none: false
|
34
34
|
requirements:
|
35
|
-
- -
|
35
|
+
- - ! '>='
|
36
36
|
- !ruby/object:Gem::Version
|
37
|
-
version:
|
37
|
+
version: '0'
|
38
38
|
type: :development
|
39
39
|
prerelease: false
|
40
40
|
version_requirements: !ruby/object:Gem::Requirement
|
41
41
|
none: false
|
42
42
|
requirements:
|
43
|
-
- -
|
43
|
+
- - ! '>='
|
44
44
|
- !ruby/object:Gem::Version
|
45
|
-
version:
|
45
|
+
version: '0'
|
46
46
|
- !ruby/object:Gem::Dependency
|
47
|
-
name:
|
47
|
+
name: pry
|
48
48
|
requirement: !ruby/object:Gem::Requirement
|
49
49
|
none: false
|
50
50
|
requirements:
|
@@ -60,7 +60,7 @@ dependencies:
|
|
60
60
|
- !ruby/object:Gem::Version
|
61
61
|
version: '0'
|
62
62
|
- !ruby/object:Gem::Dependency
|
63
|
-
name:
|
63
|
+
name: mocha
|
64
64
|
requirement: !ruby/object:Gem::Requirement
|
65
65
|
none: false
|
66
66
|
requirements:
|
@@ -76,7 +76,7 @@ dependencies:
|
|
76
76
|
- !ruby/object:Gem::Version
|
77
77
|
version: '0'
|
78
78
|
- !ruby/object:Gem::Dependency
|
79
|
-
name:
|
79
|
+
name: evented-spec
|
80
80
|
requirement: !ruby/object:Gem::Requirement
|
81
81
|
none: false
|
82
82
|
requirements:
|
@@ -98,7 +98,7 @@ dependencies:
|
|
98
98
|
requirements:
|
99
99
|
- - '='
|
100
100
|
- !ruby/object:Gem::Version
|
101
|
-
version: 6.1.2.pre.
|
101
|
+
version: 6.1.2.pre.4
|
102
102
|
type: :runtime
|
103
103
|
prerelease: false
|
104
104
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -106,23 +106,7 @@ dependencies:
|
|
106
106
|
requirements:
|
107
107
|
- - '='
|
108
108
|
- !ruby/object:Gem::Version
|
109
|
-
version: 6.1.2.pre.
|
110
|
-
- !ruby/object:Gem::Dependency
|
111
|
-
name: gli
|
112
|
-
requirement: !ruby/object:Gem::Requirement
|
113
|
-
none: false
|
114
|
-
requirements:
|
115
|
-
- - ! '>='
|
116
|
-
- !ruby/object:Gem::Version
|
117
|
-
version: '0'
|
118
|
-
type: :runtime
|
119
|
-
prerelease: false
|
120
|
-
version_requirements: !ruby/object:Gem::Requirement
|
121
|
-
none: false
|
122
|
-
requirements:
|
123
|
-
- - ! '>='
|
124
|
-
- !ruby/object:Gem::Version
|
125
|
-
version: '0'
|
109
|
+
version: 6.1.2.pre.4
|
126
110
|
- !ruby/object:Gem::Dependency
|
127
111
|
name: sequel
|
128
112
|
requirement: !ruby/object:Gem::Requirement
|
@@ -184,12 +168,14 @@ files:
|
|
184
168
|
- lib/omf_ec/runner.rb
|
185
169
|
- lib/omf_ec/version.rb
|
186
170
|
- omf_ec.gemspec
|
171
|
+
- test/oedls/empty.oedl
|
187
172
|
- test/omf_ec/app_context_spec.rb
|
188
173
|
- test/omf_ec/context_spec.rb
|
189
174
|
- test/omf_ec/dsl_spec.rb
|
190
175
|
- test/omf_ec/experiment_property_spec.rb
|
191
176
|
- test/omf_ec/experiment_spec.rb
|
192
177
|
- test/omf_ec/group_spec.rb
|
178
|
+
- test/omf_ec/runner_spec.rb
|
193
179
|
- test/test_helper.rb
|
194
180
|
homepage: http://omf.mytestbed.net
|
195
181
|
licenses:
|