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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 4d072ed56adc4c6f6211370b5e46e499b0a6588f
4
- data.tar.gz: ec38a657af92f32bb0fd18cffce2467ade3ef437
3
+ metadata.gz: 33a1d141bec973da05d80ff867e9bd85a9fdd69d
4
+ data.tar.gz: aa9e4e8b1b169f9fe6d103797d8f2ae6b113987e
5
5
  SHA512:
6
- metadata.gz: faa63eeea13925c549668162254e4e8f730dc459fd2b7d2f77686a996315b61030d0c9214bbb3f93583a5833563ed62e152a413bcbc0b52cae952733d3725006
7
- data.tar.gz: 83103bf61c7306333fd64e1ef1bf55b1f60cf8c9fe327bca02db0bba0b3d309df627c5e5e6020cc33454552767f43ac13c3772a20b377de91355ae924c68768b
6
+ metadata.gz: 72efffc58cd8d963f0a273344ee5f30fea13c6ffbb3cdf2d25aa6676d970e09f33d03df55b5fc58870a13457fcfd59b0bb6ebc5ac5daaeaffde0b40a7f3b6abc
7
+ data.tar.gz: 7be57d9008903becff74fddd6f34d22ce36de19ad262a18b2b191db37a178243810875de5c5b174d5ce773d7097066fb3d37dcad546d1e917f888725aea0d7ab
data/.gitignore CHANGED
@@ -12,4 +12,5 @@
12
12
  *.o
13
13
  *.a
14
14
  mkmf.log
15
- *.gem
15
+ *.gem
16
+ .idea
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 "rest_client"
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
- # load the Lanes settings file
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 "lanes/version"
3
- require "lanes/aws"
4
- require "lanes/props"
5
- require "lanes/file"
6
- require "thor"
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 = if mods['identity'] then '-i ' + mods['identity'] else '' end
41
- tunnel = if mods['tunnel'] then '-L' + mods['tunnel'] else '' end
42
- user = if mods['user'] then mods['user'] else 'ec2-user' end
43
- cmd = "ssh #{user}@%{ip} #{identity} #{tunnel}" % chosen
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=nul)
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
- # IMPORTANT: IF YOU CHANGE STUFF BELOW, CHANGE IT IN bin/lanes #
166
- ################################################################
167
- if ENV['RUBYMINE'] != nil
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']="~/.lanes/#{profile}.yml"
170
+ ENV['AWSCLI_CONFIG_FILE']=profile_config_path
174
171
 
175
172
  # Populate our properties singleton as well
176
- settings = YAML.load_file( ENV['HOME'] + "/.lanes/#{profile}.yml")
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
@@ -1,3 +1,3 @@
1
1
  module AwsLanes
2
- VERSION = "0.0.4"
2
+ VERSION = "0.1.0"
3
3
  end
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
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: 2015-02-19 00:00:00.000000000 Z
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: rest_client
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.1.11
139
+ rubygems_version: 2.2.2
126
140
  signing_key:
127
141
  specification_version: 4
128
142
  summary: Manage "lanes" of AWS machines