fog-profitbricks 4.0.0 → 4.1.0
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.
- 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
|