viaduct-toolkit 1.0.11 → 1.0.12
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/Gemfile +1 -0
- data/Gemfile.lock +3 -2
- data/lib/viaduct/toolkit/commands/app_tunnel.rb +50 -0
- data/lib/viaduct/toolkit/helpers.rb +0 -11
- data/lib/viaduct/toolkit/version.rb +1 -1
- data/viaduct-toolkit.gemspec +1 -1
- metadata +6 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bbd179f34ce8f31b941d55e67f5dee51188d5d3d
|
4
|
+
data.tar.gz: 38bd556c0c5bb1530e8af2da790bbf317f8bd536
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b0bbc588e1acc69dcaf550dd249e2c34c752778571279fda820ea12f0638d99304ce8c3812b5de4b360ab4db3eb5e24b85c97e4dd60fee34f1c16a900e1966c7
|
7
|
+
data.tar.gz: 57c6ef49791f621901be38e44ddf2a39c17c568c4069aa8588441fe51047bf82a94c682c2d2d1cf9a3b1150187c2bf2368c02d558e3551472678310a9570b58b
|
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -10,7 +10,7 @@ GEM
|
|
10
10
|
eventmachine (>= 0.12.0)
|
11
11
|
websocket-driver (>= 0.4.0)
|
12
12
|
highline (1.6.21)
|
13
|
-
json (1.8.
|
13
|
+
json (1.8.3)
|
14
14
|
launchy (2.4.3)
|
15
15
|
addressable (~> 2.3)
|
16
16
|
moonrope-client (1.0.1)
|
@@ -29,10 +29,11 @@ DEPENDENCIES
|
|
29
29
|
colorize (~> 0.7)
|
30
30
|
commander (~> 4.2)
|
31
31
|
eventmachine (>= 1.0.7, < 1.1)
|
32
|
+
json (~> 1.8.3)
|
32
33
|
launchy (>= 2.4.2, < 3.0)
|
33
34
|
rake
|
34
35
|
terminal-table (~> 1.4, >= 1.4.5)
|
35
36
|
viaduct-api (~> 1.0, >= 1.0.7)
|
36
37
|
|
37
38
|
BUNDLED WITH
|
38
|
-
1.
|
39
|
+
1.11.2
|
@@ -0,0 +1,50 @@
|
|
1
|
+
Viaduct::Toolkit.cli.command "app:tunnel" do |c|
|
2
|
+
|
3
|
+
c.syntax = "app:tunnel"
|
4
|
+
c.description = "Start a new SSH tunnel session so you can securely connect to internal parts of your application"
|
5
|
+
c.option "--ip REMOTE_IP", String, "The remote IP address to tunnel to"
|
6
|
+
c.option "-r REMOTE_PORT", "--remote REMOTE_PORT", String, "The remote port to tunnel to"
|
7
|
+
c.option "-l LOCAL_PORT", "--local LOCAL_PORT", String, "The local port to point to the remote port"
|
8
|
+
c.option "-d DATABASE_NAME", "--db DATABASE_NAME", String, "The name of a database to establish a tunnel to (no need to provide --ip or --remote)"
|
9
|
+
c.action do |args, opts|
|
10
|
+
include Commander::Methods
|
11
|
+
ensure_logged_in!
|
12
|
+
if app = find_application
|
13
|
+
|
14
|
+
chech_ssh_key_presence
|
15
|
+
console = get_application_console_port_forward(app)
|
16
|
+
|
17
|
+
remote_ip = opts.ip
|
18
|
+
remote_port = opts.remote
|
19
|
+
local_port = opts.local
|
20
|
+
|
21
|
+
if opts.db
|
22
|
+
database = find_database(app, opts.db)
|
23
|
+
remote_ip = database['database']['env_vars']["VDT_DB_#{opts.db.to_s.upcase}_HOST"]
|
24
|
+
remote_port = database['database']['env_vars']["VDT_DB_#{opts.db.to_s.upcase}_PORT"]
|
25
|
+
end
|
26
|
+
|
27
|
+
if remote_ip.nil?
|
28
|
+
error "Must specify an remote IP using --ip"
|
29
|
+
end
|
30
|
+
|
31
|
+
if remote_port.nil?
|
32
|
+
error "Must specify a remote port using --remote"
|
33
|
+
end
|
34
|
+
|
35
|
+
if local_port.nil?
|
36
|
+
error "Must specify a local port using --local"
|
37
|
+
end
|
38
|
+
|
39
|
+
ssh_opts = [
|
40
|
+
"-p #{console['port']}",
|
41
|
+
"-L #{local_port}:#{remote_ip}:#{remote_port}"
|
42
|
+
]
|
43
|
+
cmd = "echo -n 'Your tunnel to \e[34m#{remote_ip}:#{remote_port}\e[0m is established on \e[32m127.0.0.1:#{local_port}\e[0m.\nPress CTRL+C to close this connection...'; sleep infinity"
|
44
|
+
exec_console_command(console, "ssh #{ssh_opts.join(' ')} vdt@#{console['ip_address']} \"#{cmd}\"")
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
end
|
49
|
+
|
50
|
+
Viaduct::Toolkit.cli.alias_command "tunnel", "app:tunnel"
|
@@ -142,17 +142,6 @@ module Viaduct
|
|
142
142
|
puts " $ vdt ssh_key:add".blue
|
143
143
|
puts
|
144
144
|
exit(1)
|
145
|
-
else
|
146
|
-
stdout, stderr, status = run("ssh-add -l")
|
147
|
-
if status == 0
|
148
|
-
remote_fingerprints = response.data.map { |d| d['fingerprint'] }
|
149
|
-
local_fingerprints = stdout.split(/\n/).map { |l| l.split(/\s+/)[1] }
|
150
|
-
unless remote_fingerprints.any? { |f| local_fingerprints.include?(f) }
|
151
|
-
puts "Warning: it doesn't seem as though your SSH key has been uploaded".yellow
|
152
|
-
puts "to your Viaduct account. This session may not succeed. If it doesn't".yellow
|
153
|
-
puts "ensure that you have uploaded to your SSH key to your Viaduct account.".yellow
|
154
|
-
end
|
155
|
-
end
|
156
145
|
end
|
157
146
|
else
|
158
147
|
error "Couldn't verify remote SSH keys. Please try again."
|
data/viaduct-toolkit.gemspec
CHANGED
@@ -20,7 +20,7 @@ Gem::Specification.new do |s|
|
|
20
20
|
s.add_dependency 'eventmachine', '= 1.0.7'
|
21
21
|
s.add_dependency 'faye-websocket', '= 0.8.0'
|
22
22
|
s.add_dependency 'highline', '= 1.6.21'
|
23
|
-
s.add_dependency 'json', '= 1.8.
|
23
|
+
s.add_dependency 'json', '= 1.8.3'
|
24
24
|
s.add_dependency 'launchy', '= 2.4.3'
|
25
25
|
s.add_dependency 'moonrope-client', '= 1.0.1'
|
26
26
|
s.add_dependency 'rake', '= 10.4.2'
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: viaduct-toolkit
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.12
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Adam Cooke
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2016-01-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -114,14 +114,14 @@ dependencies:
|
|
114
114
|
requirements:
|
115
115
|
- - '='
|
116
116
|
- !ruby/object:Gem::Version
|
117
|
-
version: 1.8.
|
117
|
+
version: 1.8.3
|
118
118
|
type: :runtime
|
119
119
|
prerelease: false
|
120
120
|
version_requirements: !ruby/object:Gem::Requirement
|
121
121
|
requirements:
|
122
122
|
- - '='
|
123
123
|
- !ruby/object:Gem::Version
|
124
|
-
version: 1.8.
|
124
|
+
version: 1.8.3
|
125
125
|
- !ruby/object:Gem::Dependency
|
126
126
|
name: launchy
|
127
127
|
requirement: !ruby/object:Gem::Requirement
|
@@ -232,6 +232,7 @@ files:
|
|
232
232
|
- lib/viaduct/toolkit/commands/app_open.rb
|
233
233
|
- lib/viaduct/toolkit/commands/app_public_key.rb
|
234
234
|
- lib/viaduct/toolkit/commands/app_status.rb
|
235
|
+
- lib/viaduct/toolkit/commands/app_tunnel.rb
|
235
236
|
- lib/viaduct/toolkit/commands/app_upload.rb
|
236
237
|
- lib/viaduct/toolkit/commands/app_visit.rb
|
237
238
|
- lib/viaduct/toolkit/commands/db_console.rb
|
@@ -265,7 +266,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
265
266
|
version: '0'
|
266
267
|
requirements: []
|
267
268
|
rubyforge_project:
|
268
|
-
rubygems_version: 2.
|
269
|
+
rubygems_version: 2.2.2
|
269
270
|
signing_key:
|
270
271
|
specification_version: 4
|
271
272
|
summary: A developer toolkit for working with Viaduct from an CLI
|