profitbricks-sdk-ruby 3.0.2 → 4.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +2124 -44
- data/lib/profitbricks.rb +6 -0
- data/lib/profitbricks/contract.rb +29 -0
- data/lib/profitbricks/datacenter.rb +43 -1
- data/lib/profitbricks/errors.rb +1 -0
- data/lib/profitbricks/group.rb +76 -0
- data/lib/profitbricks/image.rb +7 -7
- data/lib/profitbricks/lan.rb +18 -11
- data/lib/profitbricks/model.rb +6 -0
- data/lib/profitbricks/profitbricks.rb +14 -7
- data/lib/profitbricks/resource.rb +42 -0
- data/lib/profitbricks/share.rb +66 -0
- data/lib/profitbricks/user.rb +92 -0
- data/lib/profitbricks/usermanagement.rb +61 -0
- data/lib/profitbricks/version.rb +1 -1
- data/spec/contract_spec.rb +24 -0
- data/spec/datacenter_spec.rb +54 -29
- data/spec/firewall_spec.rb +13 -5
- data/spec/group_spec.rb +65 -0
- data/spec/image_spec.rb +23 -0
- data/spec/ipblock_spec.rb +16 -6
- data/spec/lan_spec.rb +54 -11
- data/spec/loadbalancer_spec.rb +22 -10
- data/spec/location_spec.rb +6 -0
- data/spec/nic_spec.rb +17 -5
- data/spec/request_spec.rb +5 -0
- data/spec/resource_spec.rb +102 -0
- data/spec/server_spec.rb +71 -51
- data/spec/share_spec.rb +66 -0
- data/spec/snapshot_spec.rb +27 -4
- data/spec/spec_helper.rb +1 -1
- data/spec/support/resource_helper.rb +220 -83
- data/spec/user_spec.rb +96 -0
- data/spec/usermanagement_spec.rb +113 -0
- data/spec/volume_spec.rb +40 -11
- metadata +34 -16
data/spec/image_spec.rb
CHANGED
@@ -21,9 +21,32 @@ describe ProfitBricks::Image do
|
|
21
21
|
expect(image.type).to eq('image')
|
22
22
|
expect(image.id).to match(options[:uuid])
|
23
23
|
expect(image.properties['name']).to be_kind_of(String)
|
24
|
+
expect(image.properties['name']).not_to be nil
|
24
25
|
expect(image.properties['description']).to be nil
|
25
26
|
expect(image.properties['location']).to match(/\w+\/\w+/)
|
26
27
|
expect(image.properties['size']).to be > 0
|
28
|
+
|
29
|
+
expect(image.properties['cpuHotPlug']).to eq(true).or(eq(false))
|
30
|
+
expect(image.properties['cpuHotUnplug']).to eq(true).or(eq(false))
|
31
|
+
expect(image.properties['ramHotPlug']).to eq(true).or(eq(false))
|
32
|
+
expect(image.properties['ramHotUnplug']).to eq(true).or(eq(false))
|
33
|
+
expect(image.properties['nicHotPlug']).to eq(true).or(eq(false))
|
34
|
+
expect(image.properties['nicHotUnplug']).to eq(true).or(eq(false))
|
35
|
+
expect(image.properties['discVirtioHotPlug']).to eq(true).or(eq(false))
|
36
|
+
expect(image.properties['discVirtioHotUnplug']).to eq(true).or(eq(false))
|
37
|
+
expect(image.properties['discScsiHotPlug']).to eq(true).or(eq(false))
|
38
|
+
expect(image.properties['discScsiHotUnplug']).to eq(true).or(eq(false))
|
39
|
+
expect(image.properties['public']).to eq(true).or(eq(false))
|
40
|
+
|
41
|
+
expect(image.properties['imageAliases']).to be_an_instance_of(Array)
|
42
|
+
|
43
|
+
expect(image.properties).to have_key("location")
|
44
|
+
expect(image.properties).to have_key("licenceType")
|
45
|
+
expect(image.properties).to have_key("imageType")
|
46
|
+
end
|
47
|
+
|
48
|
+
it '#get failure' do
|
49
|
+
expect { ProfitBricks::Image.get(options[:bad_id]) }.to raise_error(Excon::Error::NotFound, /Resource does not exist/)
|
27
50
|
end
|
28
51
|
|
29
52
|
# Unable to test in production due to public images.
|
data/spec/ipblock_spec.rb
CHANGED
@@ -14,8 +14,13 @@ describe ProfitBricks::IPBlock do
|
|
14
14
|
expect(@ipblock.type).to eq('ipblock')
|
15
15
|
expect(@ipblock.id).to match(options[:uuid])
|
16
16
|
expect(@ipblock.properties['ips'].count).to be > 0
|
17
|
-
expect(@ipblock.properties['
|
18
|
-
expect(@ipblock.properties['
|
17
|
+
expect(@ipblock.properties['name']).to eq('Ruby SDK Test')
|
18
|
+
expect(@ipblock.properties['location']).to eq('us/las')
|
19
|
+
expect(@ipblock.properties['size']).to eq(2)
|
20
|
+
end
|
21
|
+
|
22
|
+
it '#reserve failure' do
|
23
|
+
expect { ProfitBricks::IPBlock.reserve({ name: 'Ruby SDK Test', size: '1' }) }.to raise_error(Excon::Error::UnprocessableEntity, /Attribute 'location' is required/)
|
19
24
|
end
|
20
25
|
|
21
26
|
it '#list' do
|
@@ -25,7 +30,7 @@ describe ProfitBricks::IPBlock do
|
|
25
30
|
expect(ipblocks[0].type).to eq('ipblock')
|
26
31
|
expect(ipblocks[0].id).to match(options[:uuid])
|
27
32
|
expect(ipblocks[0].properties['ips'].count).to be > 0
|
28
|
-
expect(ipblocks[0].properties['location']).to eq('
|
33
|
+
expect(ipblocks[0].properties['location']).to eq('us/las')
|
29
34
|
expect(ipblocks[0].properties['size']).to be_kind_of(Integer)
|
30
35
|
end
|
31
36
|
|
@@ -34,9 +39,14 @@ describe ProfitBricks::IPBlock do
|
|
34
39
|
|
35
40
|
expect(ipblock.type).to eq('ipblock')
|
36
41
|
expect(ipblock.id).to eq(@ipblock.id)
|
37
|
-
expect(ipblock.properties['ips'].count).to
|
38
|
-
expect(ipblock.properties['
|
39
|
-
expect(ipblock.properties['
|
42
|
+
expect(ipblock.properties['ips'].count).to eq(2)
|
43
|
+
expect(ipblock.properties['name']).to eq('Ruby SDK Test')
|
44
|
+
expect(ipblock.properties['location']).to eq('us/las')
|
45
|
+
expect(ipblock.properties['size']).to eq(2)
|
46
|
+
end
|
47
|
+
|
48
|
+
it '#get failure' do
|
49
|
+
expect { ProfitBricks::IPBlock.get(options[:bad_id]) }.to raise_error(Excon::Error::NotFound, /Resource does not exist/)
|
40
50
|
end
|
41
51
|
|
42
52
|
# alias: delete
|
data/spec/lan_spec.rb
CHANGED
@@ -13,26 +13,46 @@ describe ProfitBricks::LAN do
|
|
13
13
|
|
14
14
|
@nic = ProfitBricks::NIC.create(@datacenter.id, @server.id, lan: @lan.id)
|
15
15
|
@nic.wait_for { ready? }
|
16
|
+
|
17
|
+
@ip_block = ProfitBricks::IPBlock.reserve(options[:ipblock_failover])
|
18
|
+
@ip_block.wait_for { ready? }
|
16
19
|
end
|
17
20
|
|
18
21
|
after(:all) do
|
19
22
|
@datacenter.delete
|
23
|
+
@datacenter.wait_for { ready? }
|
24
|
+
@ip_block.release
|
25
|
+
@ip_block.wait_for { ready? }
|
20
26
|
end
|
21
27
|
|
22
28
|
it '#create' do
|
23
29
|
expect(@lan.type).to eq('lan')
|
24
30
|
expect(@lan.id).to match(/^\d+$/)
|
25
|
-
expect(@lan.properties['name']).to eq('
|
31
|
+
expect(@lan.properties['name']).to eq('Ruby SDK Test')
|
26
32
|
expect(@lan.properties['public']).to be true
|
27
33
|
end
|
28
34
|
|
35
|
+
# it '#create failure' do
|
36
|
+
# expect { ProfitBricks::LAN.create(options[:bad_id], options[:bad_lan]) }.to raise_error(Excon::Error::UnprocessableEntity, /Attribute 'location' is required/)
|
37
|
+
# end
|
38
|
+
|
39
|
+
it '#create composite' do
|
40
|
+
create_data=options[:lan]
|
41
|
+
nics=[@nic.id]
|
42
|
+
create_data['nics']=nics
|
43
|
+
@lan_composite = ProfitBricks::LAN.create(@datacenter.id,create_data)
|
44
|
+
@lan_composite.wait_for { ready? }
|
45
|
+
expect(@lan_composite.type).to eq('lan')
|
46
|
+
expect(@lan_composite.entities['nics']['items'].size).to eq(1)
|
47
|
+
end
|
48
|
+
|
29
49
|
it '#list' do
|
30
50
|
lans = ProfitBricks::LAN.list(@datacenter.id)
|
31
51
|
|
32
52
|
expect(lans.count).to be > 0
|
33
53
|
expect(lans[0].type).to eq('lan')
|
34
54
|
expect(lans[0].id).to match(/^\d+$/)
|
35
|
-
expect(lans[0].properties['name']).to eq('
|
55
|
+
expect(lans[0].properties['name']).to eq('Ruby SDK Test')
|
36
56
|
expect(lans[0].properties['public']).to be true
|
37
57
|
end
|
38
58
|
|
@@ -41,30 +61,53 @@ describe ProfitBricks::LAN do
|
|
41
61
|
|
42
62
|
expect(lan.type).to eq('lan')
|
43
63
|
expect(lan.id).to eq(@lan.id)
|
44
|
-
expect(lan.properties['name']).to eq('
|
64
|
+
expect(lan.properties['name']).to eq('Ruby SDK Test')
|
45
65
|
expect(lan.properties['public']).to be true
|
46
66
|
end
|
47
67
|
|
68
|
+
it '#get failure' do
|
69
|
+
expect { ProfitBricks::LAN.get(@datacenter.id,options[:bad_id]) }.to raise_error(Excon::Error::NotFound, /Resource does not exist/)
|
70
|
+
end
|
71
|
+
|
48
72
|
it '#update' do
|
49
|
-
lan = @lan.update(public:
|
73
|
+
lan = @lan.update({ public: false, name: 'Ruby SDK Test - RENAME' })
|
50
74
|
|
51
75
|
expect(lan.type).to eq('lan')
|
52
76
|
expect(lan.id).to eq(@lan.id)
|
53
|
-
expect(lan.properties['name']).to eq('
|
77
|
+
expect(lan.properties['name']).to eq('Ruby SDK Test - RENAME')
|
54
78
|
expect(lan.properties['public']).to be false
|
55
79
|
end
|
56
80
|
|
57
|
-
it '#
|
81
|
+
it '#update_ip_failover' do
|
82
|
+
ip = @ip_block.properties['ips'][0]
|
83
|
+
|
84
|
+
server1 = ProfitBricks::Server.create(@datacenter.id, options[:server])
|
85
|
+
server1.wait_for { ready? }
|
86
|
+
|
58
87
|
lan = ProfitBricks::LAN.create(@datacenter.id, options[:lan])
|
59
88
|
lan.wait_for { ready? }
|
60
89
|
|
61
|
-
|
90
|
+
nic = ProfitBricks::NIC.create(@datacenter.id, server1.id, { lan: lan.id, ips: [ip] })
|
91
|
+
nic.wait_for { ready? }
|
92
|
+
|
93
|
+
ip_failover = {}
|
94
|
+
ip_failover['ip'] = ip
|
95
|
+
ip_failover['nicUuid'] = nic.id
|
96
|
+
|
97
|
+
lan.update({ipFailover: [ip_failover]})
|
98
|
+
lan.wait_for { ready? }
|
99
|
+
|
100
|
+
server2 = ProfitBricks::Server.create(@datacenter.id, options[:server])
|
101
|
+
server2.wait_for { ready? }
|
102
|
+
|
103
|
+
nic2 = ProfitBricks::NIC.create(@datacenter.id, server2.id, { lan: lan.id, ips: [ip] })
|
104
|
+
nic2.wait_for { ready? }
|
62
105
|
end
|
63
106
|
|
64
|
-
it '#
|
65
|
-
|
107
|
+
it '#delete' do
|
108
|
+
lan = ProfitBricks::LAN.create(@datacenter.id, options[:lan])
|
109
|
+
lan.wait_for { ready? }
|
66
110
|
|
67
|
-
expect(
|
68
|
-
expect(members[0].type).to eq('nic')
|
111
|
+
expect(lan.delete.requestId).to match(options[:uuid])
|
69
112
|
end
|
70
113
|
end
|
data/spec/loadbalancer_spec.rb
CHANGED
@@ -28,20 +28,24 @@ describe ProfitBricks::Loadbalancer do
|
|
28
28
|
it '#create' do
|
29
29
|
expect(@loadbalancer.type).to eq('loadbalancer')
|
30
30
|
expect(@loadbalancer.id).to match(options[:uuid])
|
31
|
-
expect(@loadbalancer.properties['name']).to eq('
|
31
|
+
expect(@loadbalancer.properties['name']).to eq('Ruby SDK Test')
|
32
32
|
expect(@loadbalancer.properties['ip']).to be nil
|
33
33
|
expect(@loadbalancer.properties['dhcp']).to be true
|
34
34
|
expect(@loadbalancer.entities).to be nil
|
35
35
|
end
|
36
36
|
|
37
|
+
it '#create failure' do
|
38
|
+
expect { ProfitBricks::Loadbalancer.create(options[:bad_id], options[:bad_loadbalancer]) }.to raise_error(Excon::Error::NotFound)
|
39
|
+
end
|
40
|
+
|
37
41
|
it '#list' do
|
38
42
|
loadbalancers = ProfitBricks::Loadbalancer.list(@datacenter.id)
|
39
43
|
|
40
44
|
expect(loadbalancers.count).to be > 0
|
41
45
|
expect(loadbalancers[0].type).to eq('loadbalancer')
|
42
46
|
expect(loadbalancers[0].id).to eq(@loadbalancer.id)
|
43
|
-
expect(loadbalancers[0].properties['name']).to eq('
|
44
|
-
expect(loadbalancers[0].properties['ip']).
|
47
|
+
expect(loadbalancers[0].properties['name']).to eq('Ruby SDK Test')
|
48
|
+
expect(loadbalancers[0].properties['ip']).not_to be nil
|
45
49
|
expect(loadbalancers[0].properties['dhcp']).to be true
|
46
50
|
expect(loadbalancers[0].entities).to be_kind_of(Hash)
|
47
51
|
end
|
@@ -51,22 +55,26 @@ describe ProfitBricks::Loadbalancer do
|
|
51
55
|
|
52
56
|
expect(loadbalancer.type).to eq('loadbalancer')
|
53
57
|
expect(loadbalancer.id).to eq(@loadbalancer.id)
|
54
|
-
expect(loadbalancer.properties['name']).to eq('
|
58
|
+
expect(loadbalancer.properties['name']).to eq('Ruby SDK Test')
|
55
59
|
expect(loadbalancer.properties['ip']).to be_kind_of(String)
|
56
60
|
expect(loadbalancer.properties['dhcp']).to be true
|
57
61
|
expect(loadbalancer.entities).to be_kind_of(Hash)
|
58
62
|
end
|
59
63
|
|
64
|
+
it '#get failure' do
|
65
|
+
expect { ProfitBricks::Loadbalancer.get(@datacenter.id, options[:bad_id]) }.to raise_error(Excon::Error::NotFound)
|
66
|
+
end
|
67
|
+
|
60
68
|
it '#update' do
|
61
69
|
loadbalancer = @loadbalancer.update(
|
62
|
-
|
70
|
+
name: 'Ruby SDK Test - RENAME'
|
63
71
|
)
|
64
72
|
loadbalancer.wait_for { ready? }
|
65
73
|
|
66
74
|
expect(loadbalancer.type).to eq('loadbalancer')
|
67
75
|
expect(loadbalancer.id).to eq(@loadbalancer.id)
|
68
|
-
expect(loadbalancer.properties['name']).to eq('
|
69
|
-
expect(loadbalancer.properties['ip']).to eq('10.1.1.2')
|
76
|
+
expect(loadbalancer.properties['name']).to eq('Ruby SDK Test - RENAME')
|
77
|
+
#expect(loadbalancer.properties['ip']).to eq('10.1.1.2')
|
70
78
|
expect(loadbalancer.properties['dhcp']).to be true
|
71
79
|
expect(loadbalancer.entities).to be nil
|
72
80
|
end
|
@@ -83,7 +91,7 @@ describe ProfitBricks::Loadbalancer do
|
|
83
91
|
|
84
92
|
expect(balanced_nics.count).to be > 0
|
85
93
|
expect(balanced_nics[0].type).to eq('nic')
|
86
|
-
expect(balanced_nics[0].properties['name']).to eq('
|
94
|
+
expect(balanced_nics[0].properties['name']).to eq('Ruby SDK Test')
|
87
95
|
expect(balanced_nics[0].properties['ips']).to be_kind_of(Array)
|
88
96
|
expect(balanced_nics[0].properties['dhcp']).to be true
|
89
97
|
expect(balanced_nics[0].properties['lan']).to be_kind_of(Integer)
|
@@ -93,17 +101,21 @@ describe ProfitBricks::Loadbalancer do
|
|
93
101
|
balanced_nic = @loadbalancer.get_balanced_nic(@nic.id)
|
94
102
|
|
95
103
|
expect(balanced_nic.type).to eq('nic')
|
96
|
-
expect(balanced_nic.properties['name']).to eq('
|
104
|
+
expect(balanced_nic.properties['name']).to eq('Ruby SDK Test')
|
97
105
|
expect(balanced_nic.properties['ips']).to be_kind_of(Array)
|
106
|
+
expect(balanced_nic.properties['ips'].count).to be > 0
|
98
107
|
expect(balanced_nic.properties['dhcp']).to be true
|
99
108
|
expect(balanced_nic.properties['lan']).to be_kind_of(Integer)
|
109
|
+
expect(balanced_nic.properties['nat']).to eq(true).or(eq(false))
|
110
|
+
expect(balanced_nic.properties['firewallActive']).to eq(true).or(eq(false))
|
111
|
+
expect(balanced_nic.properties['mac']).to match(options[:mac_addres])
|
100
112
|
end
|
101
113
|
|
102
114
|
it '#associate_balanced_nic' do
|
103
115
|
balanced_nic = @loadbalancer.associate_balanced_nic(@nic.id)
|
104
116
|
|
105
117
|
expect(balanced_nic.type).to eq('nic')
|
106
|
-
expect(balanced_nic.properties['name']).to eq('
|
118
|
+
expect(balanced_nic.properties['name']).to eq('Ruby SDK Test')
|
107
119
|
expect(balanced_nic.properties['ips']).to be_kind_of(Array)
|
108
120
|
expect(balanced_nic.properties['dhcp']).to be true
|
109
121
|
expect(balanced_nic.properties['lan']).to be_kind_of(Integer)
|
data/spec/location_spec.rb
CHANGED
@@ -8,13 +8,19 @@ describe ProfitBricks::Location do
|
|
8
8
|
expect(@locations[0].type).to eq('location')
|
9
9
|
expect(@locations[0].id).to match(/^\w+\/\w+$/)
|
10
10
|
expect(@locations[0].properties['name']).to be_kind_of(String)
|
11
|
+
expect(@locations.find { |item| item.id == 'us/las' }).to_not be_nil
|
11
12
|
end
|
12
13
|
|
13
14
|
it '#get' do
|
14
15
|
location = ProfitBricks::Location.get('us/las')
|
15
16
|
|
17
|
+
expect(location.id).to eq('us/las')
|
16
18
|
expect(location.type).to eq('location')
|
17
19
|
expect(location.id).to match(/^\w+\/\w+$/)
|
18
20
|
expect(location.properties['name']).to be_kind_of(String)
|
19
21
|
end
|
22
|
+
|
23
|
+
it '#get failure' do
|
24
|
+
expect { ProfitBricks::Location.get("us/aa") }.to raise_error(Excon::Error::NotFound, /Resource does not exist/)
|
25
|
+
end
|
20
26
|
end
|
data/spec/nic_spec.rb
CHANGED
@@ -22,10 +22,16 @@ describe ProfitBricks::NIC do
|
|
22
22
|
it '#create' do
|
23
23
|
expect(@nic.type).to eq('nic')
|
24
24
|
expect(@nic.id).to match(options[:uuid])
|
25
|
-
expect(@nic.properties['name']).to eq('
|
25
|
+
expect(@nic.properties['name']).to eq('Ruby SDK Test')
|
26
26
|
expect(@nic.properties['ips']).to be_kind_of(Array)
|
27
27
|
expect(@nic.properties['dhcp']).to be true
|
28
|
+
expect(@nic.properties['firewallActive']).to be true
|
28
29
|
expect(@nic.properties['lan']).to eq(1)
|
30
|
+
expect(@nic.properties['nat']).to be false
|
31
|
+
end
|
32
|
+
|
33
|
+
it '#create failure' do
|
34
|
+
expect { ProfitBricks::NIC.create(@datacenter.id, @server.id, name: 'Ruby SDK Test') }.to raise_error(Excon::Error::UnprocessableEntity, /Attribute 'lan' is required/)
|
29
35
|
end
|
30
36
|
|
31
37
|
it '#list' do
|
@@ -34,7 +40,7 @@ describe ProfitBricks::NIC do
|
|
34
40
|
expect(nics.count).to be > 0
|
35
41
|
expect(nics[0].type).to eq('nic')
|
36
42
|
expect(nics[0].id).to eq(@nic.id)
|
37
|
-
expect(nics[0].properties['name']).to eq('
|
43
|
+
expect(nics[0].properties['name']).to eq('Ruby SDK Test')
|
38
44
|
expect(nics[0].properties['ips']).to be_kind_of(Array)
|
39
45
|
expect(nics[0].properties['dhcp']).to be true
|
40
46
|
expect(nics[0].properties['lan']).to eq(1)
|
@@ -45,18 +51,24 @@ describe ProfitBricks::NIC do
|
|
45
51
|
|
46
52
|
expect(nic.type).to eq('nic')
|
47
53
|
expect(nic.id).to eq(@nic.id)
|
48
|
-
expect(nic.properties['name']).to eq('
|
54
|
+
expect(nic.properties['name']).to eq('Ruby SDK Test')
|
49
55
|
expect(nic.properties['ips']).to be_kind_of(Array)
|
50
56
|
expect(nic.properties['dhcp']).to be true
|
51
57
|
expect(nic.properties['lan']).to eq(1)
|
58
|
+
expect(nic.properties['firewallActive']).to be true
|
59
|
+
expect(nic.properties['nat']).to be false
|
60
|
+
end
|
61
|
+
|
62
|
+
it '#get failure' do
|
63
|
+
expect { ProfitBricks::NIC.get(@datacenter.id, @server.id, options[:bad_id]) }.to raise_error(Excon::Error::NotFound, /Resource does not exist/)
|
52
64
|
end
|
53
65
|
|
54
66
|
it '#update' do
|
55
|
-
nic = @nic.update(
|
67
|
+
nic = @nic.update(name: 'Ruby SDK Test - RENAME')
|
56
68
|
|
57
69
|
expect(nic.type).to eq('nic')
|
58
70
|
expect(nic.id).to eq(@nic.id)
|
59
|
-
expect(nic.properties['name']).to eq('
|
71
|
+
expect(nic.properties['name']).to eq('Ruby SDK Test - RENAME')
|
60
72
|
expect(nic.properties['ips']).to be_kind_of(Array)
|
61
73
|
expect(nic.properties['dhcp']).to be true
|
62
74
|
expect(nic.properties['lan']).to eq(1)
|
data/spec/request_spec.rb
CHANGED
@@ -28,10 +28,15 @@ describe ProfitBricks::Request do
|
|
28
28
|
expect(request.properties['method']).to eq('POST')
|
29
29
|
end
|
30
30
|
|
31
|
+
it '#get failure' do
|
32
|
+
expect { ProfitBricks::Request.get(options[:bad_id]) }.to raise_error(Excon::Error::NotFound, /Resource does not exist/)
|
33
|
+
end
|
34
|
+
|
31
35
|
it '#status' do
|
32
36
|
status = @request.status
|
33
37
|
|
34
38
|
expect(status.type).to eq('request-status')
|
39
|
+
expect(status.id).to eq("#{@request.id}/status")
|
35
40
|
expect(status.metadata['status']).to eq('DONE')
|
36
41
|
end
|
37
42
|
end
|
@@ -0,0 +1,102 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe ProfitBricks::Resource do
|
4
|
+
before(:all) do
|
5
|
+
@datacenter = ProfitBricks::Datacenter.create(options[:datacenter])
|
6
|
+
@datacenter.wait_for { ready? }
|
7
|
+
|
8
|
+
# images = ProfitBricks::Image.list
|
9
|
+
# @image = images[0]
|
10
|
+
|
11
|
+
@volume = ProfitBricks::Volume.create(@datacenter.id, options[:volume])
|
12
|
+
@volume.wait_for { ready? }
|
13
|
+
|
14
|
+
@snapshot = ProfitBricks::Snapshot.create(@datacenter.id, @volume.id, options[:snapshot])
|
15
|
+
@snapshot.wait_for { ready? }
|
16
|
+
|
17
|
+
@ipblock = ProfitBricks::IPBlock.reserve(options[:ipblock])
|
18
|
+
@ipblock.wait_for { ready? }
|
19
|
+
end
|
20
|
+
|
21
|
+
after(:all) do
|
22
|
+
@snapshot.delete
|
23
|
+
@volume.delete
|
24
|
+
@ipblock.release
|
25
|
+
@datacenter.delete
|
26
|
+
end
|
27
|
+
|
28
|
+
it '#list' do
|
29
|
+
resources = ProfitBricks::Resource.list
|
30
|
+
|
31
|
+
expect(resources.count).to be > 0
|
32
|
+
#expect(resources.type).to eq('collection')
|
33
|
+
end
|
34
|
+
|
35
|
+
it '#list datacenter' do
|
36
|
+
resources = ProfitBricks::Resource.list_by_type('datacenter')
|
37
|
+
|
38
|
+
expect(resources.count).to be > 0
|
39
|
+
expect(resources[0].type).to eq('datacenter')
|
40
|
+
end
|
41
|
+
|
42
|
+
# Unable to test in production at the moment. Images must be uploaded
|
43
|
+
# via FTP in production before a delete can be performed.
|
44
|
+
# it '#list image' do
|
45
|
+
# resources = ProfitBricks::Resource.list_by_type('image')
|
46
|
+
#
|
47
|
+
# expect(resources.count).to be > 0
|
48
|
+
# expect(resources[0].type).to eq('image')
|
49
|
+
# end
|
50
|
+
|
51
|
+
it '#list snapshot' do
|
52
|
+
resources = ProfitBricks::Resource.list_by_type('snapshot')
|
53
|
+
|
54
|
+
expect(resources.count).to be > 0
|
55
|
+
expect(resources[0].type).to eq('snapshot')
|
56
|
+
end
|
57
|
+
|
58
|
+
it '#list ipblock' do
|
59
|
+
resources = ProfitBricks::Resource.list_by_type('ipblock')
|
60
|
+
|
61
|
+
expect(resources.count).to be > 0
|
62
|
+
expect(resources[0].type).to eq('ipblock')
|
63
|
+
end
|
64
|
+
|
65
|
+
it '#list failure' do
|
66
|
+
expect { ProfitBricks::Resource.list_by_type('unknown') }.to raise_error(Excon::Error::NotFound)
|
67
|
+
end
|
68
|
+
|
69
|
+
it '#get datacenter' do
|
70
|
+
resource = ProfitBricks::Resource.get('datacenter', @datacenter.id)
|
71
|
+
|
72
|
+
expect(resource.id).to match(options[:uuid])
|
73
|
+
expect(resource.type).to eq('datacenter')
|
74
|
+
end
|
75
|
+
|
76
|
+
# Unable to test in production at the moment. Images must be uploaded
|
77
|
+
# via FTP in production before a delete can be performed.
|
78
|
+
# it '#get image' do
|
79
|
+
# resource = ProfitBricks::Resource.get('image', @image.id)
|
80
|
+
#
|
81
|
+
# expect(resource.id).to match(options[:uuid])
|
82
|
+
# expect(resource.type).to eq('image')
|
83
|
+
# end
|
84
|
+
|
85
|
+
it '#get snapshot' do
|
86
|
+
resource = ProfitBricks::Resource.get('snapshot', @snapshot.id)
|
87
|
+
|
88
|
+
expect(resource.id).to match(options[:uuid])
|
89
|
+
expect(resource.type).to eq('snapshot')
|
90
|
+
end
|
91
|
+
|
92
|
+
it '#get ipblock' do
|
93
|
+
resource = ProfitBricks::Resource.get('ipblock', @ipblock.id)
|
94
|
+
|
95
|
+
expect(resource.id).to match(options[:uuid])
|
96
|
+
expect(resource.type).to eq('ipblock')
|
97
|
+
end
|
98
|
+
|
99
|
+
it '#get failure' do
|
100
|
+
expect { ProfitBricks::Resource.get('unknown', options[:bad_id]) }.to raise_error(Excon::Error::NotFound)
|
101
|
+
end
|
102
|
+
end
|