tugboat 1.0.0 → 1.1.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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +21 -1
- data/Gemfile +2 -2
- data/lib/tugboat/cli.rb +4 -4
- data/lib/tugboat/middleware/ssh_droplet.rb +8 -7
- data/lib/tugboat/version.rb +1 -1
- data/spec/middleware/ssh_droplet_spec.rb +25 -6
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f30609ec594ea66af927054753773df577581965
|
4
|
+
data.tar.gz: 8c3a0372b25f175eb12cd372edb8f518fa36fb8c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6a288744e5b47ccdc56a23eff3c9bf3a2bb13a0b631a0a3948c35cd4217600e9db0da6690ab9ba21c2506ca6e55148823ef5764d5968aa6766b31ee1519285c0
|
7
|
+
data.tar.gz: 898efe785343d19d4827b36bc098dfc6136187db488231e031e6d51a966ec1eda8e78872aa7d4f4d307f5c56e9e6bec0c30d18b218de52abcc784a76a2392168
|
data/CHANGELOG.md
CHANGED
@@ -2,7 +2,27 @@
|
|
2
2
|
|
3
3
|
## [Unreleased](https://github.com/pearkes/tugboat/tree/HEAD)
|
4
4
|
|
5
|
-
[Full Changelog](https://github.com/pearkes/tugboat/compare/
|
5
|
+
[Full Changelog](https://github.com/pearkes/tugboat/compare/v1.1.0...HEAD)
|
6
|
+
|
7
|
+
**Fixed bugs:**
|
8
|
+
|
9
|
+
- SSH to Private IP [\#169](https://github.com/pearkes/tugboat/issues/169)
|
10
|
+
|
11
|
+
**Closed issues:**
|
12
|
+
|
13
|
+
- Unable to bundle to run tugboat from git repo version for testing [\#171](https://github.com/pearkes/tugboat/issues/171)
|
14
|
+
|
15
|
+
**Merged pull requests:**
|
16
|
+
|
17
|
+
- Update ssh to private ip [\#172](https://github.com/pearkes/tugboat/pull/172) ([petems](https://github.com/petems))
|
18
|
+
|
19
|
+
**Closed issues:**
|
20
|
+
|
21
|
+
- 1.0.0 Release [\#125](https://github.com/pearkes/tugboat/issues/125)
|
22
|
+
|
23
|
+
## [v1.0.0](https://github.com/pearkes/tugboat/tree/v1.0.0) (2015-05-26)
|
24
|
+
|
25
|
+
[Full Changelog](https://github.com/pearkes/tugboat/compare/v0.2.0...v1.0.0)
|
6
26
|
|
7
27
|
**Implemented enhancements:**
|
8
28
|
|
data/Gemfile
CHANGED
@@ -5,6 +5,6 @@ gemspec
|
|
5
5
|
|
6
6
|
group :development do
|
7
7
|
# Random order is not in the Aruba Cucumber yet...
|
8
|
-
gem 'cucumber', git: 'https://github.com/cucumber/cucumber.git', tag: 'v2.0.
|
9
|
-
gem 'cucumber-core', git: 'https://github.com/cucumber/cucumber-core.git', tag: 'v1.
|
8
|
+
gem 'cucumber', git: 'https://github.com/cucumber/cucumber-ruby.git', tag: 'v2.0.2'
|
9
|
+
gem 'cucumber-core', git: 'https://github.com/cucumber/cucumber-ruby-core.git', tag: 'v1.2.0'
|
10
10
|
end
|
data/lib/tugboat/cli.rb
CHANGED
@@ -99,10 +99,10 @@ module Tugboat
|
|
99
99
|
:type => :string,
|
100
100
|
:aliases => "-p",
|
101
101
|
:desc => "The custom SSH Port to connect to"
|
102
|
-
method_option "
|
102
|
+
method_option "use_private_ip",
|
103
103
|
:type => :boolean,
|
104
|
-
:aliases => "-
|
105
|
-
:desc => "Use
|
104
|
+
:aliases => "-t",
|
105
|
+
:desc => "Use Private IP while private IP is present"
|
106
106
|
method_option "ssh_user",
|
107
107
|
:type => :string,
|
108
108
|
:aliases => "-u",
|
@@ -122,7 +122,7 @@ module Tugboat
|
|
122
122
|
"user_droplet_fuzzy_name" => name,
|
123
123
|
"user_droplet_ssh_port" => options[:ssh_port],
|
124
124
|
"user_droplet_ssh_user" => options[:ssh_user],
|
125
|
-
"
|
125
|
+
"user_droplet_use_private_ip" => options[:use_public_ip],
|
126
126
|
"user_droplet_ssh_opts" => options[:ssh_opts],
|
127
127
|
"user_droplet_ssh_command" => options[:ssh_command],
|
128
128
|
"user_quiet" => options[:quiet]
|
@@ -27,14 +27,15 @@ module Tugboat
|
|
27
27
|
|
28
28
|
host_ip = env["droplet_ip"]
|
29
29
|
|
30
|
-
if env["droplet_ip_private"]
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
use_public_ip = env["user_droplet_use_public_ip"]
|
35
|
-
end
|
30
|
+
if env["user_droplet_use_private_ip"] && env["droplet_ip_private"].nil?
|
31
|
+
say "You asked to ssh to the private IP, but no Private IP found!", :red
|
32
|
+
exit 1
|
33
|
+
end
|
36
34
|
|
37
|
-
|
35
|
+
if env["droplet_ip_private"]
|
36
|
+
say "This droplet has a private IP, checking if you asked to use the Private IP..."
|
37
|
+
if env["user_droplet_use_private_ip"]
|
38
|
+
say "You did! Using private IP for ssh..."
|
38
39
|
host_ip = env["droplet_ip_private"]
|
39
40
|
end
|
40
41
|
end
|
data/lib/tugboat/version.rb
CHANGED
@@ -17,10 +17,9 @@ describe Tugboat::Middleware::SSHDroplet do
|
|
17
17
|
"-o", "UserKnownHostsFile=/dev/null",
|
18
18
|
"-i", File.expand_path(ssh_key_path),
|
19
19
|
"-p", ssh_port,
|
20
|
-
"#{ssh_user}@#{
|
20
|
+
"#{ssh_user}@#{droplet_ip}")
|
21
21
|
|
22
22
|
env["droplet_ip"] = droplet_ip
|
23
|
-
env["droplet_ip_private"] = droplet_ip_private
|
24
23
|
env["config"] = config
|
25
24
|
|
26
25
|
described_class.new(app).call(env)
|
@@ -50,9 +49,7 @@ describe Tugboat::Middleware::SSHDroplet do
|
|
50
49
|
described_class.new(app).call(env)
|
51
50
|
end
|
52
51
|
|
53
|
-
it "executes ssh
|
54
|
-
config.data["use_public_ip"] = true
|
55
|
-
|
52
|
+
it "executes ssh with private IP if option chosen" do
|
56
53
|
expect(Kernel).to receive(:exec).with("ssh",
|
57
54
|
"-o", "IdentitiesOnly=yes",
|
58
55
|
"-o", "LogLevel=ERROR",
|
@@ -60,15 +57,37 @@ describe Tugboat::Middleware::SSHDroplet do
|
|
60
57
|
"-o", "UserKnownHostsFile=/dev/null",
|
61
58
|
"-i", File.expand_path(ssh_key_path),
|
62
59
|
"-p", ssh_port,
|
63
|
-
"
|
60
|
+
"-e",
|
61
|
+
"-q",
|
62
|
+
"-X",
|
63
|
+
"#{ssh_user}@#{droplet_ip_private}",
|
64
|
+
"echo hello")
|
64
65
|
|
65
66
|
env["droplet_ip"] = droplet_ip
|
66
67
|
env["droplet_ip_private"] = droplet_ip_private
|
67
68
|
env["config"] = config
|
69
|
+
env["user_droplet_ssh_command"] = "echo hello"
|
70
|
+
env["user_droplet_use_private_ip"] = true
|
71
|
+
env["user_droplet_ssh_opts"] = "-e -q -X"
|
68
72
|
|
69
73
|
described_class.new(app).call(env)
|
70
74
|
end
|
71
75
|
|
76
|
+
it "errors if private IP option given but no Private IP on Droplet" do
|
77
|
+
env["droplet_ip"] = droplet_ip
|
78
|
+
env["config"] = config
|
79
|
+
env["user_droplet_ssh_command"] = "echo hello"
|
80
|
+
env["user_droplet_use_private_ip"] = true
|
81
|
+
env["user_droplet_ssh_opts"] = "-e -q -X"
|
82
|
+
|
83
|
+
expect {described_class.new(app).call(env)}.to raise_error(SystemExit)
|
84
|
+
|
85
|
+
expect($stdout.string).to eq <<-eos
|
86
|
+
Executing SSH ...
|
87
|
+
You asked to ssh to the private IP, but no Private IP found!
|
88
|
+
eos
|
89
|
+
end
|
90
|
+
|
72
91
|
end
|
73
92
|
|
74
93
|
end
|
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: 1.
|
4
|
+
version: 1.1.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: 2015-
|
11
|
+
date: 2015-07-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: thor
|
@@ -286,7 +286,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
286
286
|
version: '0'
|
287
287
|
requirements: []
|
288
288
|
rubyforge_project:
|
289
|
-
rubygems_version: 2.4.
|
289
|
+
rubygems_version: 2.4.8
|
290
290
|
signing_key:
|
291
291
|
specification_version: 4
|
292
292
|
summary: A command line tool for interacting with your DigitalOcean droplets.
|