tugboat 2.2.0 → 2.2.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: f8c7f40ec8f57278de6f0554c189d74fda010d97
4
- data.tar.gz: 4be4fefc1760f3b2a4caaa4bcab754147b273084
3
+ metadata.gz: 191f8c580acdb8df43570f84c9c5874e13012eb7
4
+ data.tar.gz: 924a5452cc0ee37b4b884468e2d89c2df15adbe2
5
5
  SHA512:
6
- metadata.gz: 7525344456c0cc885294bfb17dde276f99277fc16f3ed5779c2a9d1a976872a7a67e475651ff75808dae0f2a3ed8d1311536389b35afb957518dcb49da443863
7
- data.tar.gz: f3a895a5877808d06976d96b99531b58555f2aa6ecaa73886be28479ee78abb67f9ec29811da6b6ac2fced4062839f08839642f898288559e51ef5aaacf06c4f
6
+ metadata.gz: 7b9e6ee471a18dc45eb233798c7e4b123b862a1527b57a313efa52c5b7fab5fd8c8e68e2847e22445f1d2975b0c9dda54499af126266404552e055cb99a3719a
7
+ data.tar.gz: 5952037dadf29db13e4893de10e7ea9537a0952afe9729204d1226b882e82cdcb0573bcb7c98c7373dfcc743dd5b5846e405790420bbe47b4589aa9b681ea825
data/CHANGELOG.md CHANGED
@@ -1,5 +1,29 @@
1
1
  # Change Log
2
2
 
3
+ ## [v2.2.0](https://github.com/pearkes/tugboat/tree/v2.2.0) (2016-01-30)
4
+
5
+ [Full Changelog](https://github.com/pearkes/tugboat/compare/v2.1.0...v2.2.0)
6
+
7
+ **Merged pull requests:**
8
+
9
+ - Configuration support for IPv6 [\#233](https://github.com/pearkes/tugboat/pull/233) ([petems](https://github.com/petems))
10
+
11
+ - Add Regions to info\_image [\#232](https://github.com/pearkes/tugboat/pull/232) ([bmamlin](https://github.com/bmamlin))
12
+
13
+ - Install dependencies locally when developing [\#231](https://github.com/pearkes/tugboat/pull/231) ([else](https://github.com/else))
14
+
15
+ - Adds simplecov-console for terminal coverage info [\#229](https://github.com/pearkes/tugboat/pull/229) ([petems](https://github.com/petems))
16
+
17
+ - Updated simplecov's Multiple Formatters definition [\#228](https://github.com/pearkes/tugboat/pull/228) ([jasnow](https://github.com/jasnow))
18
+
19
+ - Add Bundler.require\(:development\) for default rake tasks [\#227](https://github.com/pearkes/tugboat/pull/227) ([andrehjr](https://github.com/andrehjr))
20
+
21
+ - Add debug logging [\#226](https://github.com/pearkes/tugboat/pull/226) ([petems](https://github.com/petems))
22
+
23
+ - Refactor the response.success? into helper [\#225](https://github.com/pearkes/tugboat/pull/225) ([petems](https://github.com/petems))
24
+
25
+ - Improves wait spec to actually perform wait [\#224](https://github.com/pearkes/tugboat/pull/224) ([petems](https://github.com/petems))
26
+
3
27
  ## [v2.1.0](https://github.com/pearkes/tugboat/tree/v2.1.0) (2015-12-01)
4
28
 
5
29
  [Full Changelog](https://github.com/pearkes/tugboat/compare/v2.0.1...v2.1.0)
@@ -336,7 +360,7 @@
336
360
 
337
361
  - region one unavailable on some clients, use NYC 2 [\#144](https://github.com/pearkes/tugboat/pull/144) ([Thetoxicarcade](https://github.com/Thetoxicarcade))
338
362
 
339
- - Load config file from current directory, if not exit load from defaults [\#123](https://github.com/pearkes/tugboat/pull/123) ([tg0](https://github.com/tg0))
363
+ - Load config file from current directory, if not exit load from defaults [\#123](https://github.com/pearkes/tugboat/pull/123) ([tggo](https://github.com/tggo))
340
364
 
341
365
  - improves droplets list/info prints [\#115](https://github.com/pearkes/tugboat/pull/115) ([petems](https://github.com/petems))
342
366
 
data/README.md CHANGED
@@ -36,6 +36,28 @@ This will create a .tugboat file in your home folder (eg. ~/.tugboat).
36
36
 
37
37
  Tugboat will look for a .tugboat config file first in the current directory you're running it in, then will look for one in the home directory.
38
38
 
39
+ An example of a `.tugboat` file:
40
+
41
+ ```yaml
42
+ ---
43
+ authentication:
44
+ access_token: f8sazukxeh729ggxh9gjavvzw5cabdpq95txpzhz6ep6jvtquxztfkf2chyejcsg5
45
+ ssh:
46
+ ssh_user: root
47
+ ssh_key_path: "~/.ssh/id_rsa"
48
+ ssh_port: '22'
49
+ defaults:
50
+ region: nyc2
51
+ image: ubuntu-14-04-x64
52
+ size: 512mb
53
+ ssh_key: ['1234','5678']
54
+ private_networking: 'false'
55
+ backups_enabled: 'false'
56
+ ip6: 'false'
57
+ ```
58
+
59
+
60
+
39
61
  ## Usage
40
62
 
41
63
  ### Retrieve a list of your droplets
@@ -510,4 +532,4 @@ Request Body:
510
532
 
511
533
  ## Contributing
512
534
 
513
- See the [contributing guide](CONTRIBUTING.md).
535
+ See the [contributing guide](CONTRIBUTING.md).
@@ -0,0 +1,68 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: https://api.digitalocean.com/v2/droplets
6
+ body:
7
+ encoding: UTF-8
8
+ string: '{"name":"droplet-with-array-of-keys","size":"512mb","image":"ubuntu-14-04-x64","region":"nyc2","ssh_keys":["1234","5678"],"private_networking":"false","backups_enabled":"false","ipv6":"false","user_data":null}'
9
+ headers:
10
+ Authorization:
11
+ - Bearer f8sazukxeh729ggxh9gjavvzw5cabdpq95txpzhz6ep6jvtquxztfkf2chyejcsg5
12
+ Content-Type:
13
+ - application/json
14
+ User-Agent:
15
+ - Faraday v0.9.2
16
+ Accept-Encoding:
17
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
18
+ Accept:
19
+ - "*/*"
20
+ response:
21
+ status:
22
+ code: 202
23
+ message: Accepted
24
+ headers:
25
+ Server:
26
+ - cloudflare-nginx
27
+ Date:
28
+ - Tue, 16 Feb 2016 10:10:51 GMT
29
+ Content-Type:
30
+ - application/json; charset=utf-8
31
+ Transfer-Encoding:
32
+ - chunked
33
+ Connection:
34
+ - keep-alive
35
+ Set-Cookie:
36
+ - __cfduid=hm6ha3pvo7hm6ha3pvo7hm6ha3pvo7; expires=Wed, 15-Feb-17
37
+ 10:10:50 GMT; path=/; domain=.digitalocean.com; HttpOnly
38
+ Status:
39
+ - 202 Accepted
40
+ X-Frame-Options:
41
+ - SAMEORIGIN
42
+ X-Xss-Protection:
43
+ - 1; mode=block
44
+ X-Content-Type-Options:
45
+ - nosniff
46
+ Ratelimit-Limit:
47
+ - '5000'
48
+ Ratelimit-Remaining:
49
+ - '4994'
50
+ Ratelimit-Reset:
51
+ - '1455617507'
52
+ Cache-Control:
53
+ - no-cache
54
+ X-Request-Id:
55
+ - 8d869cf8-bbeb-48fa-ae84-32f1b01ebab6
56
+ X-Runtime:
57
+ - '0.246402'
58
+ Cf-Ray:
59
+ - 27587709cabc1377-LHR
60
+ body:
61
+ encoding: UTF-8
62
+ string: '{"droplet":{"id":276961,"name":"droplet-with-array-of-keys","memory":512,"vcpus":1,"disk":20,"locked":true,"status":"new","kernel":{"id":6297,"name":"Ubuntu
63
+ 14.04 x64 vmlinuz-3.13.0-71-generic","version":"3.13.0-71-generic"},"created_at":"2016-02-16T10:10:50Z","features":["virtio"],"backup_ids":[],"next_backup_window":null,"snapshot_ids":[],"image":{"id":14782728,"name":"14.04.3
64
+ x64","distribution":"Ubuntu","slug":"ubuntu-14-04-x64","public":true,"regions":["nyc1","sfo1","nyc2","ams2","sgp1","lon1","nyc3","ams3","fra1","tor1"],"created_at":"2015-12-10T16:42:21Z","min_disk_size":20,"type":"snapshot"},"size":{"slug":"512mb","memory":512,"vcpus":1,"disk":20,"transfer":1.0,"price_monthly":5.0,"price_hourly":0.00744,"regions":["ams1","ams2","ams3","fra1","lon1","nyc1","nyc2","nyc3","sfo1","sgp1","tor1"],"available":true},"size_slug":"512mb","networks":{"v4":[],"v6":[]},"region":{"name":"New
65
+ York 2","slug":"nyc2","sizes":["1gb","2gb","4gb","8gb","32gb","64gb","512mb","48gb","16gb"],"features":["private_networking","backups","ipv6","metadata"],"available":true},"tags":[]},"links":{"actions":[{"id":84162954,"rel":"create","href":"https://api.digitalocean.com/v2/actions/27624451"}]}}'
66
+ http_version:
67
+ recorded_at: Tue, 16 Feb 2016 10:10:51 GMT
68
+ recorded_with: VCR 2.9.3
@@ -0,0 +1,6 @@
1
+ require 'erb'
2
+
3
+ Given(/^a '\.tugboat' config with data:$/) do |data_str|
4
+ data = ERB.new(data_str).result(binding)
5
+ File.write("#{Dir.pwd}/tmp/aruba/.tugboat", data)
6
+ end
@@ -1,9 +1,40 @@
1
1
  require 'aruba/cucumber'
2
+ require 'aruba/in_process'
3
+ require 'aruba/spawn_process'
4
+ require 'vcr'
5
+ require 'webmock'
6
+ require 'tugboat'
2
7
 
3
- Before do
8
+ VCR.configure do |c|
9
+ c.hook_into :webmock
10
+ c.cassette_library_dir = 'features/cassettes'
11
+ c.default_cassette_options = { :record => :new_episodes }
12
+ end
4
13
 
14
+ VCR.cucumber_tags do |t|
15
+ t.tag '@vcr', :use_scenario_name => true
5
16
  end
6
17
 
7
- After do
18
+ class VcrFriendlyMain
19
+ def initialize(argv, stdin, stdout, stderr, kernel)
20
+ @argv, @stdin, @stdout, @stderr, @kernel = argv, stdin, stdout, stderr, kernel
21
+ end
22
+
23
+ def execute!
24
+ $stdin = @stdin
25
+ $stdout = @stdout
26
+ Tugboat::CLI.start(@argv)
27
+ end
28
+ end
29
+
30
+ Before('@vcr') do
31
+ Aruba::InProcess.main_class = VcrFriendlyMain
32
+ Aruba.process = Aruba::InProcess
33
+ end
8
34
 
35
+ After('@vcr') do
36
+ Aruba.process = Aruba::SpawnProcess
37
+ $stdin = STDIN
38
+ $stdout = STDOUT
39
+ VCR.eject_cassette
9
40
  end
@@ -0,0 +1,28 @@
1
+ Feature: config
2
+ In order to have an easier time connecting to droplets
3
+ As a user
4
+ I should be able to supply an array of ssh keys for a machine
5
+
6
+ @vcr
7
+ Scenario: Array of SSH Keys in Config
8
+ Given a '.tugboat' config with data:
9
+ """
10
+ ---
11
+ authentication:
12
+ access_token: f8sazukxeh729ggxh9gjavvzw5cabdpq95txpzhz6ep6jvtquxztfkf2chyejcsg5
13
+ ssh:
14
+ ssh_user: bobby_sousa
15
+ ssh_key_path: "~/.ssh/id_rsa"
16
+ ssh_port: '22'
17
+ defaults:
18
+ region: nyc2
19
+ image: ubuntu-14-04-x64
20
+ size: 512mb
21
+ ssh_key: ['1234','5678']
22
+ private_networking: 'false'
23
+ backups_enabled: 'false'
24
+ ip6: 'false'
25
+ """
26
+ When I run `tugboat create droplet-with-array-of-keys`
27
+ Then the exit status should not be 1
28
+ And the output should contain "Queueing creation of droplet 'droplet-with-array-of-keys'...Droplet created!"
@@ -3,25 +3,27 @@ Feature: config
3
3
  As a user
4
4
  I should be able to load tugboat config from a .tugboat in the current directory
5
5
 
6
- Scenario:
7
- Given a file named ".tugboat" with:
8
- """
6
+ Scenario: Read config from current directory
7
+ Given a '.tugboat' config with data:
8
+ """
9
9
  ---
10
10
  authentication:
11
- client_key: FOO
12
- api_key: BAR
11
+ access_token: FOO
13
12
  ssh:
14
13
  ssh_user: janedoe
15
14
  ssh_key_path: "/Users/janedoe/.ssh/id_rsa"
16
15
  ssh_port: '22'
17
16
  defaults:
18
- region: '8'
19
- image: '9801950'
20
- size: '66'
21
- ssh_key: ''
17
+ region: nyc2
18
+ image: ubuntu-14-04-x64
19
+ size: 512mb
20
+ ssh_key: ['1234','5678']
22
21
  private_networking: 'false'
23
22
  backups_enabled: 'false'
24
- """
23
+ ip6: 'false'
24
+ """
25
25
  When I run `tugboat config`
26
26
  Then the exit status should not be 1
27
27
  And the output should contain "ssh_user: janedoe"
28
+ And the output should contain "'1234'"
29
+ And the output should contain "'5678'"
@@ -47,10 +47,11 @@ module Tugboat
47
47
  droplet_backups_enabled = env["create_droplet_backups_enabled"] :
48
48
  droplet_backups_enabled = env["config"].default_backups_enabled
49
49
 
50
- droplet_key_array = droplet_ssh_key_ids.split(',')
51
-
52
- droplet_key_array = nil if [droplet_key_array].empty?
53
-
50
+ if droplet_ssh_key_ids.kind_of?(Array)
51
+ droplet_key_array = droplet_ssh_key_ids
52
+ else
53
+ droplet_key_array = droplet_ssh_key_ids.split(',')
54
+ end
54
55
 
55
56
  create_opts = {
56
57
  :name => env["create_droplet_name"],
@@ -1,3 +1,3 @@
1
1
  module Tugboat
2
- VERSION = "2.2.0"
2
+ VERSION = "2.2.1"
3
3
  end
data/tugboat.gemspec CHANGED
@@ -30,8 +30,9 @@ Gem::Specification.new do |gem|
30
30
  gem.add_development_dependency 'simplecov', '0.10'
31
31
  gem.add_development_dependency 'simplecov-console', '0.2.0'
32
32
  gem.add_development_dependency 'coveralls', '~> 0.6.7'
33
- gem.add_development_dependency 'aruba', '~> 0.6.2'
33
+ gem.add_development_dependency 'aruba', '0.7.4'
34
34
  gem.add_development_dependency 'pry'
35
+ gem.add_development_dependency 'vcr', '2.9.3'
35
36
 
36
37
  gem.post_install_message = '***************************************'
37
38
  gem.post_install_message = ' . o .. '
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: 2.2.0
4
+ version: 2.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jack Pearkes
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2016-01-30 00:00:00.000000000 Z
13
+ date: 2016-02-16 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: thor
@@ -170,16 +170,16 @@ dependencies:
170
170
  name: aruba
171
171
  requirement: !ruby/object:Gem::Requirement
172
172
  requirements:
173
- - - "~>"
173
+ - - '='
174
174
  - !ruby/object:Gem::Version
175
- version: 0.6.2
175
+ version: 0.7.4
176
176
  type: :development
177
177
  prerelease: false
178
178
  version_requirements: !ruby/object:Gem::Requirement
179
179
  requirements:
180
- - - "~>"
180
+ - - '='
181
181
  - !ruby/object:Gem::Version
182
- version: 0.6.2
182
+ version: 0.7.4
183
183
  - !ruby/object:Gem::Dependency
184
184
  name: pry
185
185
  requirement: !ruby/object:Gem::Requirement
@@ -194,6 +194,20 @@ dependencies:
194
194
  - - ">="
195
195
  - !ruby/object:Gem::Version
196
196
  version: '0'
197
+ - !ruby/object:Gem::Dependency
198
+ name: vcr
199
+ requirement: !ruby/object:Gem::Requirement
200
+ requirements:
201
+ - - '='
202
+ - !ruby/object:Gem::Version
203
+ version: 2.9.3
204
+ type: :development
205
+ prerelease: false
206
+ version_requirements: !ruby/object:Gem::Requirement
207
+ requirements:
208
+ - - '='
209
+ - !ruby/object:Gem::Version
210
+ version: 2.9.3
197
211
  description: A command line tool for interacting with your DigitalOcean droplets.
198
212
  email:
199
213
  - jackpearkes@gmail.com
@@ -212,8 +226,10 @@ files:
212
226
  - README.md
213
227
  - Rakefile
214
228
  - bin/tugboat
229
+ - features/cassettes/config/Array_of_SSH_Keys_in_Config.yml
215
230
  - features/step_definitions/steps.rb
216
231
  - features/support/env.rb
232
+ - features/tugboat/config_array_of_ssh_keys.feature
217
233
  - features/tugboat/config_current_directory.feature
218
234
  - lib/tugboat.rb
219
235
  - lib/tugboat/cli.rb
@@ -352,8 +368,10 @@ signing_key:
352
368
  specification_version: 4
353
369
  summary: A command line tool for interacting with your DigitalOcean droplets.
354
370
  test_files:
371
+ - features/cassettes/config/Array_of_SSH_Keys_in_Config.yml
355
372
  - features/step_definitions/steps.rb
356
373
  - features/support/env.rb
374
+ - features/tugboat/config_array_of_ssh_keys.feature
357
375
  - features/tugboat/config_current_directory.feature
358
376
  - spec/cli/add_key_spec.rb
359
377
  - spec/cli/authorize_cli_spec.rb