tugboat 0.0.6 → 0.0.7
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG.md +10 -0
- data/lib/tugboat/middleware/ask_for_credentials.rb +1 -0
- data/lib/tugboat/middleware/list_droplets.rb +14 -7
- data/lib/tugboat/middleware/list_images.rb +7 -2
- data/lib/tugboat/version.rb +1 -1
- data/spec/cli/droplets_cli_spec.rb +15 -1
- data/spec/cli/images_cli_spec.rb +38 -0
- data/spec/fixtures/show_droplets_empty.json +4 -0
- data/spec/fixtures/show_images_empty.json +4 -0
- metadata +6 -2
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,13 @@
|
|
1
|
+
## 0.0.7 (unreleased)
|
2
|
+
|
3
|
+
IMPROVEMENTS:
|
4
|
+
- [Pete](https://github.com/petems) made it clearer to the user
|
5
|
+
if they don't have any droplets or images. [GH-48], [GH-49]
|
6
|
+
|
7
|
+
BUG FIXES:
|
8
|
+
|
9
|
+
- Fix the initial check for authorization after `authorize` [GH-41]
|
10
|
+
|
1
11
|
## 0.0.6 (June 25, 2013)
|
2
12
|
|
3
13
|
FEATURES:
|
@@ -5,15 +5,22 @@ module Tugboat
|
|
5
5
|
def call(env)
|
6
6
|
ocean = env["ocean"]
|
7
7
|
|
8
|
-
ocean.droplets.list.droplets
|
8
|
+
droplet_list = ocean.droplets.list.droplets
|
9
9
|
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
10
|
+
if droplet_list.empty?
|
11
|
+
say "You don't appear to have any droplets.", :red
|
12
|
+
say "Try creating one with #{GREEN}\`tugboat create\`"
|
13
|
+
else
|
14
|
+
droplet_list.each do |droplet|
|
15
|
+
|
16
|
+
if droplet.status == "active"
|
17
|
+
status_color = GREEN
|
18
|
+
else
|
19
|
+
status_color = RED
|
20
|
+
end
|
15
21
|
|
16
|
-
|
22
|
+
say "#{droplet.name} (ip: #{droplet.ip_address}, status: #{status_color}#{droplet.status}#{CLEAR}, region: #{droplet.region_id}, id: #{droplet.id})"
|
23
|
+
end
|
17
24
|
end
|
18
25
|
|
19
26
|
@app.call(env)
|
@@ -9,8 +9,13 @@ module Tugboat
|
|
9
9
|
end
|
10
10
|
|
11
11
|
say "My Images:"
|
12
|
-
my_images.images
|
13
|
-
|
12
|
+
my_images_list = my_images.images
|
13
|
+
if my_images_list.empty?
|
14
|
+
say "No images found"
|
15
|
+
else
|
16
|
+
my_images_list.each do |image|
|
17
|
+
say "#{image.name} (id: #{image.id}, distro: #{image.distribution})"
|
18
|
+
end
|
14
19
|
end
|
15
20
|
|
16
21
|
if env["user_show_global_images"]
|
data/lib/tugboat/version.rb
CHANGED
@@ -4,7 +4,7 @@ describe Tugboat::CLI do
|
|
4
4
|
include_context "spec"
|
5
5
|
|
6
6
|
describe "droplets" do
|
7
|
-
it "shows a list" do
|
7
|
+
it "shows a list when droplets exist" do
|
8
8
|
stub_request(:get, "https://api.digitalocean.com/droplets?api_key=#{api_key}&client_id=#{client_key}").
|
9
9
|
to_return(:status => 200, :body => fixture("show_droplets"))
|
10
10
|
|
@@ -18,6 +18,20 @@ foo (ip: 33.33.33.10, status: \e[32mactive\e[0m, region: 1, id: 100823)
|
|
18
18
|
|
19
19
|
expect(a_request(:get, "https://api.digitalocean.com/droplets?api_key=#{api_key}&client_id=#{client_key}")).to have_been_made
|
20
20
|
end
|
21
|
+
|
22
|
+
it "returns an error when no droplets exist" do
|
23
|
+
stub_request(:get, "https://api.digitalocean.com/droplets?api_key=#{api_key}&client_id=#{client_key}").
|
24
|
+
to_return(:status => 200, :body => fixture("show_droplets_empty"))
|
25
|
+
|
26
|
+
@cli.droplets
|
27
|
+
|
28
|
+
expect($stdout.string).to eq <<-eos
|
29
|
+
You don't appear to have any droplets.
|
30
|
+
Try creating one with \e[32m`tugboat create`
|
31
|
+
eos
|
32
|
+
|
33
|
+
expect(a_request(:get, "https://api.digitalocean.com/droplets?api_key=#{api_key}&client_id=#{client_key}")).to have_been_made
|
34
|
+
end
|
21
35
|
end
|
22
36
|
|
23
37
|
end
|
data/spec/cli/images_cli_spec.rb
CHANGED
@@ -19,6 +19,44 @@ NLP Final (id: 478, distro: Ubuntu)
|
|
19
19
|
expect(a_request(:get, "https://api.digitalocean.com/images?api_key=#{api_key}&client_id=#{client_key}&filter=my_images")).to have_been_made
|
20
20
|
end
|
21
21
|
|
22
|
+
it "acknowledges when my images are empty" do
|
23
|
+
stub_request(:get, "https://api.digitalocean.com/images?api_key=#{api_key}&client_id=#{client_key}&filter=my_images").
|
24
|
+
to_return(:status => 200, :body => fixture("show_images_empty"))
|
25
|
+
|
26
|
+
@cli.images
|
27
|
+
|
28
|
+
expect($stdout.string).to eq <<-eos
|
29
|
+
My Images:
|
30
|
+
No images found
|
31
|
+
eos
|
32
|
+
|
33
|
+
expect(a_request(:get, "https://api.digitalocean.com/images?api_key=#{api_key}&client_id=#{client_key}&filter=my_images")).to have_been_made
|
34
|
+
end
|
35
|
+
|
36
|
+
it "acknowledges when my images are empty and also shows a global list" do
|
37
|
+
stub_request(:get, "https://api.digitalocean.com/images?api_key=#{api_key}&client_id=#{client_key}&filter=my_images").
|
38
|
+
to_return(:status => 200, :body => fixture("show_images_empty"))
|
39
|
+
|
40
|
+
stub_request(:get, "https://api.digitalocean.com/images?api_key=#{api_key}&client_id=#{client_key}&filter=global").
|
41
|
+
to_return(:status => 200, :body => fixture("show_images_global"))
|
42
|
+
|
43
|
+
@cli.options = @cli.options.merge(:global => true)
|
44
|
+
@cli.images
|
45
|
+
|
46
|
+
expect($stdout.string).to eq <<-eos
|
47
|
+
My Images:
|
48
|
+
No images found
|
49
|
+
|
50
|
+
Global Images:
|
51
|
+
NYTD Backup 1-18-2012 (id: 466, distro: Ubuntu)
|
52
|
+
NLP Final (id: 478, distro: Ubuntu)
|
53
|
+
Global Final (id: 479, distro: Ubuntu)
|
54
|
+
eos
|
55
|
+
|
56
|
+
expect(a_request(:get, "https://api.digitalocean.com/images?api_key=#{api_key}&client_id=#{client_key}&filter=my_images")).to have_been_made
|
57
|
+
expect(a_request(:get, "https://api.digitalocean.com/images?api_key=#{api_key}&client_id=#{client_key}&filter=global")).to have_been_made
|
58
|
+
end
|
59
|
+
|
22
60
|
it "shows a global list" do
|
23
61
|
stub_request(:get, "https://api.digitalocean.com/images?api_key=#{api_key}&client_id=#{client_key}&filter=my_images").
|
24
62
|
to_return(:status => 200, :body => fixture("show_images"))
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: tugboat
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.7
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-
|
12
|
+
date: 2013-08-02 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: thor
|
@@ -227,8 +227,10 @@ files:
|
|
227
227
|
- spec/fixtures/show_droplet.json
|
228
228
|
- spec/fixtures/show_droplet_inactive.json
|
229
229
|
- spec/fixtures/show_droplets.json
|
230
|
+
- spec/fixtures/show_droplets_empty.json
|
230
231
|
- spec/fixtures/show_droplets_inactive.json
|
231
232
|
- spec/fixtures/show_images.json
|
233
|
+
- spec/fixtures/show_images_empty.json
|
232
234
|
- spec/fixtures/show_images_global.json
|
233
235
|
- spec/fixtures/show_keys.json
|
234
236
|
- spec/fixtures/show_regions.json
|
@@ -294,8 +296,10 @@ test_files:
|
|
294
296
|
- spec/fixtures/show_droplet.json
|
295
297
|
- spec/fixtures/show_droplet_inactive.json
|
296
298
|
- spec/fixtures/show_droplets.json
|
299
|
+
- spec/fixtures/show_droplets_empty.json
|
297
300
|
- spec/fixtures/show_droplets_inactive.json
|
298
301
|
- spec/fixtures/show_images.json
|
302
|
+
- spec/fixtures/show_images_empty.json
|
299
303
|
- spec/fixtures/show_images_global.json
|
300
304
|
- spec/fixtures/show_keys.json
|
301
305
|
- spec/fixtures/show_regions.json
|