omf_rc 6.0.0.pre.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -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: