omf_ec 6.1.9 → 6.1.10

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.
@@ -20,6 +20,7 @@ module OmfEc
20
20
  v5_style(:loadOEDL, base)
21
21
  v5_style(:ensureProperty, base)
22
22
  v5_style(:defQuery, base)
23
+ v5_style(:getResources, base)
23
24
  end
24
25
 
25
26
  def v5_style(name, base)
data/lib/omf_ec/dsl.rb CHANGED
@@ -10,6 +10,8 @@ require 'eventmachine'
10
10
  require 'uri'
11
11
  require 'open-uri'
12
12
  require 'tempfile'
13
+ require 'json'
14
+ require 'net/http'
13
15
 
14
16
  module OmfEc
15
17
  # DSL methods to be used for OEDL scripts
@@ -338,8 +340,6 @@ module OmfEc
338
340
  #
339
341
  def def_query(query)
340
342
  raise "No valid URL to connect to the Job Service!" if OmfEc.experiment.job_url.nil?
341
- require 'json'
342
- require 'net/http'
343
343
  begin
344
344
  query = query.sql if query.kind_of? OmfEc::Graph::MSBuilder
345
345
  # Create a Measurement Point for that Job item
@@ -359,11 +359,11 @@ module OmfEc
359
359
  u = URI.parse(OmfEc.experiment.job_mps[query]+'/data')
360
360
  res = Net::HTTP.get(u)
361
361
  raise "No valid data from the service providing measurements" if res.nil? || res.empty? || !(res.kind_of? String)
362
- resjon = JSON.parse(res)
363
- metrics = resjon['schema'].map { |e| e[0] }
362
+ resjson = JSON.parse(res)
363
+ metrics = resjson['schema'].map { |e| e[0] }
364
364
  data = []
365
- resjon['data'].each do |a|
366
- row = {}
365
+ resjson['data'].each do |a|
366
+ row = Hashie::Mash.new
367
367
  a.each_index { |i| row[metrics[i].downcase.to_sym] = a[i] }
368
368
  data << row
369
369
  end
@@ -371,7 +371,7 @@ module OmfEc
371
371
  rescue Exception => ex
372
372
  return nil if ex.kind_of? EOFError
373
373
  error "def_query - #{ex} (#{ex.class})"
374
- error "def_query - #{ex.backtrace.join("\n\t")}"
374
+ #error "def_query - #{ex.backtrace.join("\n\t")}"
375
375
  return nil
376
376
  end
377
377
  end
@@ -396,5 +396,27 @@ module OmfEc
396
396
  msb
397
397
  end
398
398
 
399
+ # Query a Slice Service to get back the list of resources which were
400
+ # previously provisioned for the slice within which this EC is operating.
401
+ # Return either an empty array or an array of Hash (actually Hashie::Mash)
402
+ # Require that the EC was provided an URL to a slice service (option
403
+ # --slice-service) and the name of the slice (option --slice).
404
+ #
405
+ def get_resources
406
+ begin
407
+ #slice_url = "http://bleeding.mytestbed.net:8006/slices/"
408
+ raise "No slice service URL, use '--slice-service' option" if OmfEc.experiment.ss_url.nil?
409
+ raise "No slice name, use '--slice' option" if OmfEc.experiment.sliceID.nil?
410
+ u = URI.parse(OmfEc.experiment.ss_url+'/'+OmfEc.experiment.sliceID+'/resources')
411
+ res = Net::HTTP.get(u)
412
+ raise "Could not retrieve a valid list of resources from '#{u}'" if res.nil? || res.empty? || !(res.kind_of? String)
413
+ Hashie::Mash.new(JSON.parse(res)).values
414
+ rescue Exception => ex
415
+ error "get_resources - #{ex} (#{ex.class}) - URI: '#{u}'"
416
+ #error "get_resources - #{ex.backtrace.join("\n\t")}"
417
+ return []
418
+ end
419
+ end
420
+
399
421
  end
400
422
  end
@@ -16,7 +16,7 @@ module OmfEc
16
16
 
17
17
  include MonitorMixin
18
18
 
19
- attr_accessor :name, :sliceID, :oml_uri, :js_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
20
20
  attr_reader :groups, :sub_groups, :state
21
21
 
22
22
  # MP only used for injecting metadata
@@ -44,6 +44,7 @@ module OmfEc
44
44
  @js_url = nil
45
45
  @job_url = nil
46
46
  @job_mps = {}
47
+ @ss_url = nil
47
48
  end
48
49
 
49
50
  def property
data/lib/omf_ec/runner.rb CHANGED
@@ -113,6 +113,11 @@ module OmfEc
113
113
  remove_cmd_opts_from_argv("--job-url", url)
114
114
  end
115
115
 
116
+ op.on("--slice-service URL", "URL to the SliceService [optional]") do |url|
117
+ OmfEc.experiment.ss_url = url
118
+ remove_cmd_opts_from_argv("--slice-service", url)
119
+ end
120
+
116
121
  op.on("--oml_uri URI", "URI for the OML data collection of experiment applications") do |uri|
117
122
  @cmd_opts[:oml_uri] = uri
118
123
  remove_cmd_opts_from_argv("--oml_uri", uri)
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.9
4
+ version: 6.1.10
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -98,7 +98,7 @@ dependencies:
98
98
  requirements:
99
99
  - - '='
100
100
  - !ruby/object:Gem::Version
101
- version: 6.1.9
101
+ version: 6.1.10
102
102
  type: :runtime
103
103
  prerelease: false
104
104
  version_requirements: !ruby/object:Gem::Requirement
@@ -106,7 +106,7 @@ dependencies:
106
106
  requirements:
107
107
  - - '='
108
108
  - !ruby/object:Gem::Version
109
- version: 6.1.9
109
+ version: 6.1.10
110
110
  - !ruby/object:Gem::Dependency
111
111
  name: sequel
112
112
  requirement: !ruby/object:Gem::Requirement
@@ -204,7 +204,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
204
204
  version: '0'
205
205
  segments:
206
206
  - 0
207
- hash: 4325778270689122680
207
+ hash: -2796515617465100587
208
208
  requirements: []
209
209
  rubyforge_project: omf_ec
210
210
  rubygems_version: 1.8.23