dropmyemail-openstack 1.0.9

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,210 @@
1
+ require File.dirname(__FILE__) + '/test_helper'
2
+
3
+ class ServersTest < Test::Unit::TestCase
4
+
5
+ include TestConnection
6
+
7
+ def setup
8
+ @comp=get_test_connection
9
+ end
10
+
11
+ def test_list_servers
12
+
13
+ json_response = %{{
14
+ "servers" : [
15
+ {
16
+ "id" : 1234,
17
+ "name" : "sample-server",
18
+ "image" : { "id": "2" },
19
+ "flavor" : { "id" : "1" },
20
+ "hostId" : "e4d909c290d0fb1ca068ffaddf22cbd0",
21
+ "status" : "BUILD",
22
+ "progress" : 60,
23
+ "addresses" : {
24
+ "public" : [
25
+ { "version" : 4, "addr" : "67.23.10.132" },
26
+ { "version" : 4, "addr" : "67.23.10.131" }
27
+ ],
28
+ "private" : [
29
+ { "version" : 4, "addr" : "10.176.42.16" }
30
+ ]
31
+ },
32
+ "metadata" : {
33
+ "Server Label" : "Web Head 1",
34
+ "Image Version" : "2.1"
35
+ }
36
+ },
37
+ {
38
+ "id" : 5678,
39
+ "name" : "sample-server2",
40
+ "image" : { "id": "2" },
41
+ "flavor" : { "id" : "1" },
42
+ "hostId" : "9e107d9d372bb6826bd81d3542a419d6",
43
+ "status" : "ACTIVE",
44
+ "addresses" : {
45
+ "public" : [
46
+ { "version" : 4, "addr" : "67.23.10.133" }
47
+ ],
48
+ "private" : [
49
+ { "version" : 4, "addr" : "10.176.42.17" }
50
+ ]
51
+ },
52
+ "metadata" : {
53
+ "Server Label" : "DB 1"
54
+ }
55
+ }
56
+ ]
57
+ }}
58
+ response = mock()
59
+ response.stubs(:code => "200", :body => json_response)
60
+ @comp.connection.stubs(:csreq).returns(response)
61
+ servers=@comp.list_servers
62
+ assert_equal 2, servers.size
63
+ assert_equal 1234, servers[0][:id]
64
+ assert_equal "sample-server", servers[0][:name]
65
+ end
66
+
67
+ def test_get_server
68
+
69
+ server=get_test_server
70
+ assert_equal "sample-server", server.name
71
+ assert_equal "2", server.image['id']
72
+ assert_equal "1", server.flavor['id']
73
+ assert_equal "e4d909c290d0fb1ca068ffaddf22cbd0", server.hostId
74
+ assert_equal "BUILD", server.status
75
+ assert_equal 60, server.progress
76
+ assert_equal "67.23.10.132", server.addresses[:public][0].address
77
+ assert_equal "67.23.10.131", server.addresses[:public][1].address
78
+ assert_equal "10.176.42.16", server.addresses[:private][0].address
79
+
80
+ end
81
+
82
+ def test_rebuild_server
83
+
84
+ json_response = %{{
85
+ "server": {
86
+ "id": "52415800-8b69-11e0-9b19-734f565bc83b",
87
+ "tenantId": "1234",
88
+ "userId": "5678",
89
+ "name": "newName",
90
+ "created": "2010-11-11T12:00:00Z",
91
+ "hostId": "e4d909c290d0fb1ca068ffaddf22cbd0",
92
+ "accessIPv4" : "67.23.10.138",
93
+ "accessIPv6" : "::babe:67.23.10.138",
94
+ "progress": 0,
95
+ "status": "REBUILD",
96
+ "adminPass": "GFf1j9aP",
97
+ "image" : {
98
+ "id": "52415800-8b69-11e0-9b19-734f6f006e54",
99
+ "name": "CentOS 5.2",
100
+ "links": [
101
+ {
102
+ "rel": "self",
103
+ "href": "http://servers.api.openstack.org/v1.1/1234/images/52415800-8b69-11e0-9b19-734f6f006e54"
104
+ },
105
+ {
106
+ "rel": "bookmark",
107
+ "href": "http://servers.api.openstack.org/1234/images/52415800-8b69-11e0-9b19-734f6f006e54"
108
+ }
109
+ ]
110
+ },
111
+ "flavor" : {
112
+ "id": "52415800-8b69-11e0-9b19-734f1195ff37",
113
+ "name": "256 MB Server",
114
+ "links": [
115
+ {
116
+ "rel": "self",
117
+ "href": "http://servers.api.openstack.org/v1.1/1234/flavors/52415800-8b69-11e0-9b19-734f1195ff37"
118
+ },
119
+ {
120
+ "rel": "bookmark",
121
+ "href": "http://servers.api.openstack.org/1234/flavors/52415800-8b69-11e0-9b19-734f1195ff37"
122
+ }
123
+ ]
124
+ },
125
+ "metadata": {
126
+ "My Server Name": "Apache1"
127
+ },
128
+ "addresses": {
129
+ "public" : [
130
+ {
131
+ "version": 4,
132
+ "addr": "67.23.10.138"
133
+ },
134
+ {
135
+ "version": 6,
136
+ "addr": "2001:0db8:85a3:0000:0000:8a2e:0370:7334"
137
+ }
138
+ ],
139
+ "private" : [
140
+ {
141
+ "version": 4,
142
+ "addr": "10.176.42.19"
143
+ },
144
+ {
145
+ "version": 6,
146
+ "addr": "fe80:0000:0000:0000:0202:b3ff:fe1e:8329"
147
+ }
148
+ ]
149
+ },
150
+ "links": [
151
+ {
152
+ "rel": "self",
153
+ "href": "http://servers.api.openstack.org/v1.1/1234/servers/52415800-8b69-11e0-9b19-734fcece0043"
154
+ },
155
+ {
156
+ "rel": "bookmark",
157
+ "href": "http://servers.api.openstack.org/1234/servers/52415800-8b69-11e0-9b19-734fcece0043"
158
+ }
159
+ ]
160
+ }
161
+ }}
162
+
163
+ server=get_test_server
164
+
165
+ response = mock()
166
+ response.stubs(:code => "200", :body => json_response)
167
+
168
+ @comp.connection.stubs(:csreq).returns(response)
169
+ server.rebuild!(:name => "newName")
170
+
171
+ assert_not_nil server.adminPass
172
+ assert_equal "newName", server.name
173
+
174
+ end
175
+
176
+ private
177
+ def get_test_server
178
+
179
+ json_response = %{{
180
+ "server" : {
181
+ "id" : 1234,
182
+ "name" : "sample-server",
183
+ "image" : { "id": "2" },
184
+ "flavor" : { "id" : "1" },
185
+ "hostId" : "e4d909c290d0fb1ca068ffaddf22cbd0",
186
+ "status" : "BUILD",
187
+ "progress" : 60,
188
+ "addresses" : {
189
+ "public" : [
190
+ { "version" : 4, "addr" : "67.23.10.132" },
191
+ { "version" : 4, "addr" : "67.23.10.131" }
192
+ ],
193
+ "private" : [
194
+ { "version" : 4, "addr" : "10.176.42.16" }
195
+ ]
196
+ },
197
+ "metadata" : {
198
+ "Server Label" : "Web Head 1",
199
+ "Image Version" : "2.1"
200
+ }
201
+ }
202
+ }}
203
+
204
+ response = mock()
205
+ response.stubs(:code => "200", :body => json_response)
206
+ @comp.connection.stubs(:csreq).returns(response)
207
+ return @comp.server(1234)
208
+ end
209
+
210
+ end
@@ -0,0 +1,22 @@
1
+ require 'rubygems'
2
+ require 'test/unit'
3
+ require 'mocha'
4
+ $:.unshift File.dirname(__FILE__) + '/../lib'
5
+ require 'openstack'
6
+
7
+ module TestConnection
8
+
9
+ def get_test_connection
10
+
11
+ conn_response = {'x-server-management-url' => 'http://server-manage.example.com/path', 'x-auth-token' => 'dummy_token'}
12
+ conn_response.stubs(:code).returns('204')
13
+ #server = mock(:use_ssl= => true, :verify_mode= => true, :start => true, :finish => true)
14
+ server = mock(:start => true, :finish => true)
15
+ server.stubs(:get => conn_response, :use_ssl= => true, :verify_mode= => true)
16
+ #server.stubs(:get).returns(conn_response)
17
+ Net::HTTP.stubs(:new).returns(server)
18
+ OpenStack::Connection.create(:username => "test_account", :api_key => "AABBCCDD11", :auth_url => "http://a.b.c")
19
+
20
+ end
21
+
22
+ end
metadata ADDED
@@ -0,0 +1,123 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: dropmyemail-openstack
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.9
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Dan Prince
9
+ - Marios Andreou
10
+ - Wong Liang Zan
11
+ autorequire:
12
+ bindir: bin
13
+ cert_chain: []
14
+ date: 2013-01-31 00:00:00.000000000 Z
15
+ dependencies:
16
+ - !ruby/object:Gem::Dependency
17
+ name: mocha
18
+ requirement: !ruby/object:Gem::Requirement
19
+ none: false
20
+ requirements:
21
+ - - ! '>='
22
+ - !ruby/object:Gem::Version
23
+ version: '0'
24
+ type: :development
25
+ prerelease: false
26
+ version_requirements: !ruby/object:Gem::Requirement
27
+ none: false
28
+ requirements:
29
+ - - ! '>='
30
+ - !ruby/object:Gem::Version
31
+ version: '0'
32
+ - !ruby/object:Gem::Dependency
33
+ name: test-unit
34
+ requirement: !ruby/object:Gem::Requirement
35
+ none: false
36
+ requirements:
37
+ - - ! '>='
38
+ - !ruby/object:Gem::Version
39
+ version: '0'
40
+ type: :development
41
+ prerelease: false
42
+ version_requirements: !ruby/object:Gem::Requirement
43
+ none: false
44
+ requirements:
45
+ - - ! '>='
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ - !ruby/object:Gem::Dependency
49
+ name: json
50
+ requirement: !ruby/object:Gem::Requirement
51
+ none: false
52
+ requirements:
53
+ - - ! '>='
54
+ - !ruby/object:Gem::Version
55
+ version: '0'
56
+ type: :runtime
57
+ prerelease: false
58
+ version_requirements: !ruby/object:Gem::Requirement
59
+ none: false
60
+ requirements:
61
+ - - ! '>='
62
+ - !ruby/object:Gem::Version
63
+ version: '0'
64
+ description: API Binding for OpenStack. With Swauth authentication for Swift
65
+ email:
66
+ - dprince@redhat.com
67
+ - marios@redhat.com
68
+ - zan@liangzan.net
69
+ executables: []
70
+ extensions: []
71
+ extra_rdoc_files:
72
+ - README.rdoc
73
+ files:
74
+ - COPYING
75
+ - README.rdoc
76
+ - VERSION
77
+ - lib/openstack.rb
78
+ - lib/openstack/compute/address.rb
79
+ - lib/openstack/compute/connection.rb
80
+ - lib/openstack/compute/flavor.rb
81
+ - lib/openstack/compute/image.rb
82
+ - lib/openstack/compute/metadata.rb
83
+ - lib/openstack/compute/personalities.rb
84
+ - lib/openstack/compute/server.rb
85
+ - lib/openstack/connection.rb
86
+ - lib/openstack/image/connection.rb
87
+ - lib/openstack/swift/connection.rb
88
+ - lib/openstack/swift/container.rb
89
+ - lib/openstack/swift/storage_object.rb
90
+ - lib/openstack/volume/connection.rb
91
+ - lib/openstack/volume/snapshot.rb
92
+ - lib/openstack/volume/volume.rb
93
+ - test/authentication_test.rb
94
+ - test/connection_test.rb
95
+ - test/exception_test.rb
96
+ - test/metadata_test.rb
97
+ - test/servers_test.rb
98
+ - test/test_helper.rb
99
+ homepage: https://github.com/ruby-openstack/ruby-openstack
100
+ licenses: []
101
+ post_install_message:
102
+ rdoc_options: []
103
+ require_paths:
104
+ - lib
105
+ required_ruby_version: !ruby/object:Gem::Requirement
106
+ none: false
107
+ requirements:
108
+ - - ! '>='
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
111
+ required_rubygems_version: !ruby/object:Gem::Requirement
112
+ none: false
113
+ requirements:
114
+ - - ! '>='
115
+ - !ruby/object:Gem::Version
116
+ version: '0'
117
+ requirements: []
118
+ rubyforge_project:
119
+ rubygems_version: 1.8.24
120
+ signing_key:
121
+ specification_version: 3
122
+ summary: OpenStack Ruby API with Swauth authentication for Swift
123
+ test_files: []