gaptool-client 0.2.2 → 0.3.0
Sign up to get free protection for your applications and to get access to all the features.
- data/VERSION +1 -1
- data/gaptool-client.gemspec +2 -2
- data/lib/gaptool-client.rb +32 -15
- metadata +3 -3
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.3.0
|
data/gaptool-client.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = "gaptool-client"
|
8
|
-
s.version = "0.
|
8
|
+
s.version = "0.3.0"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Matt Bailey"]
|
12
|
-
s.date = "2013-01-
|
12
|
+
s.date = "2013-01-17"
|
13
13
|
s.description = "client for gaptool-server"
|
14
14
|
s.email = "m@mdb.io"
|
15
15
|
s.executables = ["gt"]
|
data/lib/gaptool-client.rb
CHANGED
@@ -31,29 +31,46 @@ class SshCommand < Clamp::Command
|
|
31
31
|
option ["-e", "--environment"], "ENVIRONMENT", "Which environment, e.g. production", :required => true
|
32
32
|
option ["-i", "--instance"], "INSTANCE", "Node instance, leave blank to query avilable nodes", :require => false
|
33
33
|
option ["-f", "--first"], :flag, "Just connect to first available instance"
|
34
|
+
option ["-t", "--tmux"], :flag, "Open cluster in windows in a tmux session"
|
34
35
|
|
35
36
|
def execute
|
36
|
-
if
|
37
|
-
@ssh = $api.ssh(role, environment, instance)
|
38
|
-
else
|
37
|
+
if tmux?
|
39
38
|
nodes = $api.getenvroles(role, environment)
|
40
|
-
|
41
|
-
|
42
|
-
@ssh = $api.ssh(role, environment, nodes
|
39
|
+
system "tmux start-server"
|
40
|
+
nodes.each_index do |i|
|
41
|
+
@ssh = $api.ssh(role, environment, nodes[i]['instance'])
|
42
|
+
if i == 0
|
43
|
+
system "tmux new-session -d -s #{role}-#{environment} -n #{nodes[i]['instance']}"
|
44
|
+
else
|
45
|
+
system "tmux new-window -t #{role}-#{environment}:#{i} -n #{nodes[i]['instance']}"
|
46
|
+
end
|
47
|
+
File.open("/tmp/gtkey-#{nodes[i]['instance']}", 'w') {|f| f.write(@ssh['key'])}
|
48
|
+
File.chmod(0600, "/tmp/gtkey-#{nodes[i]['instance']}")
|
49
|
+
system "tmux send-keys -t #{role}-#{environment}:#{i} 'SSH_AUTH_SOCK=\"\" ssh -i /tmp/gtkey-#{nodes[i]['instance']} admin@#{@ssh['hostname']}' C-m"
|
50
|
+
end
|
51
|
+
system "tmux attach -t #{role}-#{environment}"
|
52
|
+
else
|
53
|
+
if instance
|
54
|
+
@ssh = $api.ssh(role, environment, instance)
|
43
55
|
else
|
44
|
-
|
45
|
-
nodes.
|
46
|
-
puts "
|
56
|
+
nodes = $api.getenvroles(role, environment)
|
57
|
+
if first? || nodes.size == 1
|
58
|
+
puts "No instnace specified, but only one instance in cluster or first forced"
|
59
|
+
@ssh = $api.ssh(role, environment, nodes.first['instance'])
|
60
|
+
else
|
61
|
+
puts "No instance specified, querying list."
|
62
|
+
nodes.each_index do |i|
|
63
|
+
puts "#{i}: #{nodes[i]['instance']}"
|
64
|
+
end
|
65
|
+
print "Select a node: ".color(:cyan)
|
66
|
+
@ssh = $api.ssh(role, environment, nodes[$stdin.gets.chomp.to_i]['instance'])
|
47
67
|
end
|
48
|
-
print "Select a node: ".color(:cyan)
|
49
|
-
@ssh = $api.ssh(role, environment, nodes[$stdin.gets.chomp.to_i]['instance'])
|
50
68
|
end
|
69
|
+
File.open('/tmp/gtkey', 'w') {|f| f.write(@ssh['key'])}
|
70
|
+
File.chmod(0600, '/tmp/gtkey')
|
71
|
+
system "SSH_AUTH_SOCK='' ssh -i /tmp/gtkey admin@#{@ssh['hostname']}"
|
51
72
|
end
|
52
|
-
File.open('/tmp/gtkey', 'w') {|f| f.write(@ssh['key'])}
|
53
|
-
File.chmod(0600, '/tmp/gtkey')
|
54
|
-
system "SSH_AUTH_SOCK='' ssh -i /tmp/gtkey admin@#{@ssh['hostname']}"
|
55
73
|
end
|
56
|
-
|
57
74
|
end
|
58
75
|
|
59
76
|
class InfoCommand < Clamp::Command
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gaptool-client
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
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-01-
|
12
|
+
date: 2013-01-17 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: json
|
@@ -207,7 +207,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
207
207
|
version: '0'
|
208
208
|
segments:
|
209
209
|
- 0
|
210
|
-
hash: -
|
210
|
+
hash: -2205502440360881386
|
211
211
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
212
212
|
none: false
|
213
213
|
requirements:
|