omf_ec 6.0.2.pre.1 → 6.0.2.pre.2
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 +1 -1
- data/lib/omf_ec/backward/app_definition.rb +27 -4
- data/lib/omf_ec/backward/exp/testbed.rb +15 -19
- data/lib/omf_ec/experiment.rb +18 -1
- data/lib/omf_ec/version.rb +1 -1
- data/omf_ec.gemspec +1 -1
- metadata +4 -4
data/bin/omf_ec
CHANGED
@@ -17,7 +17,7 @@ switch [:d, :debug]
|
|
17
17
|
|
18
18
|
desc "URI for communication layer"
|
19
19
|
arg_name "URI"
|
20
|
-
default_value "xmpp://
|
20
|
+
default_value "xmpp://localhost"
|
21
21
|
flag [:u, :uri]
|
22
22
|
|
23
23
|
desc "Debug XMPP traffic mode (include XMPP debug logging messages under debug mode)."
|
@@ -1,12 +1,34 @@
|
|
1
1
|
module OmfEc
|
2
2
|
module Backward
|
3
3
|
module AppDefinition
|
4
|
-
# The following are
|
4
|
+
# The following are OEDL 5 methods
|
5
5
|
|
6
|
-
# Add a new parameter to this Application Definition
|
7
|
-
# This method is for backward compatibility with previous OEDL 5
|
6
|
+
# Add a new parameter to this Application Definition.
|
7
|
+
# This method is for backward compatibility with previous OEDL 5.
|
8
|
+
#
|
9
|
+
# @param [String] name name of the property to define (mandatory)
|
10
|
+
# @param [String] description description of this property; oml2-scaffold uses this for the help message (popt: descrip)
|
11
|
+
# @param [String] parameter command-line parameter to introduce this property, including dashes if needed (can be nil)
|
12
|
+
# @param [Hash] options list of options associated with this property
|
13
|
+
# @option options [String] :type type of the property: :integer, :string and :boolean are supported; oml2-scaffold extends this with :int and :double (popt: argInfo)
|
14
|
+
# @option options [Boolean] :dynamic true if the property can be changed at run-time
|
15
|
+
# @option options [Fixnum] :order used to order properties when creating the command line
|
16
|
+
#
|
17
|
+
# The OML code-generation tool, oml2-scaffold extends the range of
|
18
|
+
# options supported in the options hash to support generation of
|
19
|
+
# popt(3) command line parsing code. As for the parameters, depending
|
20
|
+
# on the number of dashes (two/one) in parameter, it is used as the
|
21
|
+
# longName/shortName for popt(3), otherwise the former defaults to
|
22
|
+
# name, and the latter defaults to either :mnemonic or nothing.
|
23
|
+
#
|
24
|
+
# @option options [String] :mnemonic one-letter mnemonic for the option (also returned by poptGetNextOpt as val)
|
25
|
+
# @option options [String] :unit unit in which this property is expressed; oml2-scaffold uses this for the help message (popt: argDescrip)
|
26
|
+
# @option options [String] :default default value if argument unspecified (optional; defaults to something sane for the :type)
|
27
|
+
# @option options [String] :var_name name of the C variable for popt(3) to store the property value into (optional; popt: arg; defaults to name, after sanitisation)
|
28
|
+
#
|
29
|
+
# @see http://oml.mytestbed.net/doc/oml/latest/oml2-scaffold.1.html
|
30
|
+
# @see http://linux.die.net/man/3/popt
|
8
31
|
#
|
9
|
-
# @param [String] name name of the application to define
|
10
32
|
def defProperty(name = :mandatory, description = nil, parameter = nil, options = {})
|
11
33
|
opts = {:description => description, :cmd => parameter}
|
12
34
|
# Map old OMF5 types to OMF6
|
@@ -21,6 +43,7 @@ module OmfEc
|
|
21
43
|
@fields << {:field => name, :type => type}
|
22
44
|
end
|
23
45
|
|
46
|
+
# XXX: This should be provided by the omf-oml glue.
|
24
47
|
def defMeasurement(name,&block)
|
25
48
|
mp = {:mp => name, :fields => []}
|
26
49
|
@fields = []
|
@@ -1,32 +1,28 @@
|
|
1
1
|
def create_app(testbed)
|
2
|
-
testbed.create(:application) do |reply|
|
2
|
+
testbed.create(:application, binary_path: @cmd) do |reply|
|
3
3
|
if reply.success?
|
4
4
|
app = reply.resource
|
5
5
|
|
6
6
|
app.on_subscribed do
|
7
|
-
app.
|
8
|
-
|
9
|
-
after(1) { app.configure(binary_path: @cmd) }
|
10
|
-
after(2) { app.configure(state: :running) }
|
7
|
+
app.configure(state: :running)
|
11
8
|
|
12
9
|
app.on_status do |m|
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
10
|
+
case m.itype
|
11
|
+
when 'STATUS'
|
12
|
+
if m[:status_type] == 'APP_EVENT'
|
13
|
+
after(2) { OmfCommon.comm.disconnect } if m[:event] =~ /DONE.(OK|ERROR)/
|
14
|
+
info m[:msg] if m[:msg]
|
15
|
+
else
|
16
|
+
m.each_property do |k, v|
|
17
|
+
info "#{k} => #{v.strip}" unless v.nil?
|
18
|
+
end
|
19
19
|
end
|
20
|
+
when 'WARN'
|
21
|
+
warn m[:reason]
|
22
|
+
when 'ERROR'
|
23
|
+
error m[:reason]
|
20
24
|
end
|
21
25
|
end
|
22
|
-
|
23
|
-
app.on_warn do |m|
|
24
|
-
warn m[:reason]
|
25
|
-
end
|
26
|
-
|
27
|
-
app.on_error do |m|
|
28
|
-
error m[:reason]
|
29
|
-
end
|
30
26
|
end
|
31
27
|
else
|
32
28
|
error reply[:reason]
|
data/lib/omf_ec/experiment.rb
CHANGED
@@ -65,13 +65,30 @@ module OmfEc
|
|
65
65
|
end
|
66
66
|
else
|
67
67
|
info "Newly discovered resource >> #{name}"
|
68
|
-
|
68
|
+
res = Hashie::Mash.new({ address: name }).merge(opts)
|
69
|
+
@state << res
|
70
|
+
|
71
|
+
# Re send membership configure
|
72
|
+
planned_groups = groups_by_res(res[:address])
|
73
|
+
|
74
|
+
unless planned_groups.empty?
|
75
|
+
OmfEc.subscribe_and_monitor(name) do |res|
|
76
|
+
info "Config #{name} to join #{planned_groups.map(&:name).join(', ')}"
|
77
|
+
res.configure(membership: planned_groups.map(&:id).join(', '))
|
78
|
+
end
|
79
|
+
end
|
69
80
|
end
|
70
81
|
end
|
71
82
|
end
|
72
83
|
|
73
84
|
alias_method :add_resource, :add_or_update_resource_state
|
74
85
|
|
86
|
+
# Find all groups a given resource belongs to
|
87
|
+
#
|
88
|
+
def groups_by_res(res_addr)
|
89
|
+
groups.find_all { |g| g.members.include?(res_addr) }
|
90
|
+
end
|
91
|
+
|
75
92
|
def sub_group(name)
|
76
93
|
@sub_groups.find { |v| v == name }
|
77
94
|
end
|
data/lib/omf_ec/version.rb
CHANGED
data/omf_ec.gemspec
CHANGED
@@ -25,6 +25,6 @@ Gem::Specification.new do |s|
|
|
25
25
|
s.add_development_dependency "em-minitest-spec", "~> 1.1.1"
|
26
26
|
s.add_development_dependency "simplecov"
|
27
27
|
s.add_development_dependency "pry"
|
28
|
-
s.add_runtime_dependency "omf_common", "~> 6.0.
|
28
|
+
s.add_runtime_dependency "omf_common", "~> 6.0.2.pre.2"
|
29
29
|
s.add_runtime_dependency "gli", "~> 2.5.3"
|
30
30
|
end
|
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.0.2.pre.
|
4
|
+
version: 6.0.2.pre.2
|
5
5
|
prerelease: 6
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-04-
|
12
|
+
date: 2013-04-30 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: minitest
|
@@ -82,7 +82,7 @@ dependencies:
|
|
82
82
|
requirements:
|
83
83
|
- - ~>
|
84
84
|
- !ruby/object:Gem::Version
|
85
|
-
version: 6.0.
|
85
|
+
version: 6.0.2.pre.2
|
86
86
|
type: :runtime
|
87
87
|
prerelease: false
|
88
88
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -90,7 +90,7 @@ dependencies:
|
|
90
90
|
requirements:
|
91
91
|
- - ~>
|
92
92
|
- !ruby/object:Gem::Version
|
93
|
-
version: 6.0.
|
93
|
+
version: 6.0.2.pre.2
|
94
94
|
- !ruby/object:Gem::Dependency
|
95
95
|
name: gli
|
96
96
|
requirement: !ruby/object:Gem::Requirement
|