fog-profitbricks 4.0.0 → 4.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +1 -3
- data/Rakefile +1 -1
- data/examples/pb_demo.rb +2 -8
- data/lib/fog/profitbricks/compute.rb +249 -105
- data/lib/fog/profitbricks/models/compute/datacenter.rb +63 -9
- data/lib/fog/profitbricks/models/compute/firewall_rule.rb +3 -1
- data/lib/fog/profitbricks/models/compute/group.rb +7 -4
- data/lib/fog/profitbricks/models/compute/image.rb +3 -0
- data/lib/fog/profitbricks/models/compute/ip_block.rb +2 -0
- data/lib/fog/profitbricks/models/compute/lan.rb +2 -1
- data/lib/fog/profitbricks/models/compute/load_balancer.rb +2 -0
- data/lib/fog/profitbricks/models/compute/location.rb +1 -0
- data/lib/fog/profitbricks/models/compute/nic.rb +2 -0
- data/lib/fog/profitbricks/models/compute/request.rb +1 -0
- data/lib/fog/profitbricks/models/compute/resource.rb +1 -0
- data/lib/fog/profitbricks/models/compute/server.rb +5 -1
- data/lib/fog/profitbricks/models/compute/share.rb +4 -2
- data/lib/fog/profitbricks/models/compute/snapshot.rb +2 -0
- data/lib/fog/profitbricks/models/compute/user.rb +4 -1
- data/lib/fog/profitbricks/requests/compute/add_share.rb +2 -2
- data/lib/fog/profitbricks/requests/compute/add_user_to_group.rb +4 -4
- data/lib/fog/profitbricks/requests/compute/associate_nic_to_load_balancer.rb +1 -3
- data/lib/fog/profitbricks/requests/compute/attach_cdrom.rb +18 -17
- data/lib/fog/profitbricks/requests/compute/attach_volume.rb +9 -2
- data/lib/fog/profitbricks/requests/compute/create_datacenter.rb +71 -25
- data/lib/fog/profitbricks/requests/compute/create_firewall_rule.rb +11 -4
- data/lib/fog/profitbricks/requests/compute/create_group.rb +22 -4
- data/lib/fog/profitbricks/requests/compute/create_ip_block.rb +1 -1
- data/lib/fog/profitbricks/requests/compute/create_lan.rb +1 -1
- data/lib/fog/profitbricks/requests/compute/create_load_balancer.rb +4 -43
- data/lib/fog/profitbricks/requests/compute/create_nic.rb +4 -0
- data/lib/fog/profitbricks/requests/compute/create_server.rb +6 -1
- data/lib/fog/profitbricks/requests/compute/create_user.rb +20 -1
- data/lib/fog/profitbricks/requests/compute/create_volume.rb +5 -1
- data/lib/fog/profitbricks/requests/compute/create_volume_snapshot.rb +1 -1
- data/lib/fog/profitbricks/requests/compute/delete_group.rb +1 -1
- data/lib/fog/profitbricks/requests/compute/delete_share.rb +1 -1
- data/lib/fog/profitbricks/requests/compute/delete_user.rb +1 -1
- data/lib/fog/profitbricks/requests/compute/detach_cdrom.rb +3 -3
- data/lib/fog/profitbricks/requests/compute/get_attached_cdrom.rb +3 -3
- data/lib/fog/profitbricks/requests/compute/get_datacenter.rb +1 -1
- data/lib/fog/profitbricks/requests/compute/get_firewall_rule.rb +1 -1
- data/lib/fog/profitbricks/requests/compute/get_group.rb +1 -1
- data/lib/fog/profitbricks/requests/compute/get_image.rb +1 -1
- data/lib/fog/profitbricks/requests/compute/get_ip_block.rb +1 -1
- data/lib/fog/profitbricks/requests/compute/get_lan.rb +1 -1
- data/lib/fog/profitbricks/requests/compute/get_load_balanced_nic.rb +7 -1
- data/lib/fog/profitbricks/requests/compute/get_load_balancer.rb +1 -1
- data/lib/fog/profitbricks/requests/compute/get_location.rb +1 -1
- data/lib/fog/profitbricks/requests/compute/get_nic.rb +2 -2
- data/lib/fog/profitbricks/requests/compute/get_request.rb +8 -1
- data/lib/fog/profitbricks/requests/compute/get_resource_by_type.rb +8 -1
- data/lib/fog/profitbricks/requests/compute/get_resources_by_type.rb +9 -3
- data/lib/fog/profitbricks/requests/compute/get_server.rb +1 -1
- data/lib/fog/profitbricks/requests/compute/get_share.rb +1 -1
- data/lib/fog/profitbricks/requests/compute/get_snapshot.rb +1 -1
- data/lib/fog/profitbricks/requests/compute/get_user.rb +1 -1
- data/lib/fog/profitbricks/requests/compute/get_volume.rb +1 -1
- data/lib/fog/profitbricks/requests/compute/list_attached_cdroms.rb +3 -1
- data/lib/fog/profitbricks/requests/compute/list_attached_volumes.rb +3 -3
- data/lib/fog/profitbricks/requests/compute/remove_user_from_group.rb +2 -2
- data/lib/fog/profitbricks/requests/compute/update_datacenter.rb +3 -8
- data/lib/fog/profitbricks/requests/compute/update_firewall_rule.rb +1 -1
- data/lib/fog/profitbricks/requests/compute/update_group.rb +5 -5
- data/lib/fog/profitbricks/requests/compute/update_nic.rb +2 -4
- data/lib/fog/profitbricks/requests/compute/update_server.rb +3 -4
- data/lib/fog/profitbricks/requests/compute/update_share.rb +3 -3
- data/lib/fog/profitbricks/requests/compute/update_user.rb +2 -2
- data/lib/fog/profitbricks/version.rb +1 -1
- data/tests/profitbricks/models/compute/compute_tests.rb +1071 -267
- metadata +26 -33
- data/gemfiles/Gemfile.1.8.7 +0 -6
- data/tests/profitbricks/requests/compute/composite_create_tests.rb +0 -174
- data/tests/profitbricks/requests/compute/flavor_tests.rb +0 -40
- data/tests/profitbricks/requests/compute/location_tests.rb +0 -42
- data/tests/profitbricks/requests/compute/nic_tests.rb +0 -268
- data/tests/profitbricks/requests/compute/request_tests.rb +0 -50
- data/tests/profitbricks/requests/compute/server_tests.rb +0 -462
@@ -54,7 +54,7 @@ module Fog
|
|
54
54
|
fwr["datacenter_id"] == datacenter_id && fwr["server_id"] == server_id && fwr["nic_id"] == nic_id && fwr["id"] == firewall_rule_id
|
55
55
|
end
|
56
56
|
else
|
57
|
-
raise
|
57
|
+
raise Excon::Error::HTTPStatus, "Resource does not exist"
|
58
58
|
end
|
59
59
|
|
60
60
|
response = Excon::Response.new
|
@@ -104,7 +104,7 @@ module Fog
|
|
104
104
|
ln["datacenter_id"] == datacenter_id && ln["id"] == lan_id
|
105
105
|
end
|
106
106
|
else
|
107
|
-
raise
|
107
|
+
raise Excon::Error::HTTPStatus, "Resource does not exist"
|
108
108
|
end
|
109
109
|
|
110
110
|
response = Excon::Response.new
|
@@ -81,7 +81,7 @@ module Fog
|
|
81
81
|
lb["datacenter_id"] == datacenter_id && lb["id"] == load_balancer_id
|
82
82
|
end
|
83
83
|
else
|
84
|
-
raise
|
84
|
+
raise Excon::Error::HTTPStatus, "Resource does not exist"
|
85
85
|
end
|
86
86
|
|
87
87
|
load_balanced_nic = nil
|
@@ -92,6 +92,12 @@ module Fog
|
|
92
92
|
load_balancer['balancednics']['items'][0]
|
93
93
|
end
|
94
94
|
|
95
|
+
load_balanced_nic['mac'] = '01:23:45:67:89:00'
|
96
|
+
load_balanced_nic['nat'] = false
|
97
|
+
load_balanced_nic['firewall_active'] = true
|
98
|
+
load_balanced_nic['lan'] = load_balanced_nic[:lan]
|
99
|
+
load_balanced_nic['ips'] = load_balanced_nic[:ips]
|
100
|
+
|
95
101
|
response = Excon::Response.new
|
96
102
|
response.status = 200
|
97
103
|
response.body = load_balanced_nic
|
@@ -100,7 +100,7 @@ module Fog
|
|
100
100
|
lb["datacenter_id"] == datacenter_id && lb["id"] == load_balancer_id
|
101
101
|
end
|
102
102
|
else
|
103
|
-
raise
|
103
|
+
raise Excon::Error::HTTPStatus, "Resource does not exist"
|
104
104
|
end
|
105
105
|
|
106
106
|
response = Excon::Response.new
|
@@ -76,12 +76,12 @@ module Fog
|
|
76
76
|
end
|
77
77
|
|
78
78
|
class Mock
|
79
|
-
def get_nic(
|
79
|
+
def get_nic(datacenter_id, server_id, nic_id)
|
80
80
|
if nic = data[:nics]['items'].find do |nic|
|
81
81
|
nic["id"] == nic_id
|
82
82
|
end
|
83
83
|
else
|
84
|
-
raise
|
84
|
+
raise Excon::Error::HTTPStatus, "Resource does not exist"
|
85
85
|
end
|
86
86
|
|
87
87
|
response = Excon::Response.new
|
@@ -46,7 +46,14 @@ module Fog
|
|
46
46
|
end
|
47
47
|
|
48
48
|
class Mock
|
49
|
-
def get_request(
|
49
|
+
def get_request(request_id)
|
50
|
+
if request = data[:requests]["items"].find do |req|
|
51
|
+
req["id"] == request_id
|
52
|
+
end
|
53
|
+
else
|
54
|
+
raise Excon::Error::HTTPStatus, "Resource does not exist"
|
55
|
+
end
|
56
|
+
|
50
57
|
response = Excon::Response.new
|
51
58
|
response.status = 200
|
52
59
|
response.body = data[:requests]['items'][0]
|
@@ -61,9 +61,16 @@ module Fog
|
|
61
61
|
|
62
62
|
class Mock
|
63
63
|
def get_resource_by_type(resource_type, resource_id)
|
64
|
+
if resource = data[:resources]['items'].find do |r|
|
65
|
+
r["type"] == resource_type && r["id"] == resource_id
|
66
|
+
end
|
67
|
+
else
|
68
|
+
raise Excon::Error::HTTPStatus, "Resource does not exist"
|
69
|
+
end
|
70
|
+
|
64
71
|
response = Excon::Response.new
|
65
72
|
response.status = 200
|
66
|
-
response.body =
|
73
|
+
response.body = resource
|
67
74
|
|
68
75
|
response
|
69
76
|
end
|
@@ -32,10 +32,16 @@ module Fog
|
|
32
32
|
|
33
33
|
class Mock
|
34
34
|
def get_resources_by_type(resource_type)
|
35
|
-
|
36
|
-
|
37
|
-
|
35
|
+
if resources = data[:resources]['items'].select {|resource| resource['type'] == resource_type}
|
36
|
+
result = data[:resources].dup
|
37
|
+
result['items'] = resources
|
38
|
+
else
|
39
|
+
raise Excon::Error::HTTPStatus, "Resource does not exist"
|
40
|
+
end
|
38
41
|
|
42
|
+
response = Excon::Response.new
|
43
|
+
response.status = 200
|
44
|
+
response.body = result
|
39
45
|
response
|
40
46
|
end
|
41
47
|
end
|
@@ -116,7 +116,7 @@ module Fog
|
|
116
116
|
serv['datacenter_id'] == datacenter_id && serv['id'] == server_id
|
117
117
|
end
|
118
118
|
else
|
119
|
-
raise
|
119
|
+
raise Excon::Error::HTTPStatus, "Resource does not exist"
|
120
120
|
end
|
121
121
|
|
122
122
|
response = Excon::Response.new
|
@@ -57,7 +57,7 @@ module Fog
|
|
57
57
|
vlm["id"] == volume_id && vlm["datacenter_id"] == datacenter_id
|
58
58
|
end
|
59
59
|
else
|
60
|
-
raise Excon::Error::HTTPStatus, "
|
60
|
+
raise Excon::Error::HTTPStatus, "Resource does not exist"
|
61
61
|
end
|
62
62
|
|
63
63
|
response = Excon::Response.new
|
@@ -60,9 +60,11 @@ module Fog
|
|
60
60
|
serv['datacenter_id'] == datacenter_id && serv['id'] == server_id
|
61
61
|
end
|
62
62
|
else
|
63
|
-
raise
|
63
|
+
raise Excon::Error::HTTPStatus, "Resource does not exist"
|
64
64
|
end
|
65
65
|
|
66
|
+
data[:images]['items'] = data[:images]['items'].select {|img| img['imageType'] == 'CDROM'}
|
67
|
+
|
66
68
|
response = Excon::Response.new
|
67
69
|
response.status = 200
|
68
70
|
response.body = data[:images]
|
@@ -61,13 +61,13 @@ module Fog
|
|
61
61
|
serv['datacenter_id'] == datacenter_id && serv['id'] == server_id
|
62
62
|
end
|
63
63
|
else
|
64
|
-
raise
|
64
|
+
raise Excon::Error::HTTPStatus, "Resource does not exist"
|
65
65
|
end
|
66
66
|
|
67
67
|
response = Excon::Response.new
|
68
68
|
response.status = 200
|
69
|
-
response.body = if server['
|
70
|
-
server['
|
69
|
+
response.body = if server['volumes']
|
70
|
+
server['volumes']
|
71
71
|
else
|
72
72
|
{
|
73
73
|
'id' => "#{server_id}/volumes",
|
@@ -31,14 +31,14 @@ module Fog
|
|
31
31
|
grp["id"] == group_id
|
32
32
|
end
|
33
33
|
else
|
34
|
-
raise Excon::Error::HTTPStatus, "
|
34
|
+
raise Excon::Error::HTTPStatus, "Resource does not exist"
|
35
35
|
end
|
36
36
|
|
37
37
|
if user = data[:users]['items'].find do |usr|
|
38
38
|
usr["id"] == user_id
|
39
39
|
end
|
40
40
|
else
|
41
|
-
raise Excon::Error::HTTPStatus, "
|
41
|
+
raise Excon::Error::HTTPStatus, "Resource does not exist"
|
42
42
|
end
|
43
43
|
|
44
44
|
response
|
@@ -50,20 +50,15 @@ module Fog
|
|
50
50
|
if dc = data[:datacenters]["items"].find do |datacenter|
|
51
51
|
datacenter["id"] == datacenter_id
|
52
52
|
end
|
53
|
-
options.each do |key, value|
|
54
|
-
dc[key] = value
|
55
|
-
end
|
56
53
|
|
57
54
|
dc['properties']['version'] += 1 if dc['properties']
|
58
55
|
dc['version'] += 1 if dc['version']
|
59
56
|
|
60
|
-
dc['properties']['name']
|
61
|
-
dc['name']
|
62
|
-
dc['properties']['description'] += ' - updated' if dc['properties']
|
63
|
-
dc['description'] += ' - updated' if dc['description']
|
57
|
+
dc['properties']['name'] = options[:properties][:name] if dc['properties']
|
58
|
+
dc['name'] = options[:name] if dc['name']
|
64
59
|
|
65
60
|
else
|
66
|
-
raise Excon::Error::HTTPStatus, "
|
61
|
+
raise Excon::Error::HTTPStatus, "Resource does not exist"
|
67
62
|
end
|
68
63
|
|
69
64
|
response = Excon::Response.new
|
@@ -65,12 +65,12 @@ module Fog
|
|
65
65
|
grp["id"] == group_id
|
66
66
|
end
|
67
67
|
group['name'] = options[:name]
|
68
|
-
group['createDataCenter'] = options[:
|
69
|
-
group['createSnapshot'] = options[:
|
70
|
-
group['reserveIp'] = options[:
|
71
|
-
group['accessActivityLog'] = options[:
|
68
|
+
group['createDataCenter'] = options[:createDataCenter] if [true, false].include?(options[:createDataCenter])
|
69
|
+
group['createSnapshot'] = options[:createSnapshot] if [true, false].include?(options[:createSnapshot])
|
70
|
+
group['reserveIp'] = options[:reserveIp] if [true, false].include?(options[:reserveIp])
|
71
|
+
group['accessActivityLog'] = options[:accessActivityLog] if [true, false].include?(options[:accessActivityLog])
|
72
72
|
else
|
73
|
-
raise Excon::Error::HTTPStatus,
|
73
|
+
raise Excon::Error::HTTPStatus, "Resource does not exist"
|
74
74
|
end
|
75
75
|
|
76
76
|
response = Excon::Response.new
|
@@ -86,11 +86,9 @@ module Fog
|
|
86
86
|
if nic = data[:nics]['items'].find do |attribute|
|
87
87
|
attribute["datacenter_id"] == datacenter_id && attribute["server_id"] == server_id && attribute["id"] == nic_id
|
88
88
|
end
|
89
|
-
|
90
|
-
nic[key] = value
|
91
|
-
end
|
89
|
+
nic['name'] = options[:name]
|
92
90
|
else
|
93
|
-
raise
|
91
|
+
raise Excon::Error::HTTPStatus, "Resource does not exist"
|
94
92
|
end
|
95
93
|
|
96
94
|
response = Excon::Response.new
|
@@ -126,13 +126,12 @@ module Fog
|
|
126
126
|
if server = data[:servers]['items'].find do |attrib|
|
127
127
|
attrib['id'] == server_id
|
128
128
|
end
|
129
|
-
properties.each do |key, value|
|
130
|
-
server[key] = value
|
131
|
-
end
|
132
129
|
else
|
133
|
-
raise
|
130
|
+
raise Excon::Error::HTTPStatus, "Resource does not exist"
|
134
131
|
end
|
135
132
|
|
133
|
+
server['name'] = properties[:name]
|
134
|
+
|
136
135
|
response = Excon::Response.new
|
137
136
|
response.status = 202
|
138
137
|
response.body = server
|
@@ -49,10 +49,10 @@ module Fog
|
|
49
49
|
if share = data[:shares]['items'].find do |shr|
|
50
50
|
shr["id"] == resource_id
|
51
51
|
end
|
52
|
-
share['editPrivilege'] = options[:
|
53
|
-
share['sharePrivilege'] = options[:
|
52
|
+
share['editPrivilege'] = options[:editPrivilege] if [true, false].include?(options[:editPrivilege])
|
53
|
+
share['sharePrivilege'] = options[:sharePrivilege] if [true, false].include?(options[:sharePrivilege])
|
54
54
|
else
|
55
|
-
raise Excon::Error::HTTPStatus,
|
55
|
+
raise Excon::Error::HTTPStatus, "Resource does not exist"
|
56
56
|
end
|
57
57
|
|
58
58
|
response = Excon::Response.new
|
@@ -77,9 +77,9 @@ module Fog
|
|
77
77
|
user['lastname'] = options[:lastname]
|
78
78
|
user['email'] = options[:email]
|
79
79
|
user['administrator'] = options[:administrator]
|
80
|
-
user['forceSecAuth'] = options[:force_sec_auth]
|
80
|
+
user['forceSecAuth'] = options[:force_sec_auth] || false
|
81
81
|
else
|
82
|
-
raise Excon::Error::HTTPStatus,
|
82
|
+
raise Excon::Error::HTTPStatus, "Resource does not exist"
|
83
83
|
end
|
84
84
|
|
85
85
|
response = Excon::Response.new
|
@@ -1,535 +1,1339 @@
|
|
1
1
|
Shindo.tests('Fog::Compute[:profitbricks] | compute models', %w(profitbricks compute)) do
|
2
|
-
compute = Fog::Compute[:
|
2
|
+
compute = Fog::Compute.new(:provider => 'ProfitBricks', :profitbricks_username => ENV['PROFITBRICKS_USERNAME'], :profitbricks_password => ENV['PROFITBRICKS_PASSWORD'])
|
3
3
|
|
4
4
|
tests('success') do
|
5
5
|
Excon.defaults[:connection_timeout] = 500
|
6
|
-
|
7
|
-
tests('should retrieve contract resources').succeeds do
|
6
|
+
tests('List Contract Resources').succeeds do
|
8
7
|
contract_resources = compute.contract_resources.all
|
9
8
|
|
10
|
-
|
9
|
+
contract_resources.count > 0 &&
|
10
|
+
contract_resources[0].contract_number !~ /\D/
|
11
|
+
end
|
12
|
+
|
13
|
+
tests('List Requests').succeeds do
|
14
|
+
requests = compute.requests.all
|
15
|
+
@request_id = requests[0].id
|
16
|
+
|
17
|
+
requests.count > 0 &&
|
18
|
+
requests[0].type == 'request'
|
11
19
|
end
|
12
20
|
|
13
|
-
tests('
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
21
|
+
tests('Get Request').succeeds do
|
22
|
+
request = compute.requests.get(@request_id)
|
23
|
+
|
24
|
+
request.id == @request_id &&
|
25
|
+
request.type == 'request'
|
26
|
+
end
|
27
|
+
|
28
|
+
tests('Get Request Status').succeeds do
|
29
|
+
request_status = compute.requests.get_status(@request_id)
|
30
|
+
|
31
|
+
request_status.id == "#{@request_id}/status" &&
|
32
|
+
request_status.type == 'request-status'
|
33
|
+
end
|
34
|
+
|
35
|
+
tests('List Locations').succeeds do
|
36
|
+
locations = compute.locations.all
|
37
|
+
|
38
|
+
locations.count > 0 &&
|
39
|
+
locations[0].type == 'location' &&
|
40
|
+
locations.find {|item| item.id == 'us/las'} != nil
|
41
|
+
end
|
42
|
+
|
43
|
+
tests('Get Location').succeeds do
|
44
|
+
location = compute.locations.get('us/las')
|
45
|
+
|
46
|
+
location.id == 'us/las' &&
|
47
|
+
location.type == 'location'
|
48
|
+
end
|
49
|
+
|
50
|
+
tests('Create Datacenter Simple').succeeds do
|
51
|
+
datacenter = compute.datacenters.create(:name => 'Fog Test',
|
52
|
+
:location => 'us/las',
|
53
|
+
:description => 'Fog test datacenter')
|
54
|
+
datacenter.wait_for {ready?}
|
18
55
|
|
19
56
|
@datacenter_id = datacenter.id
|
20
57
|
|
21
|
-
datacenter.
|
22
|
-
|
23
|
-
|
58
|
+
datacenter.type == 'datacenter' &&
|
59
|
+
datacenter.name == 'Fog Test' &&
|
60
|
+
datacenter.location == 'us/las' &&
|
61
|
+
datacenter.description == 'Fog test datacenter'
|
62
|
+
end
|
63
|
+
|
64
|
+
tests('Create Datacenter Composite').succeeds do
|
65
|
+
servers = [
|
66
|
+
{
|
67
|
+
name: 'Fog Test',
|
68
|
+
ram: 1024,
|
69
|
+
cores: 1
|
70
|
+
}
|
71
|
+
]
|
72
|
+
|
73
|
+
volumes = [
|
74
|
+
{
|
75
|
+
name: 'Fog Test',
|
76
|
+
size: 2,
|
77
|
+
bus: 'VIRTIO',
|
78
|
+
type: 'HDD',
|
79
|
+
licenceType: 'UNKNOWN',
|
80
|
+
availabilityZone: 'ZONE_3'
|
81
|
+
}
|
82
|
+
]
|
83
|
+
datacenter = compute.datacenters.create(:name => 'Fog Test Composite',
|
84
|
+
:location => 'us/las',
|
85
|
+
:description => 'Fog test composite datacenter',
|
86
|
+
:servers => servers,
|
87
|
+
:volumes => volumes)
|
88
|
+
datacenter.wait_for {ready?}
|
89
|
+
|
90
|
+
@composite_dc_id = datacenter.id
|
91
|
+
|
92
|
+
datacenter.type == 'datacenter' &&
|
93
|
+
datacenter.name == 'Fog Test Composite' &&
|
94
|
+
datacenter.location == 'us/las' &&
|
95
|
+
datacenter.description == 'Fog test composite datacenter' &&
|
96
|
+
datacenter.servers.count > 0 &&
|
97
|
+
datacenter.volumes.count > 0
|
98
|
+
end
|
99
|
+
|
100
|
+
tests('List Datacenters').succeeds do
|
101
|
+
datacenters = compute.datacenters.all
|
102
|
+
|
103
|
+
datacenters.count > 0 &&
|
104
|
+
datacenters[0].type == 'datacenter'
|
24
105
|
end
|
25
106
|
|
26
|
-
tests('
|
107
|
+
tests('Get Datacenter').succeeds do
|
27
108
|
datacenter = compute.datacenters.get(@datacenter_id)
|
28
109
|
|
29
|
-
datacenter.
|
30
|
-
|
31
|
-
|
110
|
+
datacenter.id == @datacenter_id &&
|
111
|
+
datacenter.type == 'datacenter' &&
|
112
|
+
datacenter.name == 'Fog Test' &&
|
113
|
+
datacenter.location == 'us/las' &&
|
114
|
+
datacenter.description == 'Fog test datacenter'
|
32
115
|
end
|
33
116
|
|
34
|
-
tests('
|
117
|
+
tests('Update Datacenter').succeeds do
|
35
118
|
datacenter = compute.datacenters.get(@datacenter_id)
|
36
|
-
datacenter.name = datacenter.name + ' -
|
37
|
-
datacenter.description = datacenter.description + ' - updated'
|
119
|
+
datacenter.name = datacenter.name + ' - RENAMED'
|
38
120
|
datacenter.update
|
121
|
+
datacenter.wait_for {ready?}
|
122
|
+
datacenter.reload
|
123
|
+
|
124
|
+
datacenter.name == 'Fog Test - RENAMED' &&
|
125
|
+
datacenter.version > 1
|
126
|
+
end
|
127
|
+
|
128
|
+
tests('Create LAN').succeeds do
|
129
|
+
lan = compute.lans.create(:datacenter_id => @datacenter_id,
|
130
|
+
:name => 'Fog Test',
|
131
|
+
:public => true)
|
39
132
|
|
40
|
-
|
133
|
+
@lan_id = lan.id
|
134
|
+
sleep(120) if ENV["FOG_MOCK"] != "true"
|
41
135
|
|
42
|
-
|
43
|
-
|
136
|
+
lan.name == 'Fog Test' &&
|
137
|
+
lan.public
|
44
138
|
end
|
45
139
|
|
46
|
-
tests('
|
47
|
-
|
140
|
+
tests('List LANs').succeeds do
|
141
|
+
lans = compute.lans.all(@datacenter_id)
|
48
142
|
|
49
|
-
|
143
|
+
lans.count > 0 &&
|
144
|
+
lans[0].type == 'lan'
|
50
145
|
end
|
51
146
|
|
52
|
-
tests('
|
53
|
-
|
147
|
+
tests('Get LAN').succeeds do
|
148
|
+
lan = compute.lans.get(@datacenter_id, @lan_id)
|
54
149
|
|
55
|
-
|
150
|
+
lan.id == @lan_id &&
|
151
|
+
lan.type == 'lan' &&
|
152
|
+
lan.name == 'Fog Test' &&
|
153
|
+
lan.public
|
56
154
|
end
|
57
155
|
|
58
|
-
tests('
|
59
|
-
|
156
|
+
tests('Update LAN').succeeds do
|
157
|
+
lan = compute.lans.get(@datacenter_id, @lan_id)
|
158
|
+
lan.name = lan.name + ' - RENAME'
|
159
|
+
lan.public = false
|
160
|
+
lan.update
|
60
161
|
|
61
|
-
|
162
|
+
lan.id == @lan_id &&
|
163
|
+
lan.type == 'lan' &&
|
164
|
+
lan.name == 'Fog Test - RENAME'
|
62
165
|
end
|
63
166
|
|
64
|
-
tests('
|
167
|
+
tests('List Images').succeeds do
|
168
|
+
images = compute.images.all
|
169
|
+
|
170
|
+
images.count > 0
|
171
|
+
images[0].type == 'image'
|
172
|
+
|
173
|
+
image = images.find do |img|
|
174
|
+
img.image_type == 'HDD' &&
|
175
|
+
img.licence_type == 'LINUX' &&
|
176
|
+
img.location == 'us/las'
|
177
|
+
end
|
178
|
+
|
179
|
+
@image_id = image.id
|
180
|
+
end
|
181
|
+
|
182
|
+
|
183
|
+
tests('Get Image').succeeds do
|
184
|
+
image = compute.images.get(@image_id)
|
185
|
+
|
186
|
+
image.id == @image_id &&
|
187
|
+
image.type == 'image' &&
|
188
|
+
!image.name.empty? &&
|
189
|
+
image.description.to_s.empty? &&
|
190
|
+
!image.location.to_s.empty? &&
|
191
|
+
image.size > 0 &&
|
192
|
+
['true', 'false', true, false].include?(image.cpu_hot_plug) &&
|
193
|
+
['true', 'false', true, false].include?(image.cpu_hot_unplug) &&
|
194
|
+
['true', 'false', true, false].include?(image.ram_hot_plug) &&
|
195
|
+
['true', 'false', true, false].include?(image.ram_hot_unplug) &&
|
196
|
+
['true', 'false', true, false].include?(image.nic_hot_plug) &&
|
197
|
+
['true', 'false', true, false].include?(image.nic_hot_unplug) &&
|
198
|
+
['true', 'false', true, false].include?(image.disc_virtio_hot_plug) &&
|
199
|
+
['true', 'false', true, false].include?(image.disc_virtio_hot_unplug) &&
|
200
|
+
['true', 'false', true, false].include?(image.disc_scsi_hot_plug) &&
|
201
|
+
['true', 'false', true, false].include?(image.disc_scsi_hot_unplug) &&
|
202
|
+
['true', 'false', true, false].include?(image.public) &&
|
203
|
+
!image.licence_type.to_s.empty? &&
|
204
|
+
!image.image_type.to_s.empty?
|
205
|
+
end
|
206
|
+
|
207
|
+
tests('Create Volume').succeeds do
|
65
208
|
volume = compute.volumes.create(:datacenter_id => @datacenter_id,
|
66
|
-
:name => '
|
67
|
-
:size =>
|
68
|
-
:
|
209
|
+
:name => 'Fog Test',
|
210
|
+
:size => 2,
|
211
|
+
:bus => 'VIRTIO',
|
69
212
|
:type => 'HDD',
|
70
|
-
:availability_zone => '
|
71
|
-
|
213
|
+
:availability_zone => 'ZONE_3',
|
214
|
+
:image => @image_id,
|
215
|
+
:ssh_keys => ['ssh-rsa AAAAB3NzaC1'])
|
216
|
+
volume.wait_for {ready?}
|
72
217
|
|
73
218
|
@volume_id = volume.id
|
74
219
|
|
75
|
-
volume.name
|
76
|
-
|
77
|
-
|
78
|
-
|
220
|
+
volume.name == 'Fog Test' &&
|
221
|
+
volume.size == 2 &&
|
222
|
+
volume.bus == 'VIRTIO' &&
|
223
|
+
volume.type == 'HDD' &&
|
224
|
+
volume.availability_zone == 'ZONE_3' &&
|
225
|
+
volume.image == @image_id &&
|
226
|
+
volume.ssh_keys.kind_of?(Array)
|
79
227
|
end
|
80
228
|
|
81
|
-
tests('
|
82
|
-
|
229
|
+
tests('List Volumes').succeeds do
|
230
|
+
volumes = compute.volumes.all(@datacenter_id)
|
83
231
|
|
84
|
-
|
85
|
-
|
86
|
-
volume.type == 'HDD'
|
87
|
-
volume.licence_type == 'OTHER'
|
232
|
+
volumes.count > 0 &&
|
233
|
+
volumes[0].type == 'HDD'
|
88
234
|
end
|
89
235
|
|
90
|
-
tests('
|
236
|
+
tests('Get Volume').succeeds do
|
91
237
|
volume = compute.volumes.get(@datacenter_id, @volume_id)
|
92
|
-
volume.name = volume.name + ' - updated'
|
93
|
-
volume.update
|
94
|
-
|
95
|
-
volume.wait_for { ready? }
|
96
238
|
|
97
|
-
volume.
|
239
|
+
volume.id == @volume_id &&
|
240
|
+
volume.name == 'Fog Test' &&
|
241
|
+
volume.size == 2 &&
|
242
|
+
volume.type == 'HDD' &&
|
243
|
+
volume.availability_zone == 'ZONE_3' &&
|
244
|
+
volume.image == @image_id
|
98
245
|
end
|
99
246
|
|
100
|
-
tests('
|
101
|
-
|
247
|
+
tests('Update Volume').succeeds do
|
248
|
+
volume = compute.volumes.get(@datacenter_id, @volume_id)
|
249
|
+
volume.size = 5
|
250
|
+
volume.name = volume.name + ' - RENAME'
|
251
|
+
volume.update
|
252
|
+
|
253
|
+
volume.wait_for {ready?}
|
254
|
+
volume.reload
|
102
255
|
|
103
|
-
|
256
|
+
volume.id == @volume_id &&
|
257
|
+
volume.name == 'Fog Test - RENAME' &&
|
258
|
+
volume.size == 5
|
104
259
|
end
|
105
260
|
|
106
|
-
tests('
|
261
|
+
tests('Create Snapshot').succeeds do
|
107
262
|
volume = compute.volumes.get(@datacenter_id, @volume_id)
|
108
263
|
|
109
|
-
volume.create_snapshot('
|
264
|
+
volume.create_snapshot('Fog Test', 'Fog test snapshot') == true
|
110
265
|
volume.reload
|
111
266
|
end
|
112
267
|
|
113
|
-
tests('
|
114
|
-
sleep(
|
268
|
+
tests('List Snapshots').succeeds do
|
269
|
+
sleep(30) if ENV["FOG_MOCK"] != "true"
|
115
270
|
|
116
271
|
snapshots = compute.snapshots.all
|
117
|
-
|
118
|
-
!snapshots.empty?
|
119
|
-
|
120
272
|
snapshot = snapshots.find do |snp|
|
121
|
-
snp.name == '
|
273
|
+
snp.name == 'Fog Test'
|
122
274
|
end
|
123
275
|
|
124
276
|
@snapshot_id = snapshot.id
|
125
|
-
end
|
126
|
-
|
127
|
-
tests('should retrieve a snapshot by id').succeeds do
|
128
|
-
snapshot = compute.snapshots.get(@snapshot_id)
|
129
277
|
|
130
|
-
|
278
|
+
snapshots.count > 0 &&
|
279
|
+
snapshots[0].type == 'snapshot'
|
131
280
|
end
|
132
281
|
|
133
|
-
tests('
|
282
|
+
tests('Get Snapshot').succeeds do
|
283
|
+
volume = compute.volumes.get(@datacenter_id, @volume_id)
|
134
284
|
snapshot = compute.snapshots.get(@snapshot_id)
|
135
285
|
|
136
|
-
snapshot.
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
286
|
+
snapshot.id == @snapshot_id &&
|
287
|
+
snapshot.name == 'Fog Test' &&
|
288
|
+
snapshot.description.include?('Fog') &&
|
289
|
+
snapshot.type == 'snapshot' &&
|
290
|
+
snapshot.location == 'us/las' &&
|
291
|
+
snapshot.size == volume.size &&
|
292
|
+
snapshot.cpu_hot_plug == volume.cpu_hot_plug &&
|
293
|
+
snapshot.cpu_hot_unplug == volume.cpu_hot_unplug &&
|
294
|
+
snapshot.ram_hot_plug == volume.ram_hot_plug &&
|
295
|
+
snapshot.ram_hot_unplug == volume.ram_hot_unplug &&
|
296
|
+
snapshot.nic_hot_plug == volume.nic_hot_plug &&
|
297
|
+
snapshot.nic_hot_unplug == volume.nic_hot_unplug &&
|
298
|
+
snapshot.disc_virtio_hot_plug == volume.disc_virtio_hot_plug &&
|
299
|
+
snapshot.disc_virtio_hot_unplug == volume.disc_virtio_hot_unplug &&
|
300
|
+
snapshot.disc_scsi_hot_plug == volume.disc_scsi_hot_plug &&
|
301
|
+
snapshot.disc_scsi_hot_unplug == volume.disc_scsi_hot_unplug &&
|
302
|
+
snapshot.licence_type == volume.licence_type
|
303
|
+
end
|
304
|
+
|
305
|
+
tests('Restore Snapshot').succeeds do
|
143
306
|
volume = compute.volumes.get(@datacenter_id, @volume_id)
|
144
307
|
|
145
|
-
volume.restore_snapshot(@snapshot_id)
|
308
|
+
volume.restore_snapshot(@snapshot_id)
|
146
309
|
end
|
147
310
|
|
148
|
-
tests('
|
149
|
-
|
311
|
+
tests('Update Snapshot').succeeds do
|
312
|
+
snapshot = compute.snapshots.get(@snapshot_id)
|
150
313
|
|
151
|
-
|
314
|
+
snapshot.name = snapshot.name + ' - RENAME'
|
315
|
+
snapshot.description = snapshot.description + ' - RENAME'
|
316
|
+
snapshot.update
|
152
317
|
|
153
|
-
|
154
|
-
|
155
|
-
img.licence_type == 'LINUX'
|
156
|
-
end
|
318
|
+
sleep(30) if ENV["FOG_MOCK"] != "true"
|
319
|
+
snapshot = compute.snapshots.get(@snapshot_id)
|
157
320
|
|
158
|
-
|
321
|
+
snapshot.name == 'Fog Test - RENAME' &&
|
322
|
+
snapshot.description.include?('Fog') &&
|
323
|
+
snapshot.description.include?('- RENAME')
|
159
324
|
end
|
160
325
|
|
161
|
-
tests('
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
326
|
+
tests('Create Server').succeeds do
|
327
|
+
server = compute.servers.create(:datacenter_id => @datacenter_id,
|
328
|
+
:name => 'Fog Test',
|
329
|
+
:ram => 1024,
|
330
|
+
:cores => 1,
|
331
|
+
:availability_zone => 'ZONE_1',
|
332
|
+
:cpu_family => 'INTEL_XEON')
|
333
|
+
server.wait_for {ready?}
|
167
334
|
|
168
|
-
|
169
|
-
tests('should update an image').succeeds do
|
170
|
-
image = compute.images.get(@image_id)
|
171
|
-
image.licence_type = 'UNKNOWN'
|
172
|
-
image.update
|
335
|
+
@server_id = server.id
|
173
336
|
|
174
|
-
|
175
|
-
|
176
|
-
|
337
|
+
server.type == 'server' &&
|
338
|
+
server.name == 'Fog Test' &&
|
339
|
+
server.ram == 1024 &&
|
340
|
+
server.cores == 1 &&
|
341
|
+
server.availability_zone == 'ZONE_1' &&
|
342
|
+
server.cpu_family == 'INTEL_XEON'
|
343
|
+
end
|
344
|
+
|
345
|
+
tests('Create Server Composite').succeeds do
|
346
|
+
volumes = [
|
347
|
+
{
|
348
|
+
name: 'Fog Test',
|
349
|
+
size: 2,
|
350
|
+
bus: 'VIRTIO',
|
351
|
+
type: 'HDD',
|
352
|
+
licence_type: 'UNKNOWN',
|
353
|
+
availability_zone: 'ZONE_3'
|
354
|
+
}
|
355
|
+
]
|
356
|
+
nics = [
|
357
|
+
{
|
358
|
+
name: 'Fog Test',
|
359
|
+
dhcp: 'true',
|
360
|
+
lan: 1,
|
361
|
+
firewallActive: true,
|
362
|
+
nat: false,
|
363
|
+
firewallrules: [
|
364
|
+
{
|
365
|
+
name: 'SSH',
|
366
|
+
protocol: 'TCP',
|
367
|
+
sourceMac: '01:23:45:67:89:00',
|
368
|
+
portRangeStart: 22,
|
369
|
+
portRangeEnd: 22
|
370
|
+
}
|
371
|
+
]
|
372
|
+
}
|
373
|
+
]
|
177
374
|
|
178
|
-
tests('should create a server').succeeds do
|
179
375
|
server = compute.servers.create(:datacenter_id => @datacenter_id,
|
180
|
-
:name => '
|
181
|
-
:
|
182
|
-
:
|
183
|
-
:
|
184
|
-
|
376
|
+
:name => 'Fog Test Composite',
|
377
|
+
:ram => 1024,
|
378
|
+
:cores => 1,
|
379
|
+
:volumes => volumes,
|
380
|
+
:nics => nics)
|
381
|
+
server.wait_for {ready?}
|
185
382
|
|
186
|
-
@
|
383
|
+
@composite_server_id = server.id
|
187
384
|
|
188
|
-
server.
|
189
|
-
|
190
|
-
|
385
|
+
server.type == 'server' &&
|
386
|
+
server.name == 'Fog Test Composite' &&
|
387
|
+
server.ram == 1024 &&
|
388
|
+
server.cores == 1 &&
|
389
|
+
server.nics.count > 0 &&
|
390
|
+
server.volumes.count > 0
|
191
391
|
end
|
192
392
|
|
193
|
-
tests('
|
194
|
-
|
393
|
+
tests('List Servers').succeeds do
|
394
|
+
servers = compute.servers.all(@datacenter_id)
|
195
395
|
|
196
|
-
|
197
|
-
|
198
|
-
server.ram == 2048
|
396
|
+
servers.count > 0 &&
|
397
|
+
servers[0].type == 'server'
|
199
398
|
end
|
200
399
|
|
201
|
-
tests('
|
202
|
-
|
400
|
+
tests('Get Server').succeeds do
|
401
|
+
server = compute.servers.get(@datacenter_id, @server_id)
|
203
402
|
|
204
|
-
|
403
|
+
server.id == @server_id &&
|
404
|
+
server.type == 'server' &&
|
405
|
+
server.name == 'Fog Test' &&
|
406
|
+
server.cores == 1 &&
|
407
|
+
server.ram == 1024 &&
|
408
|
+
server.availability_zone == 'ZONE_1' &&
|
409
|
+
server.cpu_family == 'INTEL_XEON'
|
205
410
|
end
|
206
411
|
|
207
|
-
tests('
|
412
|
+
tests('Update Server').succeeds do
|
208
413
|
server = compute.servers.get(@datacenter_id, @server_id)
|
209
414
|
|
210
|
-
server.name = server.name + '
|
415
|
+
server.name = server.name + ' RENAME'
|
211
416
|
server.update
|
212
417
|
|
213
|
-
server.wait_for {
|
418
|
+
server.wait_for {ready?}
|
214
419
|
|
215
|
-
server.
|
420
|
+
server.id == @server_id &&
|
421
|
+
server.name == 'Fog Test RENAME'
|
216
422
|
end
|
217
423
|
|
218
|
-
tests('
|
219
|
-
|
220
|
-
|
221
|
-
volume = server.attach_volume(@volume_id)
|
424
|
+
tests('Attach Volume').succeeds do
|
425
|
+
volume = compute.attach_volume(@datacenter_id, @server_id, @volume_id)
|
222
426
|
|
223
427
|
sleep(60) if ENV["FOG_MOCK"] != "true"
|
224
428
|
|
225
|
-
volume['id'] == @volume_id
|
429
|
+
volume.body['id'] == @volume_id &&
|
430
|
+
volume.body['properties']['name'] == 'Fog Test - RENAME' &&
|
431
|
+
volume.body['properties']['size'] == 5 &&
|
432
|
+
volume.body['properties']['type'] == 'HDD' &&
|
433
|
+
volume.body['properties']['licenceType'] == 'LINUX'
|
226
434
|
end
|
227
435
|
|
228
|
-
tests('
|
436
|
+
tests('List Attached Volumes').succeeds do
|
229
437
|
server = compute.servers.get(@datacenter_id, @server_id)
|
230
438
|
|
231
439
|
volumes = server.list_volumes
|
440
|
+
|
441
|
+
volumes['items'].count > 0
|
232
442
|
end
|
233
443
|
|
234
|
-
tests('
|
444
|
+
tests('Get Attached Volume').succeeds do
|
235
445
|
server = compute.servers.get(@datacenter_id, @server_id)
|
236
446
|
|
237
447
|
volume = server.get_attached_volume(@volume_id)
|
448
|
+
|
449
|
+
volume['name'] == 'Fog Test - RENAME' &&
|
450
|
+
volume['size'] == 5 &&
|
451
|
+
volume['bus'] == 'VIRTIO' &&
|
452
|
+
volume['type'] == 'HDD'
|
238
453
|
end
|
239
454
|
|
240
|
-
tests('
|
455
|
+
tests('Detach Volume').succeeds do
|
241
456
|
server = compute.servers.get(@datacenter_id, @server_id)
|
242
457
|
|
243
458
|
server.detach_volume(@volume_id)
|
244
459
|
end
|
245
460
|
|
246
|
-
tests('
|
247
|
-
|
248
|
-
|
249
|
-
|
461
|
+
tests('Attach CDROM').succeeds do
|
462
|
+
images = compute.images.all
|
463
|
+
cd_image = images.find do |img|
|
464
|
+
img.image_type == 'CDROM' &&
|
465
|
+
img.licence_type == 'LINUX'
|
466
|
+
end
|
467
|
+
@cd_image_id = cd_image.id
|
250
468
|
|
251
|
-
|
469
|
+
server = compute.servers.get(@datacenter_id, @server_id)
|
470
|
+
sleep(30) if ENV["FOG_MOCK"] != "true"
|
252
471
|
|
253
|
-
|
472
|
+
cdrom = server.attach_cdrom(@cd_image_id)
|
473
|
+
sleep(120) if ENV["FOG_MOCK"] != "true"
|
254
474
|
|
255
475
|
@cdrom_id = cdrom['id']
|
476
|
+
|
477
|
+
cdrom['id'] == @cd_image_id &&
|
478
|
+
!cdrom['name'].to_s.empty?
|
256
479
|
end
|
257
480
|
|
258
|
-
tests('
|
481
|
+
tests('List Attached CDROMs').succeeds do
|
259
482
|
server = compute.servers.get(@datacenter_id, @server_id)
|
260
483
|
|
261
|
-
|
484
|
+
server.list_cdroms.count > 0
|
262
485
|
end
|
263
486
|
|
264
|
-
if ENV["FOG_MOCK"]
|
265
|
-
tests('
|
487
|
+
if ENV["FOG_MOCK"] == "true"
|
488
|
+
tests('Get Attached CDROM').succeeds do
|
266
489
|
server = compute.servers.get(@datacenter_id, @server_id)
|
267
490
|
|
268
|
-
|
269
|
-
|
270
|
-
|
271
|
-
|
272
|
-
end
|
491
|
+
cdrom = server.get_attached_cdrom(@cdrom_id)
|
492
|
+
|
493
|
+
cdrom['id'] == @cdrom_id &&
|
494
|
+
!cdrom['name'].empty?
|
273
495
|
end
|
274
496
|
end
|
275
497
|
|
276
|
-
tests('
|
498
|
+
tests('Detach CDROM').succeeds do
|
277
499
|
server = compute.servers.get(@datacenter_id, @server_id)
|
278
500
|
|
279
|
-
server.
|
501
|
+
if !server.list_cdroms['items'].empty?
|
502
|
+
server.detach_cdrom(@image_id)
|
503
|
+
else
|
504
|
+
server.list_cdroms
|
505
|
+
end
|
280
506
|
end
|
281
507
|
|
282
|
-
tests('
|
508
|
+
tests('Stop Server').succeeds do
|
283
509
|
server = compute.servers.get(@datacenter_id, @server_id)
|
284
510
|
|
285
511
|
server.stop
|
286
512
|
end
|
287
513
|
|
288
|
-
tests('
|
514
|
+
tests('Start Server').succeeds do
|
289
515
|
server = compute.servers.get(@datacenter_id, @server_id)
|
290
516
|
|
291
517
|
server.stop
|
292
518
|
end
|
293
519
|
|
294
|
-
tests('
|
295
|
-
|
296
|
-
:name => 'fog-demo-lan',
|
297
|
-
:public => false)
|
298
|
-
|
299
|
-
@lan_id = lan.id
|
520
|
+
tests('Reset Server').succeeds do
|
521
|
+
server = compute.servers.get(@datacenter_id, @server_id)
|
300
522
|
|
301
|
-
|
523
|
+
server.reboot
|
302
524
|
end
|
303
525
|
|
304
|
-
tests('
|
526
|
+
tests('Reserve IP Block').succeeds do
|
527
|
+
ip_block = compute.ip_blocks.create(:location => 'us/las',
|
528
|
+
:size => 2,
|
529
|
+
:name => 'Fog Test')
|
530
|
+
|
305
531
|
sleep(60) if ENV["FOG_MOCK"] != "true"
|
306
532
|
|
307
|
-
|
533
|
+
@ip_block_id = ip_block.id
|
534
|
+
|
535
|
+
ip_block.name == 'Fog Test' &&
|
536
|
+
ip_block.size == 2 &&
|
537
|
+
ip_block.location == 'us/las'
|
308
538
|
end
|
309
539
|
|
310
|
-
tests('
|
311
|
-
|
540
|
+
tests('List IP Blocks').succeeds do
|
541
|
+
ip_blocks = compute.ip_blocks.all
|
312
542
|
|
313
|
-
|
543
|
+
ip_blocks.count > 0 &&
|
544
|
+
ip_blocks[0].type == 'ipblock'
|
314
545
|
end
|
315
546
|
|
316
|
-
tests('
|
317
|
-
|
318
|
-
|
319
|
-
|
547
|
+
tests('Get IP Block').succeeds do
|
548
|
+
ip_block = compute.ip_blocks.get(@ip_block_id)
|
549
|
+
|
550
|
+
ip_block.id == @ip_block_id &&
|
551
|
+
ip_block.type == 'ipblock' &&
|
552
|
+
ip_block.name == 'Fog Test' &&
|
553
|
+
ip_block.size == 2 &&
|
554
|
+
ip_block.location == 'us/las' &&
|
555
|
+
ip_block.ips.count == 2
|
320
556
|
end
|
321
557
|
|
322
|
-
tests('
|
558
|
+
tests('Create NIC').succeeds do
|
559
|
+
sleep(60) if ENV["FOG_MOCK"] != "true"
|
323
560
|
nic = compute.nics.create(:datacenter_id => @datacenter_id,
|
324
|
-
:server_id
|
325
|
-
:lan
|
326
|
-
:name
|
327
|
-
:
|
561
|
+
:server_id => @composite_server_id,
|
562
|
+
:lan => @lan_id,
|
563
|
+
:name => 'Fog Test',
|
564
|
+
:dhcp => true,
|
565
|
+
:firewall_active => true,
|
566
|
+
:ips => ['10.0.0.1'],
|
567
|
+
:nat => false)
|
568
|
+
nic.type == 'nic' &&
|
569
|
+
nic.name == 'Fog Test' &&
|
570
|
+
nic.lan.to_s == @lan_id.to_s &&
|
571
|
+
nic.firewall_active &&
|
572
|
+
nic.ips.is_a?(Array)
|
573
|
+
end
|
328
574
|
|
329
|
-
|
575
|
+
tests('List NICs').succeeds do
|
576
|
+
nics = compute.nics.all(@datacenter_id, @composite_server_id)
|
330
577
|
|
331
|
-
|
578
|
+
@nic_id = nics[0].id
|
579
|
+
|
580
|
+
nics.count > 0 &&
|
581
|
+
nics[0].type == 'nic'
|
332
582
|
end
|
333
583
|
|
334
|
-
tests('
|
584
|
+
tests('Get NIC').succeeds do
|
585
|
+
nic = compute.nics.get(@datacenter_id, @composite_server_id, @nic_id)
|
586
|
+
|
587
|
+
nic.id == @nic_id &&
|
588
|
+
nic.type == 'nic' &&
|
589
|
+
nic.name == 'Fog Test' &&
|
590
|
+
nic.dhcp &&
|
591
|
+
nic.lan.to_s == @lan_id.to_s &&
|
592
|
+
nic.ips.is_a?(Array)
|
593
|
+
end
|
594
|
+
|
595
|
+
tests('Update NIC').succeeds do
|
596
|
+
nic = compute.nics.get(@datacenter_id, @composite_server_id, @nic_id)
|
597
|
+
nic.name = nic.name + ' - RENAME'
|
598
|
+
nic.update
|
599
|
+
|
600
|
+
nic.name == 'Fog Test - RENAME'
|
601
|
+
end
|
602
|
+
|
603
|
+
tests('Create Firewall Rule').succeeds do
|
604
|
+
firewall_rule = compute.firewall_rules.create(:datacenter_id => @datacenter_id,
|
605
|
+
:server_id => @composite_server_id,
|
606
|
+
:nic_id => @nic_id,
|
607
|
+
:name => 'SSH',
|
608
|
+
:protocol => 'TCP',
|
609
|
+
:source_mac => '01:23:45:67:89:00',
|
610
|
+
:port_range_start => '22',
|
611
|
+
:port_range_end => '22')
|
612
|
+
|
335
613
|
sleep(60) if ENV["FOG_MOCK"] != "true"
|
336
614
|
|
337
|
-
|
615
|
+
@firewall_rule_id = firewall_rule.id
|
616
|
+
|
617
|
+
firewall_rule.type == 'firewall-rule' &&
|
618
|
+
firewall_rule.name == 'SSH' &&
|
619
|
+
firewall_rule.protocol == 'TCP' &&
|
620
|
+
firewall_rule.source_mac == '01:23:45:67:89:00' &&
|
621
|
+
firewall_rule.source_ip.nil? &&
|
622
|
+
firewall_rule.target_ip.nil? &&
|
623
|
+
firewall_rule.port_range_start.to_s == '22' &&
|
624
|
+
firewall_rule.port_range_end.to_s == '22' &&
|
625
|
+
firewall_rule.icmp_type.nil? &&
|
626
|
+
firewall_rule.icmp_code.nil?
|
338
627
|
end
|
339
628
|
|
340
|
-
tests('
|
341
|
-
|
629
|
+
tests('List Firewall Rules').succeeds do
|
630
|
+
firewall_rules = compute.firewall_rules.all(@datacenter_id, @composite_server_id, @nic_id)
|
342
631
|
|
343
|
-
|
632
|
+
firewall_rules.count > 0 &&
|
633
|
+
firewall_rules[0].type == 'firewall-rule'
|
344
634
|
end
|
345
635
|
|
346
|
-
tests('
|
347
|
-
|
348
|
-
|
349
|
-
|
636
|
+
tests('Get Firewall Rule').succeeds do
|
637
|
+
firewall_rule = compute.firewall_rules.get(@datacenter_id, @composite_server_id, @nic_id, @firewall_rule_id)
|
638
|
+
|
639
|
+
firewall_rule.id == @firewall_rule_id &&
|
640
|
+
firewall_rule.type == 'firewall-rule' &&
|
641
|
+
firewall_rule.name == 'SSH' &&
|
642
|
+
firewall_rule.protocol == 'TCP' &&
|
643
|
+
firewall_rule.source_mac == '01:23:45:67:89:00' &&
|
644
|
+
firewall_rule.source_ip.nil? &&
|
645
|
+
firewall_rule.target_ip.nil? &&
|
646
|
+
firewall_rule.port_range_start.to_s == '22' &&
|
647
|
+
firewall_rule.port_range_end.to_s == '22' &&
|
648
|
+
firewall_rule.icmp_type.nil? &&
|
649
|
+
firewall_rule.icmp_code.nil?
|
350
650
|
end
|
351
651
|
|
352
|
-
tests('
|
652
|
+
tests('Create Load Balancer').succeeds do
|
353
653
|
load_balancer = compute.load_balancers.create(:datacenter_id => @datacenter_id,
|
354
|
-
:name
|
654
|
+
:name => 'Fog Test',
|
655
|
+
:dhcp => true)
|
355
656
|
|
356
657
|
sleep(60) if ENV["FOG_MOCK"] != "true"
|
357
658
|
|
358
659
|
@load_balancer_id = load_balancer.id
|
359
660
|
|
360
|
-
load_balancer.
|
661
|
+
load_balancer.type == 'loadbalancer' &&
|
662
|
+
load_balancer.name == 'Fog Test' &&
|
663
|
+
load_balancer.dhcp
|
361
664
|
end
|
362
665
|
|
363
|
-
tests('
|
364
|
-
|
666
|
+
tests('List Load Balancers').succeeds do
|
667
|
+
load_balancers = compute.load_balancers.all(@datacenter_id)
|
365
668
|
|
366
|
-
|
669
|
+
load_balancers.count > 0 &&
|
670
|
+
load_balancers[0].type == 'loadbalancer'
|
367
671
|
end
|
368
672
|
|
369
|
-
tests('
|
370
|
-
|
673
|
+
tests('Get Load Balancer').succeeds do
|
674
|
+
load_balancer = compute.load_balancers.get(@datacenter_id, @load_balancer_id)
|
371
675
|
|
372
|
-
|
676
|
+
load_balancer.id == @load_balancer_id &&
|
677
|
+
load_balancer.type == 'loadbalancer' &&
|
678
|
+
load_balancer.name == 'Fog Test' &&
|
679
|
+
load_balancer.dhcp == true
|
373
680
|
end
|
374
681
|
|
375
|
-
tests('
|
682
|
+
tests('Update Load Balancer').succeeds do
|
376
683
|
load_balancer = compute.load_balancers.get(@datacenter_id, @load_balancer_id)
|
377
|
-
load_balancer.name = load_balancer.name + ' -
|
684
|
+
load_balancer.name = load_balancer.name + ' - RENAME'
|
378
685
|
load_balancer.update
|
686
|
+
|
687
|
+
sleep(60) if ENV["FOG_MOCK"] != "true"
|
688
|
+
|
689
|
+
load_balancer.id == @load_balancer_id &&
|
690
|
+
load_balancer.type == 'loadbalancer' &&
|
691
|
+
load_balancer.name == 'Fog Test - RENAME'
|
379
692
|
end
|
380
693
|
|
381
|
-
tests('
|
694
|
+
tests('Associate Balanced NIC').succeeds do
|
382
695
|
load_balancer = compute.load_balancers.get(@datacenter_id, @load_balancer_id)
|
383
696
|
nic = load_balancer.associate_nic(@nic_id)
|
384
697
|
|
385
698
|
sleep(60) if ENV["FOG_MOCK"] != "true"
|
386
699
|
|
387
|
-
nic
|
700
|
+
nic['id'] == @nic_id &&
|
701
|
+
nic['name'] == 'Fog Test - RENAME'
|
388
702
|
end
|
389
703
|
|
390
|
-
tests('
|
704
|
+
tests('List Balanced NICs').succeeds do
|
391
705
|
load_balancer = compute.load_balancers.get(@datacenter_id, @load_balancer_id)
|
706
|
+
balanced_nics = load_balancer.list_nics
|
392
707
|
|
393
|
-
|
708
|
+
balanced_nics.count > 0 &&
|
709
|
+
balanced_nics[0]['type'] == 'nic'
|
394
710
|
end
|
395
711
|
|
396
|
-
tests('
|
712
|
+
tests('Get Balanced NIC').succeeds do
|
397
713
|
load_balancer = compute.load_balancers.get(@datacenter_id, @load_balancer_id)
|
398
|
-
|
714
|
+
balanced_nic = load_balancer.get_nic(@nic_id)
|
399
715
|
|
400
|
-
|
716
|
+
balanced_nic['id'].to_s == @nic_id.to_s &&
|
717
|
+
balanced_nic['type'] == 'nic' &&
|
718
|
+
balanced_nic['name'] == 'Fog Test - RENAME' &&
|
719
|
+
((balanced_nic['mac'] =~ /^([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})$/) == 0) &&
|
720
|
+
balanced_nic['ips'].count > 0 &&
|
721
|
+
['true', 'false', true, false].include?(balanced_nic['nat'])
|
401
722
|
end
|
402
723
|
|
403
|
-
tests('
|
404
|
-
|
405
|
-
result = load_balancer.remove_nic_association(@nic_id)
|
724
|
+
tests('List Resources').succeeds do
|
725
|
+
resources = compute.resources.all
|
406
726
|
|
407
|
-
|
727
|
+
datacenter = resources.find do |r|
|
728
|
+
r.type == 'datacenter'
|
729
|
+
end
|
408
730
|
|
409
|
-
|
731
|
+
image = resources.find do |r|
|
732
|
+
r.type == 'image'
|
733
|
+
end
|
734
|
+
|
735
|
+
snapshot = resources.find do |r|
|
736
|
+
r.type == 'snapshot'
|
737
|
+
end
|
738
|
+
|
739
|
+
ipblock = resources.find do |r|
|
740
|
+
r.type == 'ipblock'
|
741
|
+
end
|
742
|
+
|
743
|
+
@dc_id = datacenter.id
|
744
|
+
@img_id = image.id
|
745
|
+
@snp_id = snapshot.id
|
746
|
+
@ipb_id = ipblock.id
|
747
|
+
|
748
|
+
resources.count > 0
|
410
749
|
end
|
411
750
|
|
412
|
-
tests('
|
413
|
-
|
414
|
-
|
415
|
-
|
751
|
+
tests('List Datacenter Resources').succeeds do
|
752
|
+
resources = compute.resources.get_by_type('datacenter')
|
753
|
+
|
754
|
+
resources.count > 0 &&
|
755
|
+
resources[0].type == 'datacenter'
|
416
756
|
end
|
417
757
|
|
418
|
-
tests('
|
419
|
-
|
420
|
-
:size => 1,
|
421
|
-
:name => 'fog-demo-ip-block')
|
758
|
+
tests('List Image Resources').succeeds do
|
759
|
+
resources = compute.resources.get_by_type('image')
|
422
760
|
|
423
|
-
|
761
|
+
resources.count > 0 &&
|
762
|
+
resources[0].type == 'image'
|
763
|
+
end
|
424
764
|
|
425
|
-
|
426
|
-
|
765
|
+
tests('List Snapshot Resources').succeeds do
|
766
|
+
resources = compute.resources.get_by_type('snapshot')
|
767
|
+
|
768
|
+
resources.count > 0 &&
|
769
|
+
resources[0].type == 'snapshot'
|
427
770
|
end
|
428
771
|
|
429
|
-
tests('
|
430
|
-
|
772
|
+
tests('List IP Block Resources').succeeds do
|
773
|
+
resources = compute.resources.get_by_type('ipblock')
|
431
774
|
|
432
|
-
|
775
|
+
resources.count > 0 &&
|
776
|
+
resources[0].type == 'ipblock'
|
433
777
|
end
|
434
778
|
|
435
|
-
tests('
|
436
|
-
|
779
|
+
tests('Get Datacenter Resource').succeeds do
|
780
|
+
resource = compute.resources.get_resource_by_type('datacenter', @dc_id)
|
437
781
|
|
438
|
-
|
782
|
+
resource.id == @dc_id &&
|
783
|
+
resource.type == 'datacenter'
|
439
784
|
end
|
440
785
|
|
441
|
-
tests('
|
442
|
-
|
443
|
-
:server_id => @server_id,
|
444
|
-
:nic_id => @nic_id,
|
445
|
-
:name => 'fog-demo-firewall-rule',
|
446
|
-
:protocol => 'TCP')
|
786
|
+
tests('Get Image Resource').succeeds do
|
787
|
+
resource = compute.resources.get_resource_by_type('image', @img_id)
|
447
788
|
|
448
|
-
|
789
|
+
resource.id == @img_id &&
|
790
|
+
resource.type == 'image'
|
791
|
+
end
|
449
792
|
|
450
|
-
|
793
|
+
tests('Get Snapshot Resource').succeeds do
|
794
|
+
resource = compute.resources.get_resource_by_type('snapshot', @snp_id)
|
451
795
|
|
452
|
-
|
796
|
+
resource.id == @snp_id &&
|
797
|
+
resource.type == 'snapshot'
|
453
798
|
end
|
454
799
|
|
455
|
-
tests('
|
456
|
-
|
800
|
+
tests('Get IP Block Resource').succeeds do
|
801
|
+
resource = compute.resources.get_resource_by_type('ipblock', @ipb_id)
|
457
802
|
|
458
|
-
|
803
|
+
resource.id == @ipb_id &&
|
804
|
+
resource.type == 'ipblock'
|
459
805
|
end
|
806
|
+
end
|
807
|
+
|
808
|
+
tests('user management success') do
|
809
|
+
Excon.defaults[:connection_timeout] = 500
|
810
|
+
|
811
|
+
tests('Create Group').succeeds do
|
812
|
+
group = compute.groups.create(:name => 'Fog Test',
|
813
|
+
:create_datacenter => true,
|
814
|
+
:create_snapshot => true,
|
815
|
+
:reserve_ip => true,
|
816
|
+
:access_activity_log => true)
|
817
|
+
group.wait_for {ready?}
|
460
818
|
|
461
|
-
|
462
|
-
firewall_rules = compute.firewall_rules.all(@datacenter_id, @server_id, @nic_id)
|
819
|
+
@group_id = group.id
|
463
820
|
|
464
|
-
|
821
|
+
group.type == 'group' &&
|
822
|
+
group.name == 'Fog Test' &&
|
823
|
+
group.create_datacenter == true &&
|
824
|
+
group.create_snapshot == true &&
|
825
|
+
group.reserve_ip == true &&
|
826
|
+
group.access_activity_log == true
|
465
827
|
end
|
466
828
|
|
467
|
-
tests('
|
468
|
-
|
469
|
-
|
470
|
-
|
829
|
+
tests('List Groups').succeeds do
|
830
|
+
groups = compute.groups.all
|
831
|
+
|
832
|
+
groups.count > 0 &&
|
833
|
+
groups[0].type = 'group'
|
471
834
|
end
|
472
835
|
|
473
|
-
tests('
|
474
|
-
|
836
|
+
tests('Get Group').succeeds do
|
837
|
+
group = compute.groups.get(@group_id)
|
475
838
|
|
476
|
-
|
839
|
+
group.id == @group_id &&
|
840
|
+
group.type == 'group' &&
|
841
|
+
group.name == 'Fog Test' &&
|
842
|
+
group.create_datacenter == true &&
|
843
|
+
group.create_snapshot == true &&
|
844
|
+
group.reserve_ip == true &&
|
845
|
+
group.access_activity_log == true
|
477
846
|
end
|
478
847
|
|
479
|
-
tests('
|
480
|
-
|
848
|
+
tests('Update Group').succeeds do
|
849
|
+
group = compute.groups.get(@group_id)
|
850
|
+
group.name = group.name + ' - RENAME'
|
851
|
+
group.create_datacenter = false
|
852
|
+
group.update
|
853
|
+
group.wait_for {ready?}
|
854
|
+
group.reload
|
481
855
|
|
482
|
-
|
856
|
+
group.id == @group_id &&
|
857
|
+
group.type == 'group' &&
|
858
|
+
group.name == 'Fog Test - RENAME' &&
|
859
|
+
group.create_datacenter == false
|
483
860
|
end
|
484
861
|
|
485
|
-
tests('
|
486
|
-
|
862
|
+
tests('Create Share').succeeds do
|
863
|
+
share = compute.shares.create(:group_id => @group_id,
|
864
|
+
:resource_id => @image_id,
|
865
|
+
:edit_privilege => true,
|
866
|
+
:share_privilege => true)
|
867
|
+
@share_id = share.id
|
487
868
|
|
488
|
-
|
869
|
+
share.type == 'resource' &&
|
870
|
+
share.edit_privilege == true &&
|
871
|
+
share.share_privilege == true
|
872
|
+
end
|
873
|
+
|
874
|
+
tests('List Shares').succeeds do
|
875
|
+
shares = compute.shares.all(@group_id)
|
876
|
+
|
877
|
+
shares.count > 0 &&
|
878
|
+
shares[0].type = 'resource'
|
879
|
+
end
|
880
|
+
|
881
|
+
tests('Get Share').succeeds do
|
882
|
+
share = compute.shares.get(@group_id, @image_id)
|
883
|
+
|
884
|
+
share.id == @image_id &&
|
885
|
+
share.type == 'resource' &&
|
886
|
+
share.edit_privilege == true &&
|
887
|
+
share.share_privilege == true
|
888
|
+
end
|
889
|
+
|
890
|
+
tests('Update Share').succeeds do
|
891
|
+
share = compute.shares.get(@group_id, @image_id)
|
892
|
+
share.edit_privilege = false
|
893
|
+
share.update
|
894
|
+
|
895
|
+
share.id == @image_id &&
|
896
|
+
share.type == 'resource' &&
|
897
|
+
share.edit_privilege == false
|
898
|
+
end
|
899
|
+
|
900
|
+
tests('Create User').succeeds do
|
901
|
+
user = compute.users.create(:firstname => 'John',
|
902
|
+
:lastname => 'Doe',
|
903
|
+
:email => 'no-reply@example.com',
|
904
|
+
:password => 'secretpassword123',
|
905
|
+
:administrator => true,
|
906
|
+
:force_sec_auth => false)
|
907
|
+
user.wait_for {ready?}
|
908
|
+
|
909
|
+
@user_id = user.id
|
910
|
+
|
911
|
+
user.type == 'user' &&
|
912
|
+
user.firstname == 'John' &&
|
913
|
+
user.lastname == 'Doe' &&
|
914
|
+
user.email == 'no-reply@example.com' &&
|
915
|
+
user.administrator == true &&
|
916
|
+
user.force_sec_auth == false
|
917
|
+
end
|
918
|
+
|
919
|
+
tests('List Users').succeeds do
|
920
|
+
users = compute.users.all
|
921
|
+
|
922
|
+
users.count > 0 &&
|
923
|
+
users[0].type = 'user'
|
924
|
+
end
|
925
|
+
|
926
|
+
tests('Get User').succeeds do
|
927
|
+
user = compute.users.get(@user_id)
|
928
|
+
|
929
|
+
user.id == @user_id &&
|
930
|
+
user.type == 'user' &&
|
931
|
+
user.firstname == 'John' &&
|
932
|
+
user.lastname == 'Doe' &&
|
933
|
+
user.email == 'no-reply@example.com' &&
|
934
|
+
user.administrator == true &&
|
935
|
+
user.force_sec_auth == false &&
|
936
|
+
user.sec_auth_active == false
|
937
|
+
end
|
938
|
+
|
939
|
+
tests('Update User').succeeds do
|
940
|
+
user = compute.users.get(@user_id)
|
941
|
+
user.administrator = false
|
942
|
+
user.update
|
943
|
+
|
944
|
+
user.id == @user_id &&
|
945
|
+
user.type == 'user' &&
|
946
|
+
user.administrator == false &&
|
947
|
+
user.firstname == 'John' &&
|
948
|
+
user.lastname == 'Doe' &&
|
949
|
+
user.email == 'no-reply@example.com' &&
|
950
|
+
user.force_sec_auth == false
|
951
|
+
end
|
952
|
+
|
953
|
+
tests('Add User to Group').succeeds do
|
954
|
+
user = compute.users.add_group_user(@group_id, @user_id)
|
955
|
+
|
956
|
+
user.id == @user_id &&
|
957
|
+
user.type == 'user'
|
958
|
+
end
|
959
|
+
|
960
|
+
tests('Remove User from Group').succeeds do
|
961
|
+
compute.users.remove_group_user(@group_id, @user_id)
|
962
|
+
end
|
963
|
+
end
|
964
|
+
|
965
|
+
tests('user management failure') do
|
966
|
+
tests('Create Group Failure (Missing Required Parameter)') do
|
967
|
+
begin
|
968
|
+
options = {
|
969
|
+
create_datacenter: true
|
970
|
+
}
|
971
|
+
|
972
|
+
compute.create_group(options)
|
973
|
+
rescue Exception => e
|
974
|
+
returns(true, "exception contains 'Attribute 'name' is required'") {
|
975
|
+
e.message.include? "Attribute 'name' is required"
|
976
|
+
}
|
977
|
+
end
|
978
|
+
end
|
979
|
+
|
980
|
+
tests('Get Group Failure (Nonexistent)') do
|
981
|
+
begin
|
982
|
+
compute.get_group('00000000-0000-0000-0000-000000000000')
|
983
|
+
rescue Exception => e
|
984
|
+
returns(true, 'exception contains \'Resource does not exist\'') {
|
985
|
+
e.message.include? 'Resource does not exist'
|
986
|
+
}
|
987
|
+
end
|
988
|
+
end
|
989
|
+
|
990
|
+
tests('Get share Failure (Nonexistent)') do
|
991
|
+
begin
|
992
|
+
compute.get_share(@group_id, '00000000-0000-0000-0000-000000000000')
|
993
|
+
rescue Exception => e
|
994
|
+
returns(true, 'exception contains \'Resource does not exist\'') {
|
995
|
+
e.message.include? 'Resource does not exist'
|
996
|
+
}
|
997
|
+
end
|
998
|
+
end
|
999
|
+
|
1000
|
+
tests('Create User Failure (Missing Required Parameter)') do
|
1001
|
+
begin
|
1002
|
+
options = {
|
1003
|
+
firstname: 'John',
|
1004
|
+
lastname: 'Doe'
|
1005
|
+
}
|
1006
|
+
|
1007
|
+
compute.create_user(options)
|
1008
|
+
rescue Exception => e
|
1009
|
+
returns(true, "exception contains 'Attribute 'email' is required'") {
|
1010
|
+
e.message.include? "Attribute 'email' is required"
|
1011
|
+
}
|
1012
|
+
end
|
1013
|
+
end
|
1014
|
+
|
1015
|
+
tests('Get User Failure (Nonexistent)') do
|
1016
|
+
begin
|
1017
|
+
compute.get_user('00000000-0000-0000-0000-000000000000')
|
1018
|
+
rescue Exception => e
|
1019
|
+
returns(true, 'exception contains \'Resource does not exist\'') {
|
1020
|
+
e.message.include? 'Resource does not exist'
|
1021
|
+
}
|
1022
|
+
end
|
1023
|
+
end
|
1024
|
+
end
|
1025
|
+
|
1026
|
+
tests('failure') do
|
1027
|
+
tests('Get Location Failure (Nonexistent)') do
|
1028
|
+
begin
|
1029
|
+
compute.get_location('00000000-0000-0000-0000-000000000000')
|
1030
|
+
rescue Exception => e
|
1031
|
+
returns(true, 'exception contains \'Resource does not exist\'') {
|
1032
|
+
e.message.include? 'Resource does not exist'
|
1033
|
+
}
|
1034
|
+
end
|
1035
|
+
end
|
1036
|
+
|
1037
|
+
tests('Create Datacenter Failure (Missing Required Parameter)') do
|
1038
|
+
options = {
|
1039
|
+
name: 'Fog Datacenter'
|
1040
|
+
}
|
1041
|
+
|
1042
|
+
begin
|
1043
|
+
compute.create_datacenter(options)
|
1044
|
+
rescue Exception => e
|
1045
|
+
returns(true, "exception contains 'Attribute 'location' is required'") {
|
1046
|
+
e.message.include? "Attribute 'location' is required"
|
1047
|
+
}
|
1048
|
+
end
|
1049
|
+
end
|
1050
|
+
|
1051
|
+
tests('Get Datacenter Failure (Nonexistent)') do
|
1052
|
+
begin
|
1053
|
+
compute.get_datacenter('00000000-0000-0000-0000-000000000000')
|
1054
|
+
rescue Exception => e
|
1055
|
+
returns(true, "exception contains 'Resource does not exist'") {
|
1056
|
+
e.message.include? 'Resource does not exist'
|
1057
|
+
}
|
1058
|
+
end
|
1059
|
+
end
|
1060
|
+
|
1061
|
+
tests('Get LAN Failure (Nonexistent)') do
|
1062
|
+
begin
|
1063
|
+
compute.get_lan('00000000-0000-0000-0000-000000000000', '00000000-0000-0000-0000-000000000000')
|
1064
|
+
rescue Exception => e
|
1065
|
+
returns(true, "exception contains 'Resource does not exist'") {
|
1066
|
+
e.message.include? 'Resource does not exist'
|
1067
|
+
}
|
1068
|
+
end
|
1069
|
+
end
|
1070
|
+
|
1071
|
+
tests('Get Image Failure (Nonexistent)') do
|
1072
|
+
begin
|
1073
|
+
compute.get_image('00000000-0000-0000-0000-000000000000')
|
1074
|
+
rescue Exception => e
|
1075
|
+
returns(true, "exception contains 'Resource does not exist'") {
|
1076
|
+
e.message.include? 'Resource does not exist'
|
1077
|
+
}
|
1078
|
+
end
|
1079
|
+
end
|
1080
|
+
|
1081
|
+
tests('Create Volume Failure (Missing Required Parameter)') do
|
1082
|
+
options = {
|
1083
|
+
name: 'Fog Test'
|
1084
|
+
}
|
1085
|
+
|
1086
|
+
begin
|
1087
|
+
compute.create_volume(@datacenter_id, options)
|
1088
|
+
rescue Exception => e
|
1089
|
+
returns(true, "exception contains 'Attribute 'size' is required'") {
|
1090
|
+
e.message.include? "Attribute 'size' is required"
|
1091
|
+
}
|
1092
|
+
end
|
1093
|
+
end
|
1094
|
+
|
1095
|
+
tests('Create Server Failure (Missing Required Parameter)') do
|
1096
|
+
options = {
|
1097
|
+
name: 'Fog Test',
|
1098
|
+
ram: 1024
|
1099
|
+
}
|
1100
|
+
|
1101
|
+
begin
|
1102
|
+
compute.create_server(@datacenter_id, options)
|
1103
|
+
rescue Exception => e
|
1104
|
+
returns(true, "exception contains 'Attribute 'cores' is required'") {
|
1105
|
+
e.message.include? "Attribute 'cores' is required"
|
1106
|
+
}
|
1107
|
+
end
|
1108
|
+
end
|
1109
|
+
|
1110
|
+
tests('Get Server Failure (Nonexistent)') do
|
1111
|
+
begin
|
1112
|
+
compute.get_server('00000000-0000-0000-0000-000000000000', '00000000-0000-0000-0000-000000000000')
|
1113
|
+
rescue Exception => e
|
1114
|
+
returns(true, "exception contains 'Resource does not exist'") {
|
1115
|
+
e.message.include? 'Resource does not exist'
|
1116
|
+
}
|
1117
|
+
end
|
489
1118
|
end
|
490
1119
|
|
491
|
-
tests('
|
1120
|
+
tests('Get Volume Failure (Nonexistent)') do
|
1121
|
+
begin
|
1122
|
+
compute.get_volume('00000000-0000-0000-0000-000000000000', '00000000-0000-0000-0000-000000000000')
|
1123
|
+
rescue Exception => e
|
1124
|
+
returns(true, "exception contains 'Resource does not exist'") {
|
1125
|
+
e.message.include? 'Resource does not exist'
|
1126
|
+
}
|
1127
|
+
end
|
1128
|
+
end
|
1129
|
+
|
1130
|
+
tests('Get Snapshot Failure (Nonexistent)') do
|
1131
|
+
begin
|
1132
|
+
compute.get_snapshot('00000000-0000-0000-0000-000000000000')
|
1133
|
+
rescue Exception => e
|
1134
|
+
returns(true, "exception contains 'Resource does not exist'") {
|
1135
|
+
e.message.include? 'Resource does not exist'
|
1136
|
+
}
|
1137
|
+
end
|
1138
|
+
end
|
1139
|
+
|
1140
|
+
tests('Get Request Failure (Nonexistent)') do
|
1141
|
+
begin
|
1142
|
+
compute.get_request('00000000-0000-0000-0000-000000000000')
|
1143
|
+
rescue Exception => e
|
1144
|
+
returns(true, "exception contains 'Resource does not exist'") {
|
1145
|
+
e.message.include? 'Resource does not exist'
|
1146
|
+
}
|
1147
|
+
end
|
1148
|
+
end
|
1149
|
+
|
1150
|
+
tests('Get IP Block Failure (Nonexistent)') do
|
1151
|
+
begin
|
1152
|
+
compute.get_ip_block('00000000-0000-0000-0000-000000000000')
|
1153
|
+
rescue Exception => e
|
1154
|
+
returns(true, 'exception contains \'Resource does not exist\'') {
|
1155
|
+
e.message.include? 'Resource does not exist'
|
1156
|
+
}
|
1157
|
+
end
|
1158
|
+
end
|
1159
|
+
|
1160
|
+
tests('Create NIC Failure (Missing Required Parameter)') do
|
1161
|
+
begin
|
1162
|
+
compute.nics.create(:datacenter_id => @datacenter_id,
|
1163
|
+
:server_id => @server_id,
|
1164
|
+
:name => 'Fog Test')
|
1165
|
+
rescue Exception => e
|
1166
|
+
returns(true, "exception contains 'lan is required for this operation'") {
|
1167
|
+
e.message.include? "lan is required for this operation"
|
1168
|
+
}
|
1169
|
+
end
|
1170
|
+
end
|
1171
|
+
|
1172
|
+
tests('Get NIC Failure (Nonexistent)') do
|
1173
|
+
begin
|
1174
|
+
compute.get_nic('00000000-0000-0000-0000-000000000000', '00000000-0000-0000-0000-000000000000', '00000000-0000-0000-0000-000000000000')
|
1175
|
+
rescue Exception => e
|
1176
|
+
returns(true, 'exception contains \'Resource does not exist\'') {
|
1177
|
+
e.message.include? 'Resource does not exist'
|
1178
|
+
}
|
1179
|
+
end
|
1180
|
+
end
|
1181
|
+
|
1182
|
+
tests('Create Firewall Rule Failure (Missing Required Parameter)') do
|
1183
|
+
begin
|
1184
|
+
compute.firewall_rules.create(:datacenter_id => @datacenter_id,
|
1185
|
+
:server_id => @server_id,
|
1186
|
+
:nic_id => @nic_id,
|
1187
|
+
:name => 'Fog Test')
|
1188
|
+
rescue Exception => e
|
1189
|
+
returns(true, "exception contains 'protocol is required for this operation'") {
|
1190
|
+
e.message.include? "protocol is required for this operation"
|
1191
|
+
}
|
1192
|
+
end
|
1193
|
+
end
|
1194
|
+
|
1195
|
+
tests('Get Firewall Rule Failure (Nonexistent)') do
|
1196
|
+
begin
|
1197
|
+
compute.get_firewall_rule('00000000-0000-0000-0000-000000000000', '00000000-0000-0000-0000-000000000000',
|
1198
|
+
'00000000-0000-0000-0000-000000000000', '00000000-0000-0000-0000-000000000000')
|
1199
|
+
rescue Exception => e
|
1200
|
+
returns(true, 'exception contains \'Resource does not exist\'') {
|
1201
|
+
e.message.include? 'Resource does not exist'
|
1202
|
+
}
|
1203
|
+
end
|
1204
|
+
end
|
1205
|
+
|
1206
|
+
tests('Create Load Balancer Failure (Missing Required Parameter)') do
|
1207
|
+
begin
|
1208
|
+
compute.create_load_balancer(@datacenter_id)
|
1209
|
+
rescue Exception => e
|
1210
|
+
returns(true, "exception contains 'Attribute 'name' is required'") {
|
1211
|
+
e.message.include? "Attribute 'name' is required"
|
1212
|
+
}
|
1213
|
+
end
|
1214
|
+
end
|
1215
|
+
|
1216
|
+
tests('Get Load Balancer Failure (Nonexistent)') do
|
1217
|
+
begin
|
1218
|
+
compute.get_load_balancer(@datacenter_id, '00000000-0000-0000-0000-000000000000')
|
1219
|
+
rescue Exception => e
|
1220
|
+
returns(true, 'exception contains \'Resource does not exist\'') {
|
1221
|
+
e.message.include? 'Resource does not exist'
|
1222
|
+
}
|
1223
|
+
end
|
1224
|
+
end
|
1225
|
+
|
1226
|
+
tests('List Resources Failure (Nonexistent)') do
|
1227
|
+
begin
|
1228
|
+
compute.resources.get_by_type('unknown')
|
1229
|
+
rescue Exception => e
|
1230
|
+
returns(true, 'exception contains \'Resource does not exist\'') {
|
1231
|
+
e.message.include? 'Resource does not exist'
|
1232
|
+
}
|
1233
|
+
end
|
1234
|
+
end
|
1235
|
+
|
1236
|
+
tests('List Resources Type Failure (Nonexistent)') do
|
1237
|
+
begin
|
1238
|
+
compute.resources.get_resource_by_type('datacenter', '00000000-0000-0000-0000-000000000000')
|
1239
|
+
rescue Exception => e
|
1240
|
+
returns(true, 'exception contains \'Resource does not exist\'') {
|
1241
|
+
e.message.include? 'Resource does not exist'
|
1242
|
+
}
|
1243
|
+
end
|
1244
|
+
end
|
1245
|
+
end
|
1246
|
+
|
1247
|
+
tests('user management cleanup') do
|
1248
|
+
Excon.defaults[:connection_timeout] = 500
|
1249
|
+
|
1250
|
+
tests('Remove User').succeeds do
|
1251
|
+
user = compute.users.get(@user_id)
|
1252
|
+
|
1253
|
+
user.delete
|
1254
|
+
end
|
1255
|
+
|
1256
|
+
tests('Remove Share').succeeds do
|
1257
|
+
share = compute.shares.get(@group_id, @image_id)
|
1258
|
+
|
1259
|
+
share.delete
|
1260
|
+
end
|
1261
|
+
|
1262
|
+
tests('Remove Group').succeeds do
|
1263
|
+
group = compute.groups.get(@group_id)
|
1264
|
+
|
1265
|
+
group.delete
|
1266
|
+
end
|
1267
|
+
end
|
1268
|
+
|
1269
|
+
tests('cleanup') do
|
1270
|
+
Excon.defaults[:connection_timeout] = 500
|
1271
|
+
|
1272
|
+
tests('Remove Balanced NIC').succeeds do
|
1273
|
+
load_balancer = compute.load_balancers.get(@datacenter_id, @load_balancer_id)
|
1274
|
+
result = load_balancer.remove_nic_association(@nic_id)
|
1275
|
+
|
1276
|
+
sleep(60) if ENV["FOG_MOCK"] != "true"
|
1277
|
+
|
1278
|
+
result
|
1279
|
+
end
|
1280
|
+
|
1281
|
+
tests('Remove Load Balancer').succeeds do
|
492
1282
|
load_balancer = compute.load_balancers.get(@datacenter_id, @load_balancer_id)
|
493
1283
|
|
494
1284
|
load_balancer.delete
|
495
1285
|
end
|
496
1286
|
|
497
|
-
tests('
|
498
|
-
|
1287
|
+
tests('Remove Firewall Rule').succeeds do
|
1288
|
+
firewall_rule = compute.firewall_rules.get(@datacenter_id, @composite_server_id, @nic_id, @firewall_rule_id)
|
499
1289
|
|
500
|
-
|
1290
|
+
firewall_rule.delete
|
501
1291
|
end
|
502
1292
|
|
503
|
-
tests('
|
504
|
-
|
1293
|
+
tests('Release IP Block').succeeds do
|
1294
|
+
ip_block = compute.ip_blocks.get(@ip_block_id)
|
505
1295
|
|
506
|
-
|
1296
|
+
ip_block.delete
|
507
1297
|
end
|
508
1298
|
|
509
|
-
tests('
|
510
|
-
|
1299
|
+
tests('Remove NIC').succeeds do
|
1300
|
+
sleep(60) if ENV["FOG_MOCK"] != "true"
|
1301
|
+
nic = compute.nics.get(@datacenter_id, @composite_server_id, @nic_id)
|
511
1302
|
|
512
|
-
|
1303
|
+
nic.delete
|
513
1304
|
end
|
514
1305
|
|
515
|
-
|
516
|
-
|
517
|
-
|
1306
|
+
tests('Remove LAN').succeeds do
|
1307
|
+
sleep(60) if ENV["FOG_MOCK"] != "true"
|
1308
|
+
lan = compute.lans.get(@datacenter_id, @lan_id)
|
518
1309
|
|
519
|
-
|
520
|
-
end
|
1310
|
+
lan.delete
|
521
1311
|
end
|
522
1312
|
|
523
|
-
tests('
|
1313
|
+
tests('Remove Snapshot').succeeds do
|
524
1314
|
snapshot = compute.snapshots.get(@snapshot_id)
|
525
1315
|
|
526
1316
|
snapshot.delete
|
527
1317
|
end
|
528
1318
|
|
529
|
-
tests('
|
1319
|
+
tests('Remove Volume').succeeds do
|
1320
|
+
volume = compute.volumes.get(@datacenter_id, @volume_id)
|
1321
|
+
|
1322
|
+
volume.delete
|
1323
|
+
end
|
1324
|
+
|
1325
|
+
tests('Remove Server').succeeds do
|
1326
|
+
server = compute.servers.get(@datacenter_id, @server_id)
|
1327
|
+
composite_server = compute.servers.get(@datacenter_id, @composite_server_id)
|
1328
|
+
|
1329
|
+
server.delete and composite_server.delete
|
1330
|
+
end
|
1331
|
+
|
1332
|
+
tests('Remove Datacenter').succeeds do
|
530
1333
|
datacenter = compute.datacenters.get(@datacenter_id)
|
1334
|
+
composite_dc = compute.datacenters.get(@composite_dc_id)
|
531
1335
|
|
532
|
-
datacenter.delete
|
1336
|
+
datacenter.delete and composite_dc.delete
|
533
1337
|
end
|
534
1338
|
end
|
535
1339
|
end
|