omf_ec 6.1.12 → 6.1.14.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.
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- MWEyMTUyMzg1NGI2YjMxZDhjZmI0ODQ0MzgzNWIyY2YyZWM5MjUyMQ==
4
+ N2ZjMDkyMjEwYjQ1MjExY2U3N2MzMGE5MDViYmY4ZTY4MTgxZWMyMA==
5
5
  data.tar.gz: !binary |-
6
- MmRjZWMyNWRmNzgwNjY2YjljOTRiZGExM2EwYTIwZWY0Zjk3ZjViNQ==
6
+ YTVlMzQxMThkN2U4MDRjMzY2NWNkZDA5YzQ5NDQ4NTlmY2QyNjgzZg==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- MzExMWUzNzA5ZmYyNmQyYWU4YzA4YjNhNmZiNTkwMzRkYjU0Yjg2ZTJjMDNl
10
- NTdlM2YwZTM3YjcwOGI3ZDNmYmZiZmUyM2JmYmU3NjUyN2Y3YTU0ODA5YTEz
11
- YjJhNzJiYmRiNmVmMjc4MzhiYWQwYjcyOTViODhmMjA1NDc2MWM=
9
+ Yjc0ODM1YmY2OGY3MzhkYTE1MTdiNWU0MjVhNmI2MjQ0MWIwODJlMTBjMzAw
10
+ ODFiYzhkOTkzYzVhODg3Mzk3YzdkM2FmZjQwZTYzMGMyNGVmYjNlMjdmZjkw
11
+ YTdmYTYwYzZiYWEyMDNlMmZmOGFmZjc1OWI2OThmYzNkODQzYmM=
12
12
  data.tar.gz: !binary |-
13
- MTE0OWYzZWM5Zjc2YWUwZjZmYWE0NTQ1YTUxYjliZTE2ZmI4MWE1ZTAwMjcx
14
- ODc4NGJjYTNkZTU0OWI1ZDcyZjRjN2QwNzgzYmQ3Y2E5ZjUxYTljZmUyMTMy
15
- MzhkZmM3MzI3NDQyODZkZjZlNjdiOWUzZTM4MmUwNmQ5NWRmOWY=
13
+ YTQzOWUxMTBkY2QxNWE0OGQ1OWIwMDcxYmVjZDI3YjhjZWI0NDRiODBhNjcw
14
+ ZTg2ODk2NDRhNmI4NWM1NjlkZmUyZGFkMzcyZjNjMTQ4YjQwNWIxMjE1NjFj
15
+ N2ZmMGNjMjI4ODZmNmM3ZmZkNGMxNzk0YTkyOTQ0NGI2NDc0ZmQ=
@@ -47,7 +47,7 @@ module OmfEc::Context
47
47
  OmfEc.subscribe_and_monitor(@group.resource_group(:application)) do |topic|
48
48
  p = properties
49
49
  p[:parameters][key.to_sym][:value] = property_value.value
50
- topic.configure(p, { guard: { hrn: @name} } )
50
+ topic.configure(p, { guard: { hrn: @name}, assert: OmfEc.experiment.assertion } )
51
51
  end
52
52
  end
53
53
  end
@@ -77,9 +77,11 @@ module OmfEc::Context
77
77
 
78
78
  case self.operation
79
79
  when :configure
80
- topic.configure({ name => value }, { guard: self.guard })
80
+ topic.configure({ name => value },
81
+ { guard: self.guard, assert: OmfEc.experiment.assertion })
81
82
  when :request
82
- topic.request([:uid, :hrn, name], { guard: self.guard })
83
+ topic.request([:uid, :hrn, name],
84
+ { guard: self.guard, assert: OmfEc.experiment.assertion })
83
85
  when :release
84
86
  topics_to_release = OmfEc.experiment.state.find_all do |res_state|
85
87
  all_equal(self.guard.keys) do |k|
@@ -90,7 +92,7 @@ module OmfEc::Context
90
92
  topics_to_release.each do |res_state|
91
93
  OmfEc.subscribe_and_monitor(res_state.uid) do |child_topic|
92
94
  OmfEc.subscribe_and_monitor(self.group.id) do |group_topic|
93
- group_topic.release(child_topic) if child_topic
95
+ group_topic.release(child_topic, { assert: OmfEc.experiment.assertion }) if child_topic
94
96
  end
95
97
  end
96
98
  end
@@ -16,7 +16,7 @@ module OmfEc
16
16
 
17
17
  include MonitorMixin
18
18
 
19
- attr_accessor :name, :sliceID, :oml_uri, :js_url, :ss_url, :job_url, :job_mps, :app_definitions, :property, :cmdline_properties, :show_graph, :nodes
19
+ attr_accessor :name, :sliceID, :oml_uri, :js_url, :ss_url, :job_url, :job_mps, :app_definitions, :property, :cmdline_properties, :show_graph, :nodes, :assertion
20
20
  attr_reader :groups, :sub_groups, :state
21
21
 
22
22
  # MP only used for injecting metadata
@@ -97,7 +97,7 @@ module OmfEc
97
97
  unless planned_groups.empty?
98
98
  OmfEc.subscribe_and_monitor(name) do |res|
99
99
  info "Config #{name} to join #{planned_groups.map(&:name).join(', ')}"
100
- res.configure(membership: planned_groups.map(&:address))
100
+ res.configure({ membership: planned_groups.map(&:address) }, { assert: OmfEc.experiment.assertion } )
101
101
  end
102
102
  end
103
103
  end
@@ -237,7 +237,7 @@ module OmfEc
237
237
  )
238
238
  end
239
239
 
240
- # If EC is launched with --job-service setup, then it needs to
240
+ # If EC is launched with --job-service setup, then it needs to
241
241
  # create a job entry for this experiment trial
242
242
  # Do nothing if:
243
243
  # - a JobService URL has not been provided, i.e. EC runs without needs to contact JS
@@ -312,7 +312,7 @@ module OmfEc
312
312
  g.synchronize do
313
313
  g.members[key] = res.address
314
314
  end
315
- res.configure(membership: g.address, :res_index => OmfEc.experiment.nodes.index(key))
315
+ res.configure({ membership: g.address, res_index: OmfEc.experiment.nodes.index(key) }, { assert: OmfEc.experiment.assertion })
316
316
  end
317
317
  end
318
318
  end
@@ -84,6 +84,10 @@ module OmfEc::Graph
84
84
  @caption = text
85
85
  end
86
86
 
87
+ def opts(additional_opts = {})
88
+ @opts = additional_opts
89
+ end
90
+
87
91
  def _report
88
92
  _report_meta
89
93
  info "REPORT:START: #{@name}"
@@ -100,6 +104,7 @@ module OmfEc::Graph
100
104
  info "REPORT:AXIS: #{URI.encode(@axis.to_json)}"
101
105
  end
102
106
  info "REPORT:CAPTION: #{URI.encode(@caption)}" if @caption
107
+ info "REPORT:OPTS: #{URI.encode(@opts.to_json)}" if @opts
103
108
  info "REPORT:STOP"
104
109
  end
105
110
 
@@ -119,6 +124,9 @@ module OmfEc::Graph
119
124
  if @axis
120
125
  h[:axis] = @axis
121
126
  end
127
+
128
+ h[:opts] = @opts if @opts
129
+
122
130
  descr = h.to_json
123
131
  OmfEc.experiment.log_metadata(@name, descr, :graph)
124
132
  end
data/lib/omf_ec/group.rb CHANGED
@@ -70,6 +70,12 @@ module OmfEc
70
70
  # Resources to be added could be a list of resources, groups, or the mixture of both.
71
71
  def add_resource(*names)
72
72
  names.flatten!
73
+
74
+ # When names is array of resource hash
75
+ if !names.empty? && names[0].kind_of?(Hash)
76
+ names.map! { |v| v['omf_id'] if v['type'] == 'node' }.compact!
77
+ end
78
+
73
79
  synchronize do
74
80
  # Recording membership first, used for ALL_UP event
75
81
  names.each do |name|
@@ -107,7 +113,8 @@ module OmfEc
107
113
  associate_resource_topic(opts[:type].to_s, res_group)
108
114
  # Send create message to group
109
115
  r_type = opts.delete(:type)
110
- @topic.create(r_type, opts.merge(membership: resource_group_name))
116
+ @topic.create(r_type, opts.merge(membership: resource_group_name),
117
+ assert: OmfEc.experiment.assertion)
111
118
  end
112
119
  end
113
120
  end
data/lib/omf_ec/runner.rb CHANGED
@@ -4,6 +4,7 @@
4
4
  # By downloading or using this software you accept the terms and the liability disclaimer in the License
5
5
 
6
6
  require 'hashie'
7
+ require 'omf_common/auth/assertion'
7
8
 
8
9
  module OmfEc
9
10
  class Runner
@@ -91,6 +92,11 @@ module OmfEc
91
92
  remove_cmd_opts_from_argv("--key", key)
92
93
  end
93
94
 
95
+ op.on("--assertion PATH_TO_ASSERTION_FILE", "Assertion") do |assertion|
96
+ @cmd_opts[:assertion] = assertion
97
+ remove_cmd_opts_from_argv("--assertion", assertion)
98
+ end
99
+
94
100
  op.on("--name", "--experiment EXPERIMENT_NAME", "Experiment name") do |e_name|
95
101
  @cmd_opts[:experiment_name] = e_name
96
102
  OmfEc.experiment.name = e_name
@@ -208,6 +214,24 @@ module OmfEc
208
214
  OmfEc.experiment.oml_uri = @config_opts[:oml_uri] if @config_opts[:oml_uri]
209
215
  OmfEc.experiment.show_graph = @config_opts['show-graph']
210
216
 
217
+ # Parse assertion JSON if provided
218
+ #
219
+ # It is specified in config file as JSON string but
220
+ # OmfCommon.load_yaml will turn it to hash (mash)
221
+ #
222
+ # OR provided via command line as path to the assertion JSON file
223
+ #
224
+ if @config_opts['assertion']
225
+ case @config_opts['assertion']
226
+ when Hash
227
+ assert = @config_opts['assertion'].to_json
228
+ when String
229
+ assert = File.read(File.expand_path(@config_opts['assertion']))
230
+ end
231
+
232
+ OmfEc.experiment.assertion = OmfCommon::Auth::Assertion.parse(assert)
233
+ end
234
+
211
235
  # Instrument EC
212
236
  if @config_opts[:inst_oml_uri] && @config_opts[:inst_oml_id] && @config_opts[:inst_oml_domain]
213
237
  instrument_ec = OML4R::init(nil, {
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: omf_ec
3
3
  version: !ruby/object:Gem::Version
4
- version: 6.1.12
4
+ version: 6.1.14.pre.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - NICTA
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-10-16 00:00:00.000000000 Z
11
+ date: 2015-03-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: minitest
@@ -86,14 +86,14 @@ dependencies:
86
86
  requirements:
87
87
  - - '='
88
88
  - !ruby/object:Gem::Version
89
- version: 6.1.12
89
+ version: 6.1.14.pre.1
90
90
  type: :runtime
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
94
  - - '='
95
95
  - !ruby/object:Gem::Version
96
- version: 6.1.12
96
+ version: 6.1.14.pre.1
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: sequel
99
99
  requirement: !ruby/object:Gem::Requirement
@@ -183,22 +183,13 @@ required_ruby_version: !ruby/object:Gem::Requirement
183
183
  version: 1.9.3
184
184
  required_rubygems_version: !ruby/object:Gem::Requirement
185
185
  requirements:
186
- - - ! '>='
186
+ - - ! '>'
187
187
  - !ruby/object:Gem::Version
188
- version: '0'
188
+ version: 1.3.1
189
189
  requirements: []
190
190
  rubyforge_project: omf_ec
191
- rubygems_version: 2.1.10
191
+ rubygems_version: 2.4.2
192
192
  signing_key:
193
193
  specification_version: 4
194
194
  summary: OMF experiment controller
195
- test_files:
196
- - test/oedls/empty.oedl
197
- - test/omf_ec/app_context_spec.rb
198
- - test/omf_ec/context_spec.rb
199
- - test/omf_ec/dsl_spec.rb
200
- - test/omf_ec/experiment_property_spec.rb
201
- - test/omf_ec/experiment_spec.rb
202
- - test/omf_ec/group_spec.rb
203
- - test/omf_ec/runner_spec.rb
204
- - test/test_helper.rb
195
+ test_files: []