digitalocean 0.0.3 → 1.0.0.rc.2
Sign up to get free protection for your applications and to get access to all the features.
- data/LICENSE.txt +2 -2
- data/README.md +75 -47
- data/lib/digitalocean.rb +138 -16
- data/lib/digitalocean/version.rb +1 -1
- data/spec/digitalocean/domain_spec.rb +34 -50
- data/spec/digitalocean/droplet_spec.rb +125 -36
- data/spec/digitalocean/image_spec.rb +49 -23
- data/spec/digitalocean/integration_spec.rb +12 -0
- data/spec/digitalocean/record_spec.rb +63 -74
- data/spec/digitalocean/region_spec.rb +5 -14
- data/spec/digitalocean/size_spec.rb +5 -14
- data/spec/digitalocean/ssh_key_spec.rb +29 -13
- data/spec/digitalocean_spec.rb +4 -3
- data/spec/spec_helper.rb +0 -10
- metadata +40 -31
- checksums.yaml +0 -7
- data/.env-example +0 -2
- data/lib/digitalocean/domain.rb +0 -34
- data/lib/digitalocean/droplet.rb +0 -67
- data/lib/digitalocean/image.rb +0 -23
- data/lib/digitalocean/record.rb +0 -62
- data/lib/digitalocean/region.rb +0 -14
- data/lib/digitalocean/size.rb +0 -14
- data/lib/digitalocean/ssh_key.rb +0 -21
@@ -1,52 +1,141 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe Digitalocean::Droplet do
|
4
|
-
let(:ok) { "OK" }
|
5
4
|
let(:subject) { Digitalocean::Droplet }
|
6
5
|
|
7
|
-
|
6
|
+
describe "._all" do
|
8
7
|
before do
|
9
|
-
|
8
|
+
@url = subject._all
|
10
9
|
end
|
11
10
|
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
11
|
+
it do
|
12
|
+
@url.should eq "https://api.digitalocean.com/droplets/?client_id=client_id_required&api_key=api_key_required"
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
describe "._find" do
|
17
|
+
let(:droplet_id) { "1234" }
|
18
|
+
|
19
|
+
before do
|
20
|
+
@url = subject._find(droplet_id)
|
21
|
+
end
|
22
|
+
|
23
|
+
it do
|
24
|
+
@url.should eq "https://api.digitalocean.com/droplets/#{droplet_id}?client_id=client_id_required&api_key=api_key_required"
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
describe "._rename" do
|
29
|
+
let(:droplet_id) { "1234" }
|
30
|
+
let(:name) { "new_name" }
|
31
|
+
|
32
|
+
before do
|
33
|
+
@url = subject._rename(droplet_id, {name: name})
|
34
|
+
end
|
35
|
+
|
36
|
+
it do
|
37
|
+
@url.should eq "https://api.digitalocean.com/droplets/#{droplet_id}/rename/?client_id=client_id_required&api_key=api_key_required&name=#{name}"
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
describe "._reboot" do
|
42
|
+
let(:droplet_id) { "1234" }
|
16
43
|
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
44
|
+
before do
|
45
|
+
@url = subject._reboot(droplet_id)
|
46
|
+
end
|
47
|
+
|
48
|
+
it do
|
49
|
+
@url.should eq "https://api.digitalocean.com/droplets/#{droplet_id}/reboot/?client_id=client_id_required&api_key=api_key_required"
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
describe "._power_cycle" do
|
54
|
+
let(:droplet_id) { "1234" }
|
55
|
+
|
56
|
+
before do
|
57
|
+
@url = subject._power_cycle(droplet_id)
|
58
|
+
end
|
59
|
+
|
60
|
+
it do
|
61
|
+
@url.should eq "https://api.digitalocean.com/droplets/#{droplet_id}/power_cycle/?client_id=client_id_required&api_key=api_key_required"
|
62
|
+
end
|
63
|
+
end
|
22
64
|
|
23
|
-
|
24
|
-
|
25
|
-
droplet_id = @response.droplets.first.id
|
26
|
-
@response2 = subject.retrieve(droplet_id)
|
27
|
-
end
|
65
|
+
describe "._shut_down" do
|
66
|
+
let(:droplet_id) { "1234" }
|
28
67
|
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
end
|
33
|
-
end
|
34
|
-
end
|
68
|
+
before do
|
69
|
+
@url = subject._shut_down(droplet_id)
|
70
|
+
end
|
35
71
|
|
36
|
-
|
37
|
-
|
72
|
+
it do
|
73
|
+
@url.should eq "https://api.digitalocean.com/droplets/#{droplet_id}/shut_down/?client_id=client_id_required&api_key=api_key_required"
|
74
|
+
end
|
75
|
+
end
|
38
76
|
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
77
|
+
describe "._power_off" do
|
78
|
+
let(:droplet_id) { "1234" }
|
79
|
+
|
80
|
+
before do
|
81
|
+
@url = subject._power_off(droplet_id)
|
82
|
+
end
|
83
|
+
|
84
|
+
it do
|
85
|
+
@url.should eq "https://api.digitalocean.com/droplets/#{droplet_id}/power_off/?client_id=client_id_required&api_key=api_key_required"
|
86
|
+
end
|
87
|
+
end
|
88
|
+
|
89
|
+
describe "._power_on" do
|
90
|
+
let(:droplet_id) { "1234" }
|
91
|
+
|
92
|
+
before do
|
93
|
+
@url = subject._power_on(droplet_id)
|
94
|
+
end
|
95
|
+
|
96
|
+
it do
|
97
|
+
@url.should eq "https://api.digitalocean.com/droplets/#{droplet_id}/power_on/?client_id=client_id_required&api_key=api_key_required"
|
98
|
+
end
|
99
|
+
end
|
100
|
+
|
101
|
+
describe "._snapshot" do
|
102
|
+
let(:droplet_id) { "1234" }
|
103
|
+
let(:snapshot_name) { "test_name" }
|
104
|
+
|
105
|
+
before do
|
106
|
+
@url = subject._snapshot(droplet_id, {name: snapshot_name})
|
107
|
+
end
|
108
|
+
|
109
|
+
it do
|
110
|
+
@url.should eq "https://api.digitalocean.com/droplets/#{droplet_id}/snapshot/?name=#{snapshot_name}&client_id=client_id_required&api_key=api_key_required"
|
111
|
+
end
|
112
|
+
end
|
113
|
+
|
114
|
+
describe "._create" do
|
115
|
+
let(:name) { "test_name" }
|
116
|
+
let(:size_id) { "1234" }
|
117
|
+
let(:image_id) { "11" }
|
118
|
+
let(:region_id) { "44" }
|
119
|
+
let(:ssh_key_ids) { "12,92" }
|
120
|
+
|
121
|
+
before do
|
122
|
+
@url = subject._create({name: name, size_id: size_id, image_id: image_id, region_id: region_id, ssh_key_ids: ssh_key_ids})
|
123
|
+
end
|
124
|
+
|
125
|
+
it do
|
126
|
+
@url.should eq "https://api.digitalocean.com/droplets/new?client_id=client_id_required&api_key=api_key_required&name=#{name}&size_id=#{size_id}&image_id=#{image_id}®ion_id=#{region_id}&ssh_key_ids=#{ssh_key_ids}"
|
127
|
+
end
|
128
|
+
end
|
129
|
+
|
130
|
+
describe "._destroy" do
|
131
|
+
let(:droplet_id) { "1234" }
|
132
|
+
|
133
|
+
before do
|
134
|
+
@url = subject._destroy(droplet_id)
|
135
|
+
end
|
43
136
|
|
44
|
-
|
45
|
-
|
46
|
-
@response2.status.should eq ok
|
47
|
-
end
|
48
|
-
end
|
49
|
-
end
|
137
|
+
it do
|
138
|
+
@url.should eq "https://api.digitalocean.com/droplets/#{droplet_id}/destroy/?client_id=client_id_required&api_key=api_key_required"
|
50
139
|
end
|
51
140
|
end
|
52
|
-
end
|
141
|
+
end
|
@@ -1,39 +1,65 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe Digitalocean::Image do
|
4
|
-
let(:ok) { "OK" }
|
5
4
|
let(:subject) { Digitalocean::Image }
|
6
5
|
|
7
|
-
|
6
|
+
describe "._all" do
|
8
7
|
before do
|
9
|
-
|
8
|
+
@url = subject._all
|
10
9
|
end
|
11
10
|
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
11
|
+
it do
|
12
|
+
@url.should eq "https://api.digitalocean.com/images/?client_id=client_id_required&api_key=api_key_required"
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
describe "._all with optional parameters" do
|
17
|
+
let(:args) { { filter: "my_images" } }
|
18
|
+
|
19
|
+
before do
|
20
|
+
@url = subject._all(args)
|
21
|
+
end
|
22
|
+
|
23
|
+
it do
|
24
|
+
@url.should eq "https://api.digitalocean.com/images/?client_id=client_id_required&api_key=api_key_required&filter=my_images"
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
describe "._find" do
|
29
|
+
let(:id) { "1234" }
|
30
|
+
|
31
|
+
before do
|
32
|
+
@url = subject._find(id)
|
33
|
+
end
|
16
34
|
|
17
|
-
|
18
|
-
|
19
|
-
@response.status.should eq ok
|
20
|
-
end
|
21
|
-
end
|
35
|
+
it do
|
36
|
+
@url.should eq "https://api.digitalocean.com/images/#{id}/?client_id=client_id_required&api_key=api_key_required"
|
22
37
|
end
|
38
|
+
end
|
23
39
|
|
24
|
-
|
25
|
-
|
26
|
-
image_id = @response.images.first.id
|
27
|
-
@response2 = subject.retrieve(image_id)
|
28
|
-
end
|
40
|
+
describe "._destroy" do
|
41
|
+
let(:id) { "1234" }
|
29
42
|
|
30
|
-
|
31
|
-
|
32
|
-
@response.status.should eq ok
|
33
|
-
end
|
34
|
-
end
|
43
|
+
before do
|
44
|
+
@url = subject._destroy(id)
|
35
45
|
end
|
36
46
|
|
47
|
+
it do
|
48
|
+
@url.should eq "https://api.digitalocean.com/images/#{id}/destroy/?client_id=client_id_required&api_key=api_key_required"
|
49
|
+
end
|
50
|
+
end
|
37
51
|
|
52
|
+
describe "._transfer" do
|
53
|
+
let(:id) { "1234" }
|
54
|
+
let(:region_id) { "44" }
|
55
|
+
let(:args) { {region_id: region_id } }
|
56
|
+
|
57
|
+
before do
|
58
|
+
@url = subject._transfer(id, args)
|
59
|
+
end
|
60
|
+
|
61
|
+
it do
|
62
|
+
@url.should eq "https://api.digitalocean.com/images/#{id}/transfer/?client_id=client_id_required&api_key=api_key_required®ion_id=44"
|
63
|
+
end
|
38
64
|
end
|
39
|
-
end
|
65
|
+
end
|
@@ -1,85 +1,74 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe Digitalocean::Record do
|
4
|
-
let(:ok) { "OK" }
|
5
4
|
let(:subject) { Digitalocean::Record }
|
6
5
|
|
7
|
-
|
6
|
+
describe "._all" do
|
7
|
+
let(:domain_id) { "100" }
|
8
|
+
|
9
|
+
before do
|
10
|
+
@url = subject._all(domain_id)
|
11
|
+
end
|
12
|
+
|
13
|
+
it do
|
14
|
+
@url.should eq "https://api.digitalocean.com/domains/#{domain_id}/records?client_id=client_id_required&api_key=api_key_required"
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
describe "._find" do
|
19
|
+
let(:domain_id) { "100" }
|
20
|
+
let(:record_id) { "50" }
|
21
|
+
|
22
|
+
before do
|
23
|
+
@url = subject._find(domain_id, record_id)
|
24
|
+
end
|
25
|
+
|
26
|
+
it do
|
27
|
+
@url.should eq "https://api.digitalocean.com/domains/#{domain_id}/records/#{record_id}?client_id=client_id_required&api_key=api_key_required"
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
describe "._create" do
|
32
|
+
let(:domain_id) { "100" }
|
33
|
+
let(:record_type) { "A" }
|
34
|
+
let(:data) { "@" }
|
35
|
+
let(:attrs) { {record_type: record_type, data: data } }
|
36
|
+
|
37
|
+
before do
|
38
|
+
@url = subject._create(domain_id, attrs)
|
39
|
+
end
|
40
|
+
|
41
|
+
it do
|
42
|
+
@url.should eq "https://api.digitalocean.com/domains/#{domain_id}/records/new?client_id=client_id_required&api_key=api_key_required&record_type=#{record_type}&data=#{data}"
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
describe "._edit" do
|
47
|
+
let(:domain_id) { "100" }
|
48
|
+
let(:record_id) { "50" }
|
49
|
+
let(:record_type) { "A" }
|
50
|
+
let(:data) { "@" }
|
51
|
+
let(:attrs) { {record_type: record_type, data: data } }
|
52
|
+
|
8
53
|
before do
|
9
|
-
|
54
|
+
@url = subject._edit(domain_id, record_id, attrs)
|
55
|
+
end
|
56
|
+
|
57
|
+
it do
|
58
|
+
@url.should eq "https://api.digitalocean.com/domains/#{domain_id}/records/#{record_id}/edit?client_id=client_id_required&api_key=api_key_required&record_type=#{record_type}&data=#{data}"
|
10
59
|
end
|
60
|
+
end
|
11
61
|
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
it do
|
20
|
-
@response.status.should eq ok
|
21
|
-
end
|
22
|
-
end
|
23
|
-
|
24
|
-
describe ".find" do
|
25
|
-
before do
|
26
|
-
domain_id = @response.domains.first.id
|
27
|
-
record_id = subject.all(domain_id).first.id
|
28
|
-
@response2 = subject.find(domain_id, record_id)
|
29
|
-
end
|
30
|
-
|
31
|
-
context "default" do
|
32
|
-
it do
|
33
|
-
@response2.status.should eq ok
|
34
|
-
end
|
35
|
-
end
|
36
|
-
end
|
37
|
-
|
38
|
-
describe ".create" do
|
39
|
-
let(:domain_name) { ["digitalocean_spec_", SecureRandom.hex(15), ".com"].join }
|
40
|
-
|
41
|
-
before do
|
42
|
-
domain = @response.domains.first
|
43
|
-
@response_create = subject.create(domain.id, 'CNAME', 'www', '@')
|
44
|
-
end
|
45
|
-
|
46
|
-
context "default" do
|
47
|
-
it do
|
48
|
-
@response_create.status.should eq ok
|
49
|
-
end
|
50
|
-
end
|
51
|
-
end
|
52
|
-
|
53
|
-
describe ".edit" do
|
54
|
-
|
55
|
-
before do
|
56
|
-
domain = @response.domains.first
|
57
|
-
record = subject.all(domain.id).first
|
58
|
-
@response_create = subject.edit(domain.id, record.id, { data: '@' })
|
59
|
-
end
|
60
|
-
|
61
|
-
context "default" do
|
62
|
-
it do
|
63
|
-
@response_create.status.should eq ok
|
64
|
-
end
|
65
|
-
end
|
66
|
-
end
|
67
|
-
|
68
|
-
describe ".destroy" do
|
69
|
-
|
70
|
-
before do
|
71
|
-
domain = @response.domains.first
|
72
|
-
record = subject.all(domain.id).first@response_create = subject.create(domain_name, droplet.ip_address)
|
73
|
-
@response_destroy = subject.destroy(domain.id, record.id)
|
74
|
-
end
|
75
|
-
|
76
|
-
context "default" do
|
77
|
-
it do
|
78
|
-
@response_destroy.status.should eq ok
|
79
|
-
end
|
80
|
-
end
|
81
|
-
end
|
62
|
+
describe "._destroy" do
|
63
|
+
let(:domain_id) { "100" }
|
64
|
+
let(:record_id) { "50" }
|
65
|
+
|
66
|
+
before do
|
67
|
+
@url = subject._destroy(domain_id, record_id)
|
68
|
+
end
|
82
69
|
|
70
|
+
it do
|
71
|
+
@url.should eq "https://api.digitalocean.com/domains/#{domain_id}/records/#{record_id}/destroy?client_id=client_id_required&api_key=api_key_required"
|
83
72
|
end
|
84
73
|
end
|
85
|
-
end
|
74
|
+
end
|
@@ -1,24 +1,15 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe Digitalocean::Region do
|
4
|
-
let(:ok) { "OK" }
|
5
4
|
let(:subject) { Digitalocean::Region }
|
6
5
|
|
7
|
-
|
6
|
+
describe "._all" do
|
8
7
|
before do
|
9
|
-
|
8
|
+
@url = subject._all
|
10
9
|
end
|
11
10
|
|
12
|
-
|
13
|
-
|
14
|
-
@response = subject.all
|
15
|
-
end
|
16
|
-
|
17
|
-
context "default" do
|
18
|
-
it do
|
19
|
-
@response.status.should eq ok
|
20
|
-
end
|
21
|
-
end
|
11
|
+
it do
|
12
|
+
@url.should eq "https://api.digitalocean.com/regions/?client_id=client_id_required&api_key=api_key_required"
|
22
13
|
end
|
23
14
|
end
|
24
|
-
end
|
15
|
+
end
|