tugboat 0.0.9 → 0.2.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.
@@ -0,0 +1,215 @@
1
+ require 'spec_helper'
2
+
3
+ describe Tugboat::CLI do
4
+ include_context "spec"
5
+
6
+ describe "rebuild" do
7
+ it "rebuilds a droplet with a fuzzy name based on an image with a fuzy name" do
8
+ stub_request(:get, "https://api.digitalocean.com/droplets?api_key=#{api_key}&client_id=#{client_key}").
9
+ to_return(:status => 200, :body => fixture("show_droplets"), :headers => {})
10
+
11
+ stub_request(:get, "https://api.digitalocean.com/images?api_key=#{api_key}&client_id=#{client_key}").
12
+ to_return(:status => 200, :body => fixture("show_images"), :headers => {})
13
+
14
+ stub_request(:post, "https://api.digitalocean.com/droplets/100823/rebuild?api_key=#{api_key}&client_id=#{client_key}&image_id=478").
15
+ to_return(:status => 200, :body => '{ "status": "OK", "event_id": 7504 }', :headers => {})
16
+
17
+ $stdin.should_receive(:gets).and_return("y")
18
+
19
+ @cli.rebuild("foo", "NLP Final")
20
+
21
+ expect($stdout.string).to eq <<-eos
22
+ Droplet fuzzy name provided. Finding droplet ID...done\e[0m, 100823 (foo)\nImage fuzzy name provided. Finding image ID...done\e[0m, 478 (NLP Final)\nWarning! Potentially destructive action. Please confirm [y/n]: Queuing rebuild for droplet 100823 (foo) with image 478 (NLP Final)...done
23
+ eos
24
+ expect(a_request(:post, "https://api.digitalocean.com/droplets/100823/rebuild?api_key=#{api_key}&client_id=#{client_key}&image_id=478")).to have_been_made
25
+ end
26
+
27
+ it "rebuilds a droplet with an id based on an image with a fuzy name" do
28
+ stub_request(:get, "https://api.digitalocean.com/droplets/#{droplet_id}?api_key=#{api_key}&client_id=#{client_key}").
29
+ to_return(:status => 200, :body => fixture("show_droplet"))
30
+
31
+ stub_request(:get, "https://api.digitalocean.com/images?api_key=#{api_key}&client_id=#{client_key}").
32
+ to_return(:status => 200, :body => fixture("show_images"), :headers => {})
33
+
34
+ stub_request(:post, "https://api.digitalocean.com/droplets/100823/rebuild?api_key=#{api_key}&client_id=#{client_key}&image_id=478").
35
+ to_return(:status => 200, :body => '{ "status": "OK", "event_id": 7504 }', :headers => {})
36
+
37
+ $stdin.should_receive(:gets).and_return("y")
38
+
39
+ @cli.options = @cli.options.merge(:id => droplet_id)
40
+ @cli.rebuild("foo", "NLP Final")
41
+
42
+ expect($stdout.string).to eq <<-eos
43
+ Droplet id provided. Finding Droplet...done\e[0m, 100823 (foo)\nImage fuzzy name provided. Finding image ID...done\e[0m, 478 (NLP Final)\nWarning! Potentially destructive action. Please confirm [y/n]: Queuing rebuild for droplet 100823 (foo) with image 478 (NLP Final)...done
44
+ eos
45
+ expect(a_request(:post, "https://api.digitalocean.com/droplets/100823/rebuild?api_key=#{api_key}&client_id=#{client_key}&image_id=478")).to have_been_made
46
+ end
47
+
48
+ it "rebuilds a droplet with a name based on an image with a fuzy name" do
49
+ stub_request(:get, "https://api.digitalocean.com/droplets?api_key=#{api_key}&client_id=#{client_key}").
50
+ to_return(:status => 200, :body => fixture("show_droplets"))
51
+
52
+ stub_request(:get, "https://api.digitalocean.com/images?api_key=#{api_key}&client_id=#{client_key}").
53
+ to_return(:status => 200, :body => fixture("show_images"), :headers => {})
54
+
55
+ stub_request(:post, "https://api.digitalocean.com/droplets/100823/rebuild?api_key=#{api_key}&client_id=#{client_key}&image_id=478").
56
+ to_return(:status => 200, :body => '{ "status": "OK", "event_id": 7504 }', :headers => {})
57
+
58
+ $stdin.should_receive(:gets).and_return("y")
59
+
60
+ @cli.options = @cli.options.merge(:name => droplet_name)
61
+ @cli.rebuild("foo", "NLP Final")
62
+
63
+ expect($stdout.string).to eq <<-eos
64
+ Droplet name provided. Finding droplet ID...done\e[0m, 100823 (foo)\nImage fuzzy name provided. Finding image ID...done\e[0m, 478 (NLP Final)\nWarning! Potentially destructive action. Please confirm [y/n]: Queuing rebuild for droplet 100823 (foo) with image 478 (NLP Final)...done
65
+ eos
66
+ expect(a_request(:post, "https://api.digitalocean.com/droplets/100823/rebuild?api_key=#{api_key}&client_id=#{client_key}&image_id=478")).to have_been_made
67
+ end
68
+
69
+ it "rebuilds a droplet with a fuzzy name based on an image with an id" do
70
+ stub_request(:get, "https://api.digitalocean.com/droplets?api_key=#{api_key}&client_id=#{client_key}").
71
+ to_return(:status => 200, :body => fixture("show_droplets"), :headers => {})
72
+
73
+ stub_request(:get, "https://api.digitalocean.com/images/478?api_key=#{api_key}&client_id=#{client_key}").
74
+ to_return(:status => 200, :body => fixture("show_image"), :headers => {})
75
+
76
+ stub_request(:post, "https://api.digitalocean.com/droplets/100823/rebuild?api_key=#{api_key}&client_id=#{client_key}&image_id=478").
77
+ to_return(:status => 200, :body => '{ "status": "OK", "event_id": 7504 }', :headers => {})
78
+
79
+ $stdin.should_receive(:gets).and_return("y")
80
+
81
+ @cli.options = @cli.options.merge(:image_id => 478)
82
+ @cli.rebuild("foo", "NLP Final")
83
+
84
+ expect($stdout.string).to eq <<-eos
85
+ Droplet fuzzy name provided. Finding droplet ID...done\e[0m, 100823 (foo)\nImage id provided. Finding Image...done\e[0m, 478 (NLP Final)\nWarning! Potentially destructive action. Please confirm [y/n]: Queuing rebuild for droplet 100823 (foo) with image 478 (NLP Final)...done
86
+ eos
87
+ expect(a_request(:post, "https://api.digitalocean.com/droplets/100823/rebuild?api_key=#{api_key}&client_id=#{client_key}&image_id=478")).to have_been_made
88
+ end
89
+
90
+ it "rebuilds a droplet with an id based on an image with an id" do
91
+ stub_request(:get, "https://api.digitalocean.com/droplets/#{droplet_id}?api_key=#{api_key}&client_id=#{client_key}").
92
+ to_return(:status => 200, :body => fixture("show_droplet"))
93
+
94
+ stub_request(:get, "https://api.digitalocean.com/images/478?api_key=#{api_key}&client_id=#{client_key}").
95
+ to_return(:status => 200, :body => fixture("show_image"), :headers => {})
96
+
97
+ stub_request(:post, "https://api.digitalocean.com/droplets/100823/rebuild?api_key=#{api_key}&client_id=#{client_key}&image_id=478").
98
+ to_return(:status => 200, :body => '{ "status": "OK", "event_id": 7504 }', :headers => {})
99
+
100
+ $stdin.should_receive(:gets).and_return("y")
101
+
102
+ @cli.options = @cli.options.merge(:id => droplet_id, :image_id => 478)
103
+ @cli.rebuild("foo", "NLP Final")
104
+
105
+ expect($stdout.string).to eq <<-eos
106
+ Droplet id provided. Finding Droplet...done\e[0m, 100823 (foo)\nImage id provided. Finding Image...done\e[0m, 478 (NLP Final)\nWarning! Potentially destructive action. Please confirm [y/n]: Queuing rebuild for droplet 100823 (foo) with image 478 (NLP Final)...done
107
+ eos
108
+ expect(a_request(:post, "https://api.digitalocean.com/droplets/100823/rebuild?api_key=#{api_key}&client_id=#{client_key}&image_id=478")).to have_been_made
109
+ end
110
+
111
+ it "rebuilds a droplet with a name based on an image with an id" do
112
+ stub_request(:get, "https://api.digitalocean.com/droplets?api_key=#{api_key}&client_id=#{client_key}").
113
+ to_return(:status => 200, :body => fixture("show_droplets"))
114
+
115
+ stub_request(:get, "https://api.digitalocean.com/images/478?api_key=#{api_key}&client_id=#{client_key}").
116
+ to_return(:status => 200, :body => fixture("show_image"), :headers => {})
117
+
118
+ stub_request(:post, "https://api.digitalocean.com/droplets/100823/rebuild?api_key=#{api_key}&client_id=#{client_key}&image_id=478").
119
+ to_return(:status => 200, :body => '{ "status": "OK", "event_id": 7504 }', :headers => {})
120
+
121
+ $stdin.should_receive(:gets).and_return("y")
122
+
123
+ @cli.options = @cli.options.merge(:name => droplet_name, :image_id => 478)
124
+ @cli.rebuild("foo", "NLP Final")
125
+
126
+ expect($stdout.string).to eq <<-eos
127
+ Droplet name provided. Finding droplet ID...done\e[0m, 100823 (foo)\nImage id provided. Finding Image...done\e[0m, 478 (NLP Final)\nWarning! Potentially destructive action. Please confirm [y/n]: Queuing rebuild for droplet 100823 (foo) with image 478 (NLP Final)...done
128
+ eos
129
+ expect(a_request(:post, "https://api.digitalocean.com/droplets/100823/rebuild?api_key=#{api_key}&client_id=#{client_key}&image_id=478")).to have_been_made
130
+ end
131
+
132
+ it "rebuilds a droplet with a fuzzy name based on an image with a name" do
133
+ stub_request(:get, "https://api.digitalocean.com/droplets?api_key=#{api_key}&client_id=#{client_key}").
134
+ to_return(:status => 200, :body => fixture("show_droplets"), :headers => {})
135
+
136
+ stub_request(:get, "https://api.digitalocean.com/images?api_key=#{api_key}&client_id=#{client_key}").
137
+ to_return(:status => 200, :body => fixture("show_images"), :headers => {})
138
+
139
+ stub_request(:post, "https://api.digitalocean.com/droplets/100823/rebuild?api_key=#{api_key}&client_id=#{client_key}&image_id=478").
140
+ to_return(:status => 200, :body => '{ "status": "OK", "event_id": 7504 }', :headers => {})
141
+
142
+ $stdin.should_receive(:gets).and_return("y")
143
+
144
+ @cli.options = @cli.options.merge(:image_name => "NLP Final")
145
+ @cli.rebuild("foo", "NLP Final")
146
+
147
+ expect($stdout.string).to eq <<-eos
148
+ Droplet fuzzy name provided. Finding droplet ID...done\e[0m, 100823 (foo)\nImage name provided. Finding image ID...done\e[0m, 478 (NLP Final)\nWarning! Potentially destructive action. Please confirm [y/n]: Queuing rebuild for droplet 100823 (foo) with image 478 (NLP Final)...done
149
+ eos
150
+ expect(a_request(:post, "https://api.digitalocean.com/droplets/100823/rebuild?api_key=#{api_key}&client_id=#{client_key}&image_id=478")).to have_been_made
151
+ end
152
+
153
+ it "rebuilds a droplet with an id based on an image with a name" do
154
+ stub_request(:get, "https://api.digitalocean.com/droplets/#{droplet_id}?api_key=#{api_key}&client_id=#{client_key}").
155
+ to_return(:status => 200, :body => fixture("show_droplet"))
156
+
157
+ stub_request(:get, "https://api.digitalocean.com/images?api_key=#{api_key}&client_id=#{client_key}").
158
+ to_return(:status => 200, :body => fixture("show_images"), :headers => {})
159
+
160
+ stub_request(:post, "https://api.digitalocean.com/droplets/100823/rebuild?api_key=#{api_key}&client_id=#{client_key}&image_id=478").
161
+ to_return(:status => 200, :body => '{ "status": "OK", "event_id": 7504 }', :headers => {})
162
+
163
+ $stdin.should_receive(:gets).and_return("y")
164
+
165
+ @cli.options = @cli.options.merge(:id => droplet_id, :image_name => "NLP Final")
166
+ @cli.rebuild("foo", "NLP Final")
167
+
168
+ expect($stdout.string).to eq <<-eos
169
+ Droplet id provided. Finding Droplet...done\e[0m, 100823 (foo)\nImage name provided. Finding image ID...done\e[0m, 478 (NLP Final)\nWarning! Potentially destructive action. Please confirm [y/n]: Queuing rebuild for droplet 100823 (foo) with image 478 (NLP Final)...done
170
+ eos
171
+ expect(a_request(:post, "https://api.digitalocean.com/droplets/100823/rebuild?api_key=#{api_key}&client_id=#{client_key}&image_id=478")).to have_been_made
172
+ end
173
+
174
+ it "rebuilds a droplet with a name based on an image with a name" do
175
+ stub_request(:get, "https://api.digitalocean.com/droplets?api_key=#{api_key}&client_id=#{client_key}").
176
+ to_return(:status => 200, :body => fixture("show_droplets"))
177
+
178
+ stub_request(:get, "https://api.digitalocean.com/images?api_key=#{api_key}&client_id=#{client_key}").
179
+ to_return(:status => 200, :body => fixture("show_images"), :headers => {})
180
+
181
+ stub_request(:post, "https://api.digitalocean.com/droplets/100823/rebuild?api_key=#{api_key}&client_id=#{client_key}&image_id=478").
182
+ to_return(:status => 200, :body => '{ "status": "OK", "event_id": 7504 }', :headers => {})
183
+
184
+ $stdin.should_receive(:gets).and_return("y")
185
+
186
+ @cli.options = @cli.options.merge(:name => droplet_name, :image_name => "NLP Final")
187
+ @cli.rebuild("foo", "NLP Final")
188
+
189
+ expect($stdout.string).to eq <<-eos
190
+ Droplet name provided. Finding droplet ID...done\e[0m, 100823 (foo)\nImage name provided. Finding image ID...done\e[0m, 478 (NLP Final)\nWarning! Potentially destructive action. Please confirm [y/n]: Queuing rebuild for droplet 100823 (foo) with image 478 (NLP Final)...done
191
+ eos
192
+ expect(a_request(:post, "https://api.digitalocean.com/droplets/100823/rebuild?api_key=#{api_key}&client_id=#{client_key}&image_id=478")).to have_been_made
193
+ end
194
+
195
+ it "rebuilds a droplet with confirm flag set" do
196
+ stub_request(:get, "https://api.digitalocean.com/droplets?api_key=#{api_key}&client_id=#{client_key}").
197
+ to_return(:status => 200, :body => fixture("show_droplets"), :headers => {})
198
+
199
+ stub_request(:get, "https://api.digitalocean.com/images?api_key=#{api_key}&client_id=#{client_key}").
200
+ to_return(:status => 200, :body => fixture("show_images"), :headers => {})
201
+
202
+ stub_request(:post, "https://api.digitalocean.com/droplets/100823/rebuild?api_key=#{api_key}&client_id=#{client_key}&image_id=478").
203
+ to_return(:status => 200, :body => '{ "status": "OK", "event_id": 7504 }', :headers => {})
204
+
205
+ @cli.options = @cli.options.merge(:confirm => "no")
206
+ @cli.rebuild("foo", "NLP Final")
207
+
208
+ expect($stdout.string).to eq <<-eos
209
+ Droplet fuzzy name provided. Finding droplet ID...done\e[0m, 100823 (foo)\nImage fuzzy name provided. Finding image ID...done\e[0m, 478 (NLP Final)\nQueuing rebuild for droplet 100823 (foo) with image 478 (NLP Final)...done
210
+ eos
211
+ expect(a_request(:post, "https://api.digitalocean.com/droplets/100823/rebuild?api_key=#{api_key}&client_id=#{client_key}&image_id=478")).to have_been_made
212
+ end
213
+ end
214
+
215
+ end
@@ -33,12 +33,13 @@ describe Tugboat::Configuration do
33
33
  let(:size) { "66" }
34
34
  let(:ssh_key_id) { '1234' }
35
35
  let(:private_networking) { 'true' }
36
+ let(:backups_enabled) { 'true' }
36
37
 
37
38
  let(:config) { config = Tugboat::Configuration.instance }
38
39
 
39
40
  before :each do
40
41
  # Create a temporary file
41
- config.create_config_file(client_key, api_key, ssh_key_path, ssh_user, ssh_port, region, image, size, ssh_key_id, private_networking)
42
+ config.create_config_file(client_key, api_key, ssh_key_path, ssh_user, ssh_port, region, image, size, ssh_key_id, private_networking, backups_enabled)
42
43
  end
43
44
 
44
45
  it "can be created" do
@@ -90,6 +91,11 @@ describe Tugboat::Configuration do
90
91
  private_networking = data["defaults"]
91
92
  expect(private_networking).to have_key("private_networking")
92
93
  end
94
+
95
+ it "should have backups_enabled set" do
96
+ backups_enabled = data["defaults"]
97
+ expect(backups_enabled).to have_key("backups_enabled")
98
+ end
93
99
  end
94
100
  describe "backwards compatible" do
95
101
  let(:client_key) { "foo" }
@@ -104,6 +110,7 @@ describe Tugboat::Configuration do
104
110
  let(:config_default_size) { Tugboat::Configuration::DEFAULT_SIZE }
105
111
  let(:config_default_ssh_key) { Tugboat::Configuration::DEFAULT_SSH_KEY }
106
112
  let(:config_default_networking) { Tugboat::Configuration::DEFAULT_PRIVATE_NETWORKING }
113
+ let(:config_default_backups) { Tugboat::Configuration::DEFAULT_BACKUPS_ENABLED }
107
114
  let(:backwards_config) {
108
115
  {
109
116
  "authentication" => { "client_key" => client_key, "api_key" => api_key },
@@ -145,5 +152,10 @@ describe Tugboat::Configuration do
145
152
  expect(private_networking).to eql config_default_networking
146
153
  end
147
154
 
155
+ it "should use default backups_enabled if not in the configuration" do
156
+ backups_enabled = config.default_backups_enabled
157
+ expect(backups_enabled).to eql config_default_backups
158
+ end
159
+
148
160
  end
149
161
  end
@@ -0,0 +1,8 @@
1
+ {
2
+ "image": {
3
+ "distribution": "Ubuntu",
4
+ "id": 478,
5
+ "name": "NLP Final"
6
+ },
7
+ "status": "OK"
8
+ }
@@ -0,0 +1,12 @@
1
+ require 'spec_helper'
2
+
3
+ describe Tugboat::Middleware::FindImage do
4
+ include_context "spec"
5
+
6
+ describe ".call" do
7
+ it "raises SystemExit with no image data" do
8
+ expect {described_class.new(app).call(env) }.to raise_error(SystemExit)
9
+ end
10
+ end
11
+
12
+ end
@@ -18,6 +18,7 @@ shared_context "spec" do
18
18
  let(:ssh_key_name) { 'macbook_pro' }
19
19
  let(:ssh_public_key) { 'ssh-dss A123= user@host' }
20
20
  let(:private_networking) { 'false'}
21
+ let(:backups_enabled) { 'false'}
21
22
  let(:ocean) { DigitalOcean::API.new :client_id => client_key, :api_key =>api_key }
22
23
  let(:app) { lambda { |env| } }
23
24
  let(:env) { {} }
@@ -29,7 +30,7 @@ shared_context "spec" do
29
30
  @cli = Tugboat::CLI.new
30
31
 
31
32
  # Set a temprary project path and create fake config.
32
- config.create_config_file(client_key, api_key, ssh_key_path, ssh_user, ssh_port, region, image, size, ssh_key_id, private_networking)
33
+ config.create_config_file(client_key, api_key, ssh_key_path, ssh_user, ssh_port, region, image, size, ssh_key_id, private_networking, backups_enabled)
33
34
  config.reload!
34
35
 
35
36
  # Keep track of the old stderr / out
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tugboat
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.9
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jack Pearkes
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-12-24 00:00:00.000000000 Z
11
+ date: 2014-02-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: thor
@@ -169,9 +169,12 @@ files:
169
169
  - lib/tugboat/middleware/create_droplet.rb
170
170
  - lib/tugboat/middleware/custom_logger.rb
171
171
  - lib/tugboat/middleware/destroy_droplet.rb
172
+ - lib/tugboat/middleware/destroy_image.rb
172
173
  - lib/tugboat/middleware/find_droplet.rb
174
+ - lib/tugboat/middleware/find_image.rb
173
175
  - lib/tugboat/middleware/halt_droplet.rb
174
176
  - lib/tugboat/middleware/info_droplet.rb
177
+ - lib/tugboat/middleware/info_image.rb
175
178
  - lib/tugboat/middleware/inject_client.rb
176
179
  - lib/tugboat/middleware/inject_configuration.rb
177
180
  - lib/tugboat/middleware/list_droplets.rb
@@ -180,6 +183,7 @@ files:
180
183
  - lib/tugboat/middleware/list_sizes.rb
181
184
  - lib/tugboat/middleware/list_ssh_keys.rb
182
185
  - lib/tugboat/middleware/password_reset.rb
186
+ - lib/tugboat/middleware/rebuild_droplet.rb
183
187
  - lib/tugboat/middleware/resize_droplet.rb
184
188
  - lib/tugboat/middleware/restart_droplet.rb
185
189
  - lib/tugboat/middleware/snapshot_droplet.rb
@@ -191,13 +195,16 @@ files:
191
195
  - spec/cli/authorize_cli_spec.rb
192
196
  - spec/cli/create_cli_spec.rb
193
197
  - spec/cli/destroy_cli_spec.rb
198
+ - spec/cli/destroy_image_cli_spec.rb
194
199
  - spec/cli/droplets_cli_spec.rb
195
200
  - spec/cli/halt_cli_spec.rb
196
201
  - spec/cli/help_cli_spec.rb
197
202
  - spec/cli/images_cli_spec.rb
198
203
  - spec/cli/info_cli_spec.rb
204
+ - spec/cli/info_image_cli_spec.rb
199
205
  - spec/cli/keys_cli_spec.rb
200
206
  - spec/cli/password_reset_cli_spec.rb
207
+ - spec/cli/rebuild_cli_spec.rb
201
208
  - spec/cli/regions_cli_spec.rb
202
209
  - spec/cli/resize_cli_spec.rb
203
210
  - spec/cli/restart_cli_spec.rb
@@ -216,6 +223,7 @@ files:
216
223
  - spec/fixtures/show_droplets.json
217
224
  - spec/fixtures/show_droplets_empty.json
218
225
  - spec/fixtures/show_droplets_inactive.json
226
+ - spec/fixtures/show_image.json
219
227
  - spec/fixtures/show_images.json
220
228
  - spec/fixtures/show_images_empty.json
221
229
  - spec/fixtures/show_images_global.json
@@ -228,6 +236,7 @@ files:
228
236
  - spec/middleware/check_droplet_active_spec.rb
229
237
  - spec/middleware/check_droplet_inactive_spec.rb
230
238
  - spec/middleware/find_droplet_spec.rb
239
+ - spec/middleware/find_image_spec.rb
231
240
  - spec/middleware/inject_configuration_spec.rb
232
241
  - spec/middleware/ssh_droplet_spec.rb
233
242
  - spec/shared/environment.rb
@@ -253,7 +262,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
253
262
  version: '0'
254
263
  requirements: []
255
264
  rubyforge_project:
256
- rubygems_version: 2.0.6
265
+ rubygems_version: 2.0.3
257
266
  signing_key:
258
267
  specification_version: 4
259
268
  summary: A command line tool for interacting with your DigitalOcean droplets.
@@ -262,13 +271,16 @@ test_files:
262
271
  - spec/cli/authorize_cli_spec.rb
263
272
  - spec/cli/create_cli_spec.rb
264
273
  - spec/cli/destroy_cli_spec.rb
274
+ - spec/cli/destroy_image_cli_spec.rb
265
275
  - spec/cli/droplets_cli_spec.rb
266
276
  - spec/cli/halt_cli_spec.rb
267
277
  - spec/cli/help_cli_spec.rb
268
278
  - spec/cli/images_cli_spec.rb
269
279
  - spec/cli/info_cli_spec.rb
280
+ - spec/cli/info_image_cli_spec.rb
270
281
  - spec/cli/keys_cli_spec.rb
271
282
  - spec/cli/password_reset_cli_spec.rb
283
+ - spec/cli/rebuild_cli_spec.rb
272
284
  - spec/cli/regions_cli_spec.rb
273
285
  - spec/cli/resize_cli_spec.rb
274
286
  - spec/cli/restart_cli_spec.rb
@@ -287,6 +299,7 @@ test_files:
287
299
  - spec/fixtures/show_droplets.json
288
300
  - spec/fixtures/show_droplets_empty.json
289
301
  - spec/fixtures/show_droplets_inactive.json
302
+ - spec/fixtures/show_image.json
290
303
  - spec/fixtures/show_images.json
291
304
  - spec/fixtures/show_images_empty.json
292
305
  - spec/fixtures/show_images_global.json
@@ -299,7 +312,9 @@ test_files:
299
312
  - spec/middleware/check_droplet_active_spec.rb
300
313
  - spec/middleware/check_droplet_inactive_spec.rb
301
314
  - spec/middleware/find_droplet_spec.rb
315
+ - spec/middleware/find_image_spec.rb
302
316
  - spec/middleware/inject_configuration_spec.rb
303
317
  - spec/middleware/ssh_droplet_spec.rb
304
318
  - spec/shared/environment.rb
305
319
  - spec/spec_helper.rb
320
+ has_rdoc: