omf_rc 6.0.0.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.
@@ -0,0 +1,18 @@
1
+ require 'test_helper'
2
+ require 'omf_rc/resource_factory'
3
+
4
+ describe OmfRc::ResourceFactory do
5
+ describe "when resource proxies loaded" do
6
+ it "must have list of registered proxies and utilities" do
7
+ OmfRc::ResourceFactory.proxy_list.must_include :mock
8
+ end
9
+
10
+ it "must be able to create new resource proxy" do
11
+ mock = OmfRc::ResourceFactory.new(:mock)
12
+ mock.must_be_kind_of OmfRc::ResourceProxy::AbstractResource
13
+ mock.must_respond_to :request_nothing
14
+ mock.request_nothing.must_equal mock.uid
15
+ mock.must_respond_to :configure_nothing
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,82 @@
1
+ require 'test_helper'
2
+ require 'omf_rc/resource_factory'
3
+
4
+ include OmfRc::ResourceProxy
5
+
6
+ module OmfRc::ResourceProxy
7
+ module Node
8
+ include OmfRc::ResourceProxyDSL
9
+ register_proxy :node
10
+
11
+ register_request :name
12
+ register_configure :name
13
+ end
14
+
15
+ module Interface
16
+ include OmfRc::ResourceProxyDSL
17
+ register_proxy :interface
18
+ end
19
+
20
+ module Wifi
21
+ include OmfRc::ResourceProxyDSL
22
+ register_proxy :wifi
23
+ end
24
+
25
+ module Mock
26
+ include OmfRc::ResourceProxyDSL
27
+ register_proxy :mock
28
+ end
29
+ end
30
+
31
+ describe AbstractResource do
32
+ before do
33
+ @node = OmfRc::ResourceFactory.new(:node, { hrn: 'default_node' })
34
+ end
35
+
36
+ describe "when intialised" do
37
+ it "must convert configuration hash into instance methods, and assign the values" do
38
+ @node.type.must_equal 'node'
39
+ end
40
+
41
+ it "must have an unique id generated" do
42
+ @node.uid.must_match /.{8}-.{4}-.{4}-.{4}-.{12}/
43
+ @node.request_uid.must_match /.{8}-.{4}-.{4}-.{4}-.{12}/
44
+ end
45
+ end
46
+
47
+ describe "when asked to create another resource" do
48
+ it "must return the newly created resource" do
49
+ @node.create(:interface).must_be_kind_of AbstractResource
50
+ end
51
+
52
+ it "must add the resource to its created resource list" do
53
+ child = @node.create(:wifi, { hrn: 'default_wifi' })
54
+ @node.children.must_include child
55
+ @node.request_child_resources[child.uid].must_equal 'default_wifi'
56
+ end
57
+ end
58
+
59
+ describe "when destroyed" do
60
+ it "must destroy itself together with any resources created by it" do
61
+ @node.release
62
+ @node.frozen?.must_equal true
63
+ @node.children.must_be_empty
64
+ end
65
+ end
66
+
67
+ describe "when asked for the funcitonalities it supports" do
68
+ it "must returned all the properties can be requested & configured" do
69
+ @node.request_available_properties.must_be_kind_of Hashie::Mash
70
+ @node.request_available_properties.configure.must_include :name
71
+ @node.request_available_properties.request.must_include :name
72
+ end
73
+
74
+ it "must be able to request and configure some common properties" do
75
+ @node.request_hrn.must_equal 'default_node'
76
+ @node.configure_hrn('bob')
77
+ @node.request_hrn.must_equal 'bob'
78
+ end
79
+ end
80
+ end
81
+
82
+
@@ -0,0 +1,43 @@
1
+ require 'test_helper'
2
+ require 'omf_rc/resource_proxy_dsl'
3
+
4
+ describe OmfRc::ResourceProxyDSL do
5
+ before do
6
+ module OmfRc::Util::MockUtility
7
+ include OmfRc::ResourceProxyDSL
8
+ register_utility :mock_utility
9
+ register_configure :alpha
10
+ register_request :alpha
11
+ end
12
+
13
+ module OmfRc::ResourceProxy::MockProxy
14
+ include OmfRc::ResourceProxyDSL
15
+
16
+ register_proxy :mock_proxy
17
+ utility :mock_utility
18
+
19
+ register_hook :before_ready do
20
+ "bob"
21
+ end
22
+ register_hook :before_release
23
+ register_configure :bravo
24
+ register_request :bravo
25
+ end
26
+ end
27
+
28
+ describe "when included by modules to define resource proxy functionalities" do
29
+ it "must be able to register the modules" do
30
+ OmfRc::ResourceFactory.proxy_list.must_include :mock_proxy
31
+ OmfRc::ResourceFactory.utility_list.must_include :mock_utility
32
+ end
33
+
34
+ it "must be able to define methods" do
35
+ OmfRc::Util::MockUtility.method_defined?(:configure_alpha).must_equal true
36
+ OmfRc::Util::MockUtility.method_defined?(:request_alpha).must_equal true
37
+ OmfRc::ResourceProxy::MockProxy.method_defined?(:configure_alpha).must_equal true
38
+ OmfRc::ResourceProxy::MockProxy.method_defined?(:request_alpha).must_equal true
39
+ OmfRc::ResourceProxy::MockProxy.method_defined?(:before_ready).must_equal true
40
+ OmfRc::ResourceProxy::MockProxy.method_defined?(:before_release).must_equal true
41
+ end
42
+ end
43
+ end
@@ -0,0 +1,11 @@
1
+ gem 'minitest'
2
+ require 'minitest/autorun'
3
+ require 'minitest/pride'
4
+
5
+ require 'omf_rc'
6
+ require 'omf_rc/resource_factory'
7
+
8
+ OmfRc::ResourceFactory.load_default_resource_proxies
9
+
10
+ # Shut up all the loggers
11
+ Logging.logger.root.clear_appenders
metadata ADDED
@@ -0,0 +1,128 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: omf_rc
3
+ version: !ruby/object:Gem::Version
4
+ version: 6.0.0.pre.2
5
+ prerelease: 6
6
+ platform: ruby
7
+ authors:
8
+ - NICTA
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2012-05-29 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: minitest
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ~>
20
+ - !ruby/object:Gem::Version
21
+ version: 2.11.3
22
+ type: :development
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ~>
28
+ - !ruby/object:Gem::Version
29
+ version: 2.11.3
30
+ - !ruby/object:Gem::Dependency
31
+ name: em-minitest-spec
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ~>
36
+ - !ruby/object:Gem::Version
37
+ version: 1.1.1
38
+ type: :development
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ~>
44
+ - !ruby/object:Gem::Version
45
+ version: 1.1.1
46
+ - !ruby/object:Gem::Dependency
47
+ name: omf_common
48
+ requirement: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - ~>
52
+ - !ruby/object:Gem::Version
53
+ version: 6.0.0.pre
54
+ type: :runtime
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ~>
60
+ - !ruby/object:Gem::Version
61
+ version: 6.0.0.pre
62
+ description: Resource controller of OMF, a generic framework for controlling and managing
63
+ networking testbeds.
64
+ email:
65
+ - omf-user@lists.nicta.com.au
66
+ executables:
67
+ - omf_rc
68
+ extensions: []
69
+ extra_rdoc_files: []
70
+ files:
71
+ - .gitignore
72
+ - Gemfile
73
+ - Rakefile
74
+ - bin/omf_rc
75
+ - config/omf_rc.yml
76
+ - integration_test/omf_rc/resource_proxy/app_spec.rb
77
+ - integration_test/omf_rc/resource_proxy/interface_spec.rb
78
+ - integration_test/omf_rc/resource_proxy/mock_spec.rb
79
+ - integration_test/omf_rc/resource_proxy/node_spec.rb
80
+ - integration_test/omf_rc/resource_proxy/wifi_spec.rb
81
+ - integration_test/test_helper.rb
82
+ - lib/omf_rc.rb
83
+ - lib/omf_rc/deferred_process.rb
84
+ - lib/omf_rc/message_process_error.rb
85
+ - lib/omf_rc/resource_factory.rb
86
+ - lib/omf_rc/resource_proxy/abstract_resource.rb
87
+ - lib/omf_rc/resource_proxy/interface.rb
88
+ - lib/omf_rc/resource_proxy/mock.rb
89
+ - lib/omf_rc/resource_proxy/node.rb
90
+ - lib/omf_rc/resource_proxy/wifi.rb
91
+ - lib/omf_rc/resource_proxy_dsl.rb
92
+ - lib/omf_rc/util/iw.rb
93
+ - lib/omf_rc/util/mock.rb
94
+ - lib/omf_rc/util/mod.rb
95
+ - lib/omf_rc/util/package.rb
96
+ - lib/omf_rc/version.rb
97
+ - omf_rc.gemspec
98
+ - test/omf_rc/deferred_process_spec.rb
99
+ - test/omf_rc/resource_factory_spec.rb
100
+ - test/omf_rc/resource_proxy/abstract_resource_spec.rb
101
+ - test/omf_rc/resource_proxy_dsl_spec.rb
102
+ - test/test_helper.rb
103
+ homepage: https://www.mytestbed.net
104
+ licenses: []
105
+ post_install_message:
106
+ rdoc_options: []
107
+ require_paths:
108
+ - lib
109
+ required_ruby_version: !ruby/object:Gem::Requirement
110
+ none: false
111
+ requirements:
112
+ - - ! '>='
113
+ - !ruby/object:Gem::Version
114
+ version: '0'
115
+ required_rubygems_version: !ruby/object:Gem::Requirement
116
+ none: false
117
+ requirements:
118
+ - - ! '>'
119
+ - !ruby/object:Gem::Version
120
+ version: 1.3.1
121
+ requirements: []
122
+ rubyforge_project: omf_rc
123
+ rubygems_version: 1.8.23
124
+ signing_key:
125
+ specification_version: 3
126
+ summary: OMF resource controller
127
+ test_files: []
128
+ has_rdoc: