knife-digital_ocean 2.3.3 → 2.4.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +4 -0
- data/README.md +28 -8
- data/knife-digital_ocean.gemspec +1 -0
- data/lib/chef/knife/digital_ocean_droplet_create.rb +27 -2
- data/lib/chef/knife/digital_ocean_droplet_destroy.rb +7 -2
- data/lib/knife-digital_ocean/version.rb +1 -1
- data/spec/fixtures/vcr_cassettes/droplet_power.yml +13 -12
- data/spec/fixtures/vcr_cassettes/droplet_powercycle.yml +13 -74
- data/spec/fixtures/vcr_cassettes/droplet_reboot.yml +13 -74
- data/spec/fixtures/vcr_cassettes/droplet_rebuild.yml +14 -13
- data/spec/fixtures/vcr_cassettes/droplet_rename.yml +13 -74
- data/spec/fixtures/vcr_cassettes/droplet_resize.yml +14 -13
- data/spec/fixtures/vcr_cassettes/droplet_snapshot.yml +13 -1004
- data/spec/lib/chef/knife/digital_ocean_droplet_power_spec.rb +1 -1
- data/spec/lib/chef/knife/digital_ocean_droplet_powercycle_spec.rb +1 -1
- data/spec/lib/chef/knife/digital_ocean_droplet_reboot_spec.rb +1 -1
- data/spec/lib/chef/knife/digital_ocean_droplet_rebuild_spec.rb +2 -2
- data/spec/lib/chef/knife/digital_ocean_droplet_rename_spec.rb +1 -1
- data/spec/lib/chef/knife/digital_ocean_droplet_resize_spec.rb +1 -1
- data/spec/lib/chef/knife/digital_ocean_droplet_snapshot_spec.rb +1 -1
- metadata +16 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1bedce18b715271ffb566428d10d5ab93e1af8f2
|
4
|
+
data.tar.gz: 5ba947ad792cfa26ec4232457cea6e79cf6dd96c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 138af5bec6a1ea1483e41cd5b30503ba53007f04e8f3203288c5e153d63702f8660dc36d350b4e4bb60e169f61c86b3ea5a81c39e66578bbab700f5e604df7fe
|
7
|
+
data.tar.gz: acebc494d1a7b4dab59844e9ac9358837eeae99e28c55c5e9d7a202eb801db06622924d91f5e8fc091f728fb9b531ee1cebb05f54f22d697e7c0afa96f130d3f
|
data/CHANGELOG.md
CHANGED
data/README.md
CHANGED
@@ -8,7 +8,7 @@
|
|
8
8
|
[![Coverage Status](https://coveralls.io/repos/rmoriz/knife-digital_ocean/badge.png?branch=master)](https://coveralls.io/r/rmoriz/knife-digital_ocean?branch=master)
|
9
9
|
|
10
10
|
This is a plugin for [Chef's](http://www.opscode.com/chef/) [knife](http://wiki.opscode.com/display/chef/Knife) tool. It allows you to bootstrap virtual machines with [DigitalOcean.com](https://www.digitalocean.com/) including the initial bootstrapping of chef on that system.
|
11
|
-
You can also use [knife-solo](http://matschaffer.github.com/knife-solo/) for chef bootstrapping or skip it altogether for another solution.
|
11
|
+
You can also use [knife-solo](http://matschaffer.github.com/knife-solo/) or [knife-zero](https://github.com/higanworks/knife-zero) for chef bootstrapping or skip it altogether for another solution.
|
12
12
|
|
13
13
|
This knife plugin uses the [droplet_kit](https://github.com/digitalocean/droplet_kit) rubygem.
|
14
14
|
|
@@ -114,8 +114,9 @@ knife[:digital_ocean_access_token] = 'YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY'
|
|
114
114
|
There are three different ways of creating a server/droplet instance:
|
115
115
|
|
116
116
|
If you just want to launch an instance
|
117
|
-
form the command line without any bootstrapping, go for option **
|
118
|
-
If you use ```knife-
|
117
|
+
form the command line without any bootstrapping, go for option **D**.
|
118
|
+
If you use ```knife-zero``` try **C**,
|
119
|
+
if you use ```knife-solo``` try **B** and if you are a ```chef-server```-fan
|
119
120
|
use method **A**:
|
120
121
|
#### A. With bootstrapping in an chef-server environment:
|
121
122
|
|
@@ -195,7 +196,26 @@ __Example__
|
|
195
196
|
--solo
|
196
197
|
```
|
197
198
|
|
198
|
-
#### C. With
|
199
|
+
#### C. With knife-zero bootstrapping
|
200
|
+
|
201
|
+
You need to have [knife-zero](https://github.com/higanworks/knife-zero) gem installed.
|
202
|
+
|
203
|
+
This will create a droplet and run `knife zero bootstrap <IP>` equivalent for it.
|
204
|
+
Please consult the [knife-zero documentation](https://github.com/higanworks/knife-zero#knife-zero-bootstrap) for further details.
|
205
|
+
|
206
|
+
__Example__
|
207
|
+
|
208
|
+
```bash
|
209
|
+
➜ knife digital_ocean droplet create --server-name awesome-vm1.vm.io \
|
210
|
+
--image debian-7-0-x64 \
|
211
|
+
--location lon1 \
|
212
|
+
--size 2gb \
|
213
|
+
--ssh-keys 1234,4567 \
|
214
|
+
--run-list "<RUNLIST>" \
|
215
|
+
--zero
|
216
|
+
```
|
217
|
+
|
218
|
+
#### D. With your custom external bootstrapping script or without chef at all
|
199
219
|
|
200
220
|
This will just create a droplet and return its IP-address. Nothing else. You can now run your custom solution to provision the droplet.
|
201
221
|
|
@@ -243,12 +263,12 @@ OK
|
|
243
263
|
|
244
264
|
#### Turn Power On/Off
|
245
265
|
```shell
|
246
|
-
➜ knife digital_ocean power -I 1824315 -
|
266
|
+
➜ knife digital_ocean power -I 1824315 -a on
|
247
267
|
OK
|
248
268
|
```
|
249
269
|
|
250
270
|
```shell
|
251
|
-
➜ knife digital_ocean power -I 1824315 -
|
271
|
+
➜ knife digital_ocean power -I 1824315 -a off
|
252
272
|
OK
|
253
273
|
```
|
254
274
|
|
@@ -446,13 +466,13 @@ example.com 1800
|
|
446
466
|
#### Create a domain record
|
447
467
|
|
448
468
|
```shell
|
449
|
-
➜ knife digital_ocean domain create -D example.com -T cname -N www -a @
|
469
|
+
➜ knife digital_ocean domain record create -D example.com -T cname -N www -a @
|
450
470
|
```
|
451
471
|
|
452
472
|
#### Destroy a domain record
|
453
473
|
|
454
474
|
```shell
|
455
|
-
➜ knife digital_ocean domain destroy -D example.com -R 3355880
|
475
|
+
➜ knife digital_ocean domain record destroy -D example.com -R 3355880
|
456
476
|
OK
|
457
477
|
```
|
458
478
|
|
data/knife-digital_ocean.gemspec
CHANGED
@@ -20,6 +20,7 @@ Gem::Specification.new do |gem|
|
|
20
20
|
gem.add_development_dependency 'rubocop', '~> 0.27'
|
21
21
|
gem.add_development_dependency 'rake'
|
22
22
|
gem.add_development_dependency 'knife-solo'
|
23
|
+
gem.add_development_dependency 'knife-zero'
|
23
24
|
gem.add_development_dependency 'webmock', '~> 1.20'
|
24
25
|
gem.add_development_dependency 'vcr', '~> 2.9'
|
25
26
|
gem.add_development_dependency 'guard', '~> 2.8'
|
@@ -25,6 +25,7 @@ class Chef
|
|
25
25
|
# Knife loads subcommands automatically, so we can just check if the
|
26
26
|
# class exists.
|
27
27
|
Chef::Knife::SoloBootstrap.load_deps if defined? Chef::Knife::SoloBootstrap
|
28
|
+
Chef::Knife::ZeroBootstrap.load_deps if defined? Chef::Knife::ZeroBootstrap
|
28
29
|
end
|
29
30
|
|
30
31
|
banner 'knife digital_ocean droplet create (options)'
|
@@ -75,6 +76,11 @@ class Chef
|
|
75
76
|
description: 'Do a chef-solo bootstrap on the droplet using knife-solo',
|
76
77
|
proc: proc { |s| Chef::Config[:knife][:solo] = s }
|
77
78
|
|
79
|
+
option :zero,
|
80
|
+
long: '--[no-]zero',
|
81
|
+
description: 'Do a chef-zero bootstrap on the droplet using knife-zero',
|
82
|
+
proc: proc {|z| Chef::Config[:knife][:zero] = z }
|
83
|
+
|
78
84
|
option :ssh_user,
|
79
85
|
short: '-x USERNAME',
|
80
86
|
long: '--ssh-user USERNAME',
|
@@ -196,6 +202,15 @@ class Chef
|
|
196
202
|
exit 1
|
197
203
|
end
|
198
204
|
|
205
|
+
if zero_bootstrap? && !defined?(Chef::Knife::ZeroBootstrap)
|
206
|
+
ui.error [
|
207
|
+
'Knife plugin knife-zero was not found.',
|
208
|
+
'Please add the knife-zero gem to your Gemfile or',
|
209
|
+
'install it manually with `gem install knife-zero`.'
|
210
|
+
].join(' ')
|
211
|
+
exit 1
|
212
|
+
end
|
213
|
+
|
199
214
|
droplet = DropletKit::Droplet.new(name: locate_config_value(:server_name),
|
200
215
|
size: locate_config_value(:size),
|
201
216
|
image: locate_config_value(:image),
|
@@ -232,7 +247,7 @@ class Chef
|
|
232
247
|
puts 'done'
|
233
248
|
end
|
234
249
|
|
235
|
-
if locate_config_value(:bootstrap) || solo_bootstrap?
|
250
|
+
if locate_config_value(:bootstrap) || solo_bootstrap? || zero_bootstrap?
|
236
251
|
bootstrap_for_node(ip_address).run
|
237
252
|
else
|
238
253
|
puts ip_address
|
@@ -293,12 +308,22 @@ class Chef
|
|
293
308
|
end
|
294
309
|
|
295
310
|
def bootstrap_class
|
296
|
-
solo_bootstrap?
|
311
|
+
if solo_bootstrap?
|
312
|
+
Chef::Knife::SoloBootstrap
|
313
|
+
elsif zero_bootstrap?
|
314
|
+
Chef::Knife::ZeroBootstrap
|
315
|
+
else
|
316
|
+
Chef::Knife::Bootstrap
|
317
|
+
end
|
297
318
|
end
|
298
319
|
|
299
320
|
def solo_bootstrap?
|
300
321
|
config[:solo] || (config[:solo].nil? && Chef::Config[:knife][:solo])
|
301
322
|
end
|
323
|
+
|
324
|
+
def zero_bootstrap?
|
325
|
+
config[:zero] || (config[:zero].nil? && Chef::Config[:knife][:zero])
|
326
|
+
end
|
302
327
|
end
|
303
328
|
end
|
304
329
|
end
|
@@ -36,11 +36,16 @@ class Chef
|
|
36
36
|
|
37
37
|
droplets_ids = []
|
38
38
|
|
39
|
-
unless locate_config_value(:server)
|
40
|
-
ui.error('Server cannot be empty.
|
39
|
+
unless locate_config_value(:server)
|
40
|
+
ui.error('Server cannot be empty. => -S <server-id>')
|
41
41
|
exit 1
|
42
42
|
end
|
43
43
|
|
44
|
+
unless locate_config_value(:all)
|
45
|
+
ui.error('Warning all servers will be lost unless you exit with ctrl-c now!')
|
46
|
+
15.times{|x| print x; print 13.chr; sleep 15}
|
47
|
+
end
|
48
|
+
|
44
49
|
if locate_config_value(:all) && !client.droplets
|
45
50
|
ui.error('You don`t have droplets')
|
46
51
|
exit 1
|
@@ -2,7 +2,7 @@
|
|
2
2
|
http_interactions:
|
3
3
|
- request:
|
4
4
|
method: post
|
5
|
-
uri: https://api.digitalocean.com/v2/droplets/
|
5
|
+
uri: https://api.digitalocean.com/v2/droplets/4829346/actions
|
6
6
|
body:
|
7
7
|
encoding: UTF-8
|
8
8
|
string: '{"type":"power_off"}'
|
@@ -12,7 +12,7 @@ http_interactions:
|
|
12
12
|
Authorization:
|
13
13
|
- Bearer FAKE_ACCESS_TOKEN
|
14
14
|
User-Agent:
|
15
|
-
- Faraday v0.9.
|
15
|
+
- Faraday v0.9.1
|
16
16
|
Accept-Encoding:
|
17
17
|
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
18
18
|
Accept:
|
@@ -25,7 +25,7 @@ http_interactions:
|
|
25
25
|
Server:
|
26
26
|
- cloudflare-nginx
|
27
27
|
Date:
|
28
|
-
-
|
28
|
+
- Sat, 11 Apr 2015 23:27:14 GMT
|
29
29
|
Content-Type:
|
30
30
|
- application/json; charset=utf-8
|
31
31
|
Transfer-Encoding:
|
@@ -42,24 +42,25 @@ http_interactions:
|
|
42
42
|
X-Content-Type-Options:
|
43
43
|
- nosniff
|
44
44
|
Ratelimit-Limit:
|
45
|
-
- '
|
45
|
+
- '5000'
|
46
46
|
Ratelimit-Remaining:
|
47
|
-
- '
|
47
|
+
- '4997'
|
48
48
|
Ratelimit-Reset:
|
49
|
-
- '
|
49
|
+
- '1428797844'
|
50
50
|
Etag:
|
51
|
-
- '"
|
51
|
+
- '"8add870987c9c4e49d74ba6b653690a3"'
|
52
52
|
Cache-Control:
|
53
53
|
- max-age=0, private, must-revalidate
|
54
54
|
X-Request-Id:
|
55
|
-
-
|
55
|
+
- e2cac9ba-7bc9-444f-939c-02c57920221c
|
56
56
|
X-Runtime:
|
57
|
-
- '0.
|
57
|
+
- '0.166743'
|
58
58
|
Cf-Ray:
|
59
|
-
-
|
59
|
+
- 1d5a76021bd31834-EWR
|
60
60
|
body:
|
61
61
|
encoding: UTF-8
|
62
|
-
string: '{"action":{"id":
|
62
|
+
string: '{"action":{"id":47949289,"status":"in-progress","type":"power_off","started_at":"2015-04-11T23:27:14Z","completed_at":null,"resource_id":4829346,"resource_type":"droplet","region":{"name":"New
|
63
|
+
York 3","slug":"nyc3","sizes":["512mb","1gb","2gb","4gb","8gb","16gb","32gb","48gb","64gb"],"features":["virtio","private_networking","backups","ipv6","metadata"],"available":true},"region_slug":"nyc3"}}'
|
63
64
|
http_version:
|
64
|
-
recorded_at:
|
65
|
+
recorded_at: Sat, 11 Apr 2015 23:27:14 GMT
|
65
66
|
recorded_with: VCR 2.9.3
|
@@ -2,7 +2,7 @@
|
|
2
2
|
http_interactions:
|
3
3
|
- request:
|
4
4
|
method: post
|
5
|
-
uri: https://api.digitalocean.com/v2/droplets/
|
5
|
+
uri: https://api.digitalocean.com/v2/droplets/4829346/actions
|
6
6
|
body:
|
7
7
|
encoding: UTF-8
|
8
8
|
string: '{"type":"power_cycle"}'
|
@@ -12,7 +12,7 @@ http_interactions:
|
|
12
12
|
Authorization:
|
13
13
|
- Bearer FAKE_ACCESS_TOKEN
|
14
14
|
User-Agent:
|
15
|
-
- Faraday v0.9.
|
15
|
+
- Faraday v0.9.1
|
16
16
|
Accept-Encoding:
|
17
17
|
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
18
18
|
Accept:
|
@@ -25,7 +25,7 @@ http_interactions:
|
|
25
25
|
Server:
|
26
26
|
- cloudflare-nginx
|
27
27
|
Date:
|
28
|
-
-
|
28
|
+
- Sat, 11 Apr 2015 23:30:14 GMT
|
29
29
|
Content-Type:
|
30
30
|
- application/json; charset=utf-8
|
31
31
|
Transfer-Encoding:
|
@@ -42,86 +42,25 @@ http_interactions:
|
|
42
42
|
X-Content-Type-Options:
|
43
43
|
- nosniff
|
44
44
|
Ratelimit-Limit:
|
45
|
-
- '
|
45
|
+
- '5000'
|
46
46
|
Ratelimit-Remaining:
|
47
|
-
- '
|
47
|
+
- '4994'
|
48
48
|
Ratelimit-Reset:
|
49
|
-
- '
|
49
|
+
- '1428797844'
|
50
50
|
Etag:
|
51
|
-
- '"
|
51
|
+
- '"584c42220a5ecaaddd2c2acbbfcc79bf"'
|
52
52
|
Cache-Control:
|
53
53
|
- max-age=0, private, must-revalidate
|
54
54
|
X-Request-Id:
|
55
|
-
-
|
55
|
+
- b5a00c07-3d6b-44a8-897c-8dd6fdc2d22a
|
56
56
|
X-Runtime:
|
57
|
-
- '0.
|
57
|
+
- '0.177778'
|
58
58
|
Cf-Ray:
|
59
|
-
-
|
59
|
+
- 1d5a7a65e40400ad-EWR
|
60
60
|
body:
|
61
61
|
encoding: UTF-8
|
62
|
-
string: '{"action":{"id":
|
62
|
+
string: '{"action":{"id":47949379,"status":"in-progress","type":"power_cycle","started_at":"2015-04-11T23:30:14Z","completed_at":null,"resource_id":4829346,"resource_type":"droplet","region":{"name":"New
|
63
|
+
York 3","slug":"nyc3","sizes":["512mb","1gb","2gb","4gb","8gb","16gb","32gb","48gb","64gb"],"features":["virtio","private_networking","backups","ipv6","metadata"],"available":true},"region_slug":"nyc3"}}'
|
63
64
|
http_version:
|
64
|
-
recorded_at:
|
65
|
-
- request:
|
66
|
-
method: get
|
67
|
-
uri: https://api.digitalocean.com/v2/droplets/3193966
|
68
|
-
body:
|
69
|
-
encoding: US-ASCII
|
70
|
-
string: ''
|
71
|
-
headers:
|
72
|
-
Content-Type:
|
73
|
-
- application/json
|
74
|
-
Authorization:
|
75
|
-
- Bearer FAKE_ACCESS_TOKEN
|
76
|
-
User-Agent:
|
77
|
-
- Faraday v0.9.0
|
78
|
-
Accept-Encoding:
|
79
|
-
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
80
|
-
Accept:
|
81
|
-
- "*/*"
|
82
|
-
response:
|
83
|
-
status:
|
84
|
-
code: 200
|
85
|
-
message: OK
|
86
|
-
headers:
|
87
|
-
Server:
|
88
|
-
- cloudflare-nginx
|
89
|
-
Date:
|
90
|
-
- Tue, 18 Nov 2014 01:46:02 GMT
|
91
|
-
Content-Type:
|
92
|
-
- application/json; charset=utf-8
|
93
|
-
Transfer-Encoding:
|
94
|
-
- chunked
|
95
|
-
Connection:
|
96
|
-
- keep-alive
|
97
|
-
Set-Cookie: _COOKIE_ID_
|
98
|
-
Status:
|
99
|
-
- 200 OK
|
100
|
-
X-Frame-Options:
|
101
|
-
- SAMEORIGIN
|
102
|
-
X-Xss-Protection:
|
103
|
-
- 1; mode=block
|
104
|
-
X-Content-Type-Options:
|
105
|
-
- nosniff
|
106
|
-
Ratelimit-Limit:
|
107
|
-
- '1200'
|
108
|
-
Ratelimit-Remaining:
|
109
|
-
- '1123'
|
110
|
-
Ratelimit-Reset:
|
111
|
-
- '1416275267'
|
112
|
-
Cache-Control:
|
113
|
-
- max-age=0, private, must-revalidate
|
114
|
-
X-Request-Id:
|
115
|
-
- 8721b3f7-6e49-4e20-853c-d966b8997887
|
116
|
-
X-Runtime:
|
117
|
-
- '0.173148'
|
118
|
-
Cf-Ray:
|
119
|
-
- 18b07df667200ecd-EWR
|
120
|
-
body:
|
121
|
-
encoding: UTF-8
|
122
|
-
string: '{"droplet":{"id":3193966,"name":"twerkit.gregf.org","memory":512,"vcpus":1,"disk":20,"locked":true,"status":"active","kernel":{"id":952,"name":"Debian
|
123
|
-
7.0 x64 vmlinuz-3.2.0-4-amd64 (3.2.54-2)","version":"3.2.0-4-amd64"},"created_at":"2014-11-18T00:29:26Z","features":["virtio"],"backup_ids":[],"snapshot_ids":[8073571],"image":{"id":8073571,"name":"rebuild-snapshot","distribution":"Debian","slug":null,"public":false,"regions":["nyc3","nyc3"],"created_at":"2014-11-18T00:58:36Z","min_disk_size":20},"size_slug":"512mb","networks":{"v4":[{"ip_address":"104.236.29.101","netmask":"255.255.192.0","gateway":"104.236.0.1","type":"public"}],"v6":[]},"region":{"name":"New
|
124
|
-
York 3","slug":"nyc3","sizes":["32gb","16gb","2gb","1gb","4gb","8gb","512mb","64gb","48gb"],"features":["virtio","private_networking","backups","ipv6","metadata"],"available":true}}}'
|
125
|
-
http_version:
|
126
|
-
recorded_at: Tue, 18 Nov 2014 01:46:02 GMT
|
65
|
+
recorded_at: Sat, 11 Apr 2015 23:30:14 GMT
|
127
66
|
recorded_with: VCR 2.9.3
|
@@ -2,7 +2,7 @@
|
|
2
2
|
http_interactions:
|
3
3
|
- request:
|
4
4
|
method: post
|
5
|
-
uri: https://api.digitalocean.com/v2/droplets/
|
5
|
+
uri: https://api.digitalocean.com/v2/droplets/4829346/actions
|
6
6
|
body:
|
7
7
|
encoding: UTF-8
|
8
8
|
string: '{"type":"reboot"}'
|
@@ -12,7 +12,7 @@ http_interactions:
|
|
12
12
|
Authorization:
|
13
13
|
- Bearer FAKE_ACCESS_TOKEN
|
14
14
|
User-Agent:
|
15
|
-
- Faraday v0.9.
|
15
|
+
- Faraday v0.9.1
|
16
16
|
Accept-Encoding:
|
17
17
|
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
18
18
|
Accept:
|
@@ -25,7 +25,7 @@ http_interactions:
|
|
25
25
|
Server:
|
26
26
|
- cloudflare-nginx
|
27
27
|
Date:
|
28
|
-
-
|
28
|
+
- Sat, 11 Apr 2015 23:31:37 GMT
|
29
29
|
Content-Type:
|
30
30
|
- application/json; charset=utf-8
|
31
31
|
Transfer-Encoding:
|
@@ -42,86 +42,25 @@ http_interactions:
|
|
42
42
|
X-Content-Type-Options:
|
43
43
|
- nosniff
|
44
44
|
Ratelimit-Limit:
|
45
|
-
- '
|
45
|
+
- '5000'
|
46
46
|
Ratelimit-Remaining:
|
47
|
-
- '
|
47
|
+
- '4991'
|
48
48
|
Ratelimit-Reset:
|
49
|
-
- '
|
49
|
+
- '1428797844'
|
50
50
|
Etag:
|
51
|
-
- '"
|
51
|
+
- '"e54fdd7c533ef5a8cdfb54debefe0692"'
|
52
52
|
Cache-Control:
|
53
53
|
- max-age=0, private, must-revalidate
|
54
54
|
X-Request-Id:
|
55
|
-
-
|
55
|
+
- d3fc2240-c74e-4833-8170-5ac720a71c89
|
56
56
|
X-Runtime:
|
57
|
-
- '0.
|
57
|
+
- '0.151267'
|
58
58
|
Cf-Ray:
|
59
|
-
-
|
59
|
+
- 1d5a7c6f5be71876-EWR
|
60
60
|
body:
|
61
61
|
encoding: UTF-8
|
62
|
-
string: '{"action":{"id":
|
62
|
+
string: '{"action":{"id":47949421,"status":"in-progress","type":"reboot","started_at":"2015-04-11T23:31:37Z","completed_at":null,"resource_id":4829346,"resource_type":"droplet","region":{"name":"New
|
63
|
+
York 3","slug":"nyc3","sizes":["512mb","1gb","2gb","4gb","8gb","16gb","32gb","48gb","64gb"],"features":["virtio","private_networking","backups","ipv6","metadata"],"available":true},"region_slug":"nyc3"}}'
|
63
64
|
http_version:
|
64
|
-
recorded_at:
|
65
|
-
- request:
|
66
|
-
method: get
|
67
|
-
uri: https://api.digitalocean.com/v2/droplets/3193966
|
68
|
-
body:
|
69
|
-
encoding: US-ASCII
|
70
|
-
string: ''
|
71
|
-
headers:
|
72
|
-
Content-Type:
|
73
|
-
- application/json
|
74
|
-
Authorization:
|
75
|
-
- Bearer FAKE_ACCESS_TOKEN
|
76
|
-
User-Agent:
|
77
|
-
- Faraday v0.9.0
|
78
|
-
Accept-Encoding:
|
79
|
-
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
80
|
-
Accept:
|
81
|
-
- "*/*"
|
82
|
-
response:
|
83
|
-
status:
|
84
|
-
code: 200
|
85
|
-
message: OK
|
86
|
-
headers:
|
87
|
-
Server:
|
88
|
-
- cloudflare-nginx
|
89
|
-
Date:
|
90
|
-
- Tue, 18 Nov 2014 01:41:10 GMT
|
91
|
-
Content-Type:
|
92
|
-
- application/json; charset=utf-8
|
93
|
-
Transfer-Encoding:
|
94
|
-
- chunked
|
95
|
-
Connection:
|
96
|
-
- keep-alive
|
97
|
-
Set-Cookie: _COOKIE_ID_
|
98
|
-
Status:
|
99
|
-
- 200 OK
|
100
|
-
X-Frame-Options:
|
101
|
-
- SAMEORIGIN
|
102
|
-
X-Xss-Protection:
|
103
|
-
- 1; mode=block
|
104
|
-
X-Content-Type-Options:
|
105
|
-
- nosniff
|
106
|
-
Ratelimit-Limit:
|
107
|
-
- '1200'
|
108
|
-
Ratelimit-Remaining:
|
109
|
-
- '1121'
|
110
|
-
Ratelimit-Reset:
|
111
|
-
- '1416274890'
|
112
|
-
Cache-Control:
|
113
|
-
- max-age=0, private, must-revalidate
|
114
|
-
X-Request-Id:
|
115
|
-
- 79774f3b-ac64-450f-9603-0e8a32ac35d6
|
116
|
-
X-Runtime:
|
117
|
-
- '0.125194'
|
118
|
-
Cf-Ray:
|
119
|
-
- 18b076d3a4aa0ecd-EWR
|
120
|
-
body:
|
121
|
-
encoding: UTF-8
|
122
|
-
string: '{"droplet":{"id":3193966,"name":"twerkit.gregf.org","memory":512,"vcpus":1,"disk":20,"locked":true,"status":"active","kernel":{"id":952,"name":"Debian
|
123
|
-
7.0 x64 vmlinuz-3.2.0-4-amd64 (3.2.54-2)","version":"3.2.0-4-amd64"},"created_at":"2014-11-18T00:29:26Z","features":["virtio"],"backup_ids":[],"snapshot_ids":[8073571],"image":{"id":8073571,"name":"rebuild-snapshot","distribution":"Debian","slug":null,"public":false,"regions":["nyc3","nyc3"],"created_at":"2014-11-18T00:58:36Z","min_disk_size":20},"size_slug":"512mb","networks":{"v4":[{"ip_address":"104.236.29.101","netmask":"255.255.192.0","gateway":"104.236.0.1","type":"public"}],"v6":[]},"region":{"name":"New
|
124
|
-
York 3","slug":"nyc3","sizes":["32gb","16gb","2gb","1gb","4gb","8gb","512mb","64gb","48gb"],"features":["virtio","private_networking","backups","ipv6","metadata"],"available":true}}}'
|
125
|
-
http_version:
|
126
|
-
recorded_at: Tue, 18 Nov 2014 01:41:10 GMT
|
65
|
+
recorded_at: Sat, 11 Apr 2015 23:31:37 GMT
|
127
66
|
recorded_with: VCR 2.9.3
|
@@ -2,17 +2,17 @@
|
|
2
2
|
http_interactions:
|
3
3
|
- request:
|
4
4
|
method: post
|
5
|
-
uri: https://api.digitalocean.com/v2/droplets/
|
5
|
+
uri: https://api.digitalocean.com/v2/droplets/4829346/actions
|
6
6
|
body:
|
7
7
|
encoding: UTF-8
|
8
|
-
string: '{"type":"rebuild","image":"
|
8
|
+
string: '{"type":"rebuild","image":"10322059"}'
|
9
9
|
headers:
|
10
10
|
Content-Type:
|
11
11
|
- application/json
|
12
12
|
Authorization:
|
13
13
|
- Bearer FAKE_ACCESS_TOKEN
|
14
14
|
User-Agent:
|
15
|
-
- Faraday v0.9.
|
15
|
+
- Faraday v0.9.1
|
16
16
|
Accept-Encoding:
|
17
17
|
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
18
18
|
Accept:
|
@@ -25,7 +25,7 @@ http_interactions:
|
|
25
25
|
Server:
|
26
26
|
- cloudflare-nginx
|
27
27
|
Date:
|
28
|
-
-
|
28
|
+
- Sat, 11 Apr 2015 23:33:41 GMT
|
29
29
|
Content-Type:
|
30
30
|
- application/json; charset=utf-8
|
31
31
|
Transfer-Encoding:
|
@@ -42,24 +42,25 @@ http_interactions:
|
|
42
42
|
X-Content-Type-Options:
|
43
43
|
- nosniff
|
44
44
|
Ratelimit-Limit:
|
45
|
-
- '
|
45
|
+
- '5000'
|
46
46
|
Ratelimit-Remaining:
|
47
|
-
- '
|
47
|
+
- '4986'
|
48
48
|
Ratelimit-Reset:
|
49
|
-
- '
|
49
|
+
- '1428797844'
|
50
50
|
Etag:
|
51
|
-
- '"
|
51
|
+
- '"d44909df3094d7c57563eeff2ae9a9c7"'
|
52
52
|
Cache-Control:
|
53
53
|
- max-age=0, private, must-revalidate
|
54
54
|
X-Request-Id:
|
55
|
-
-
|
55
|
+
- 5e399a3c-23cc-4647-8d3c-abd6dc42233a
|
56
56
|
X-Runtime:
|
57
|
-
- '0.
|
57
|
+
- '0.124368'
|
58
58
|
Cf-Ray:
|
59
|
-
-
|
59
|
+
- 1d5a7f75b3a61876-EWR
|
60
60
|
body:
|
61
61
|
encoding: UTF-8
|
62
|
-
string: '{"action":{"id":
|
62
|
+
string: '{"action":{"id":47949482,"status":"in-progress","type":"rebuild","started_at":"2015-04-11T23:33:41Z","completed_at":null,"resource_id":4829346,"resource_type":"droplet","region":{"name":"New
|
63
|
+
York 3","slug":"nyc3","sizes":["512mb","1gb","2gb","4gb","8gb","16gb","32gb","48gb","64gb"],"features":["virtio","private_networking","backups","ipv6","metadata"],"available":true},"region_slug":"nyc3"}}'
|
63
64
|
http_version:
|
64
|
-
recorded_at:
|
65
|
+
recorded_at: Sat, 11 Apr 2015 23:33:41 GMT
|
65
66
|
recorded_with: VCR 2.9.3
|