awslanes 0.0.4 → 0.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/.gitignore +2 -1
- data/awslanes.gemspec +4 -3
- data/bin/lanes +1 -14
- data/lib/lanes.rb +23 -26
- data/lib/lanes/version.rb +1 -1
- metadata +31 -17
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 33a1d141bec973da05d80ff867e9bd85a9fdd69d
|
4
|
+
data.tar.gz: aa9e4e8b1b169f9fe6d103797d8f2ae6b113987e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 72efffc58cd8d963f0a273344ee5f30fea13c6ffbb3cdf2d25aa6676d970e09f33d03df55b5fc58870a13457fcfd59b0bb6ebc5ac5daaeaffde0b40a7f3b6abc
|
7
|
+
data.tar.gz: 7be57d9008903becff74fddd6f34d22ce36de19ad262a18b2b191db37a178243810875de5c5b174d5ce773d7097066fb3d37dcad546d1e917f888725aea0d7ab
|
data/.gitignore
CHANGED
data/awslanes.gemspec
CHANGED
@@ -22,7 +22,8 @@ Gem::Specification.new do |spec|
|
|
22
22
|
spec.add_development_dependency "bundler", "~> 1.7"
|
23
23
|
spec.add_development_dependency "rake", "~> 10.0"
|
24
24
|
|
25
|
-
spec.add_dependency "thor"
|
26
|
-
spec.add_dependency "awscli"
|
27
|
-
spec.add_dependency "
|
25
|
+
spec.add_dependency "thor", "~> 0"
|
26
|
+
spec.add_dependency "awscli", "~> 0"
|
27
|
+
spec.add_dependency "net-ssh", "~> 0"
|
28
|
+
spec.add_dependency "rest-client", "~> 0"
|
28
29
|
end
|
data/bin/lanes
CHANGED
@@ -2,17 +2,4 @@
|
|
2
2
|
|
3
3
|
require 'lanes'
|
4
4
|
|
5
|
-
|
6
|
-
config = YAML.load_file( ENV['HOME'] + '/.lanes/lanes.yml')
|
7
|
-
profile = config['profile']
|
8
|
-
|
9
|
-
# hijack the AwsCli file variable
|
10
|
-
ENV['AWSCLI_CONFIG_FILE']="~/.lanes/#{profile}.yml"
|
11
|
-
|
12
|
-
# Populate our properties singleton as well
|
13
|
-
settings = YAML.load_file( ENV['HOME'] + "/.lanes/#{profile}.yml")
|
14
|
-
|
15
|
-
Props.instance.set(settings)
|
16
|
-
|
17
|
-
LanesCli::Lanes.start( ARGV )
|
18
|
-
# TODO close the connection in the singleton
|
5
|
+
LanesCli::Lanes.start( ARGV )
|
data/lib/lanes.rb
CHANGED
@@ -1,9 +1,9 @@
|
|
1
|
-
|
2
|
-
require
|
3
|
-
require
|
4
|
-
require
|
5
|
-
require
|
6
|
-
require
|
1
|
+
require 'net/ssh'
|
2
|
+
require 'lanes/version'
|
3
|
+
require 'lanes/aws'
|
4
|
+
require 'lanes/props'
|
5
|
+
require 'lanes/file'
|
6
|
+
require 'thor'
|
7
7
|
require 'yaml'
|
8
8
|
require 'awscli'
|
9
9
|
require 'rest_client'
|
@@ -17,16 +17,14 @@ module LanesCli
|
|
17
17
|
data = YAML.load_file path
|
18
18
|
data["profile"] = profile
|
19
19
|
File.open(path, 'w') { |f| YAML.dump(data, f) }
|
20
|
+
|
20
21
|
puts "Switched to #{profile}"
|
21
22
|
end
|
22
23
|
|
23
|
-
|
24
|
-
|
25
|
-
|
26
24
|
desc "list [LANE]", "Lists all servers name + ip + Instance ID, optionally filtered by lane 2"
|
27
25
|
def list(lane=nil)
|
28
26
|
servers = AWS.instance.fetchServers(lane)
|
29
|
-
servers.sort_by{ |s| s[:lane] }
|
27
|
+
servers.sort_by!{ |s| [s[:lane], s[:name]] }
|
30
28
|
servers.each{|server|
|
31
29
|
puts "\t%{name} (%{lane}) \t %{ip} \t %{id} " % server
|
32
30
|
}
|
@@ -37,10 +35,11 @@ module LanesCli
|
|
37
35
|
chosen = chooseServer(lane)
|
38
36
|
if chosen != nil
|
39
37
|
mods = Props.instance.sshMod(chosen[:lane])
|
40
|
-
identity =
|
41
|
-
|
42
|
-
|
43
|
-
|
38
|
+
identity = "-i #{mods['identity']}" if mods['identity']
|
39
|
+
tunnels = "-L#{mods['tunnel']}" if mods['tunnel']
|
40
|
+
tunnels = mods['tunnels'].map{|tunnel| "-L#{tunnel}"}.join(' ') if mods['tunnels']
|
41
|
+
user = mods['user'] ? mods['user'] : 'ec2-user'
|
42
|
+
cmd = "ssh #{user}@%{ip} #{identity} #{tunnels}" % chosen
|
44
43
|
exec cmd
|
45
44
|
else
|
46
45
|
puts 'Canceled'
|
@@ -145,9 +144,9 @@ module LanesCli
|
|
145
144
|
|
146
145
|
|
147
146
|
no_commands{
|
148
|
-
def chooseServer(lane=
|
147
|
+
def chooseServer(lane=nil)
|
149
148
|
servers = AWS.instance.fetchServers(lane)
|
150
|
-
servers.sort_by{ |s| s[:lane] }
|
149
|
+
servers.sort_by!{ |s| [s[:lane], s[:name]] }
|
151
150
|
|
152
151
|
puts "Available Servers: "
|
153
152
|
servers.each_with_index {|server, index|
|
@@ -161,23 +160,21 @@ module LanesCli
|
|
161
160
|
}
|
162
161
|
end
|
163
162
|
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
# load the Lanes settings file
|
169
|
-
config = YAML.load_file( ENV['HOME'] + '/.lanes/lanes.yml')
|
170
|
-
profile = config['profile']
|
163
|
+
# load the Lanes settings file
|
164
|
+
lanes_config = YAML.load_file( ENV['HOME'] + '/.lanes/lanes.yml')
|
165
|
+
profile = lanes_config['profile']
|
166
|
+
profile_config_path = ENV['HOME'] + "/.lanes/#{profile}.yml"
|
171
167
|
|
168
|
+
if File.exist? profile_config_path
|
172
169
|
# hijack the AwsCli file variable
|
173
|
-
ENV['AWSCLI_CONFIG_FILE']=
|
170
|
+
ENV['AWSCLI_CONFIG_FILE']=profile_config_path
|
174
171
|
|
175
172
|
# Populate our properties singleton as well
|
176
|
-
settings = YAML.load_file
|
173
|
+
settings = YAML.load_file profile_config_path
|
177
174
|
|
178
175
|
Props.instance.set(settings)
|
179
176
|
|
180
|
-
LanesCli::Lanes.start( ENV['RUBYMINE'].split(' ') )
|
181
177
|
# TODO close the connection in the singleton
|
182
178
|
end
|
179
|
+
|
183
180
|
end
|
data/lib/lanes/version.rb
CHANGED
metadata
CHANGED
@@ -1,83 +1,97 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: awslanes
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 0.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Dave Welch
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2016-03-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - ~>
|
17
|
+
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: '1.7'
|
20
20
|
type: :development
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- - ~>
|
24
|
+
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '1.7'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: rake
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- - ~>
|
31
|
+
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: '10.0'
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- - ~>
|
38
|
+
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '10.0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: thor
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- -
|
45
|
+
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
47
|
version: '0'
|
48
48
|
type: :runtime
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- -
|
52
|
+
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '0'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: awscli
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- -
|
59
|
+
- - "~>"
|
60
60
|
- !ruby/object:Gem::Version
|
61
61
|
version: '0'
|
62
62
|
type: :runtime
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
|
-
- -
|
66
|
+
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '0'
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
|
-
name:
|
70
|
+
name: net-ssh
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
|
-
- -
|
73
|
+
- - "~>"
|
74
74
|
- !ruby/object:Gem::Version
|
75
75
|
version: '0'
|
76
76
|
type: :runtime
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
|
-
- -
|
80
|
+
- - "~>"
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: rest-client
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - "~>"
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0'
|
90
|
+
type: :runtime
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - "~>"
|
81
95
|
- !ruby/object:Gem::Version
|
82
96
|
version: '0'
|
83
97
|
description: Manage "lanes" of AWS machines, according to [principle here]
|
@@ -88,7 +102,7 @@ executables:
|
|
88
102
|
extensions: []
|
89
103
|
extra_rdoc_files: []
|
90
104
|
files:
|
91
|
-
- .gitignore
|
105
|
+
- ".gitignore"
|
92
106
|
- Gemfile
|
93
107
|
- LICENSE.txt
|
94
108
|
- README.md
|
@@ -112,17 +126,17 @@ require_paths:
|
|
112
126
|
- lib
|
113
127
|
required_ruby_version: !ruby/object:Gem::Requirement
|
114
128
|
requirements:
|
115
|
-
- -
|
129
|
+
- - ">="
|
116
130
|
- !ruby/object:Gem::Version
|
117
131
|
version: '0'
|
118
132
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
119
133
|
requirements:
|
120
|
-
- -
|
134
|
+
- - ">="
|
121
135
|
- !ruby/object:Gem::Version
|
122
136
|
version: '0'
|
123
137
|
requirements: []
|
124
138
|
rubyforge_project:
|
125
|
-
rubygems_version: 2.
|
139
|
+
rubygems_version: 2.2.2
|
126
140
|
signing_key:
|
127
141
|
specification_version: 4
|
128
142
|
summary: Manage "lanes" of AWS machines
|