awsssh 2.0.1 → 2.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 +8 -8
- data/.gitignore +1 -0
- data/awsssh.gemspec +3 -1
- data/lib/awsssh.rb +24 -17
- metadata +30 -1
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
MDM3MTZlNjg5OWM0YzMyMjkzMzdjYzQzNTAyOWJkODkzZjA5YzAxNQ==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
MGE1NjAxYWIzZDE2YTRjMjlhNWY2YzM5OGM2ZDFjODhjMjE3OWQwZg==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
MmQ4MjRkNGUzNjUxMjVhNmQxNjllYzQ3Yjg5NGExZDRjYzA2OTQ4YzA4MTVl
|
10
|
+
OTE0OTliYWE1MDQwODJhMzRlNGQ1ZTYxZjEzN2YzODI5OTE5YmQ0YjhjZDhm
|
11
|
+
NmU5M2Y3ODIxOWY5MTM5Mzc3MWUxNDFhOGM5OGQwM2RlM2Q4ZmM=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
OGE5NzdiM2FhYjE3MWIyOGI3OGNhZGZjNWVjNGI2M2JiM2ZlYzU5NzFiM2U2
|
14
|
+
ZGUwOGY5ZTg3YzM1Y2U1MWJkYWZkYjE3YjM5ZmE3OWMwMTFlNDg5ZjRjMGM3
|
15
|
+
Y2YwZTM2NmMxODczNDg0YjQyOGFhMDRhYTQ3OTA5YTkwNzVmNDc=
|
data/.gitignore
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
*.gem
|
data/awsssh.gemspec
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
Gem::Specification.new do |s|
|
2
2
|
s.name = 'awsssh'
|
3
|
-
s.version = '2.0
|
3
|
+
s.version = '2.1.0'
|
4
4
|
s.date = '2014-02-27'
|
5
5
|
s.summary = "Connects you with OpsWorks EC2"
|
6
6
|
s.description = "This will connects you with an EC3 instace"
|
@@ -13,4 +13,6 @@ Gem::Specification.new do |s|
|
|
13
13
|
|
14
14
|
|
15
15
|
s.add_runtime_dependency "net-ssh", "2.7.0"
|
16
|
+
s.add_runtime_dependency "inifile", "2.0.2"
|
17
|
+
s.add_runtime_dependency "aws-sdk", "1.35.0"
|
16
18
|
end
|
data/lib/awsssh.rb
CHANGED
@@ -2,8 +2,13 @@
|
|
2
2
|
require 'rubygems'
|
3
3
|
require 'net/ssh'
|
4
4
|
require 'json'
|
5
|
+
require "aws-sdk"
|
6
|
+
# require "pry"
|
7
|
+
require "inifile"
|
5
8
|
|
6
9
|
class Awsssh
|
10
|
+
CONFIG_DIR = ENV['AWSSSH_CONFIG_DIR'] || "/Users/#{ENV['USER']}/.aws/"
|
11
|
+
CONF_FILE = ENV['AWSSSH_CONFIG_FILE'] || "aws_config_"
|
7
12
|
|
8
13
|
def do_start
|
9
14
|
if ARGV[0] == "--list-accounts"
|
@@ -17,8 +22,6 @@ class Awsssh
|
|
17
22
|
end
|
18
23
|
end
|
19
24
|
|
20
|
-
CONFIG_DIR = "/Users/#{ENV['USER']}/.aws/"
|
21
|
-
CONF_FILE = "aws_config_"
|
22
25
|
##
|
23
26
|
# Renders the Help
|
24
27
|
#
|
@@ -52,11 +55,11 @@ class Awsssh
|
|
52
55
|
# - [Array] StackIDs
|
53
56
|
|
54
57
|
def list_stacks(account)
|
55
|
-
awscfg(account)
|
56
|
-
stacks =
|
58
|
+
ow = awscfg(account)
|
59
|
+
stacks = ow.client.describe_stacks[:stacks]
|
57
60
|
stack_ids = []
|
58
|
-
stacks
|
59
|
-
stack_ids << stack[
|
61
|
+
stacks.each do |stack|
|
62
|
+
stack_ids << stack[:stack_id]
|
60
63
|
end
|
61
64
|
return stack_ids
|
62
65
|
end
|
@@ -74,9 +77,9 @@ class Awsssh
|
|
74
77
|
#
|
75
78
|
|
76
79
|
def read_stack(stackid, account)
|
77
|
-
|
78
|
-
|
79
|
-
JSON.parse(`aws opsworks describe-instances --stack-id #{stackid}`)
|
80
|
+
ow = awscfg(account)
|
81
|
+
ow.client.describe_instances({:stack_id => stackid})
|
82
|
+
# JSON.parse(`aws opsworks describe-instances --stack-id #{stackid}`)
|
80
83
|
end
|
81
84
|
|
82
85
|
##
|
@@ -94,7 +97,7 @@ class Awsssh
|
|
94
97
|
config_files.each do |file|
|
95
98
|
if file[0,CONF_FILE.length] == CONF_FILE
|
96
99
|
file_part = file.split("_")
|
97
|
-
unless file_part
|
100
|
+
unless file_part.last.nil?
|
98
101
|
printf "\t- %-#{length}s\n", file_part[2]
|
99
102
|
end
|
100
103
|
end
|
@@ -112,8 +115,8 @@ class Awsssh
|
|
112
115
|
# - <servername> (<status>)
|
113
116
|
|
114
117
|
def server_name(stack)
|
115
|
-
stack[
|
116
|
-
printf "\t- %-20s %s\n", instance[
|
118
|
+
stack[:instances].each do |instance|
|
119
|
+
printf "\t- %-20s %s\n", instance[:hostname], instance[:status]
|
117
120
|
end
|
118
121
|
end
|
119
122
|
|
@@ -145,9 +148,9 @@ class Awsssh
|
|
145
148
|
stack_ids = list_stacks host[0]
|
146
149
|
stack_ids.each do |stack_id|
|
147
150
|
stack = read_stack(stack_id, host[0])
|
148
|
-
stack
|
149
|
-
if i[
|
150
|
-
public_dns = i[
|
151
|
+
stack.instances.each do |i|
|
152
|
+
if i[:hostname] == server
|
153
|
+
public_dns = i[:public_dns]
|
151
154
|
break
|
152
155
|
end
|
153
156
|
end
|
@@ -166,8 +169,12 @@ class Awsssh
|
|
166
169
|
end
|
167
170
|
|
168
171
|
def awscfg(account)
|
169
|
-
if
|
170
|
-
|
172
|
+
if cnf = IniFile.load(CONFIG_DIR + CONF_FILE + account)['default']
|
173
|
+
return AWS::OpsWorks.new(
|
174
|
+
access_key_id: cnf['aws_access_key_id'],
|
175
|
+
secret_access_key: cnf['aws_secret_access_key'],
|
176
|
+
region: cnf['region']
|
177
|
+
)
|
171
178
|
else
|
172
179
|
puts "No config #{CONF_FILE}#{account} found"
|
173
180
|
exit -1
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: awsssh
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0
|
4
|
+
version: 2.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sebastian Thiele
|
@@ -24,6 +24,34 @@ dependencies:
|
|
24
24
|
- - '='
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: 2.7.0
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: inifile
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - '='
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 2.0.2
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - '='
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: 2.0.2
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: aws-sdk
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - '='
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: 1.35.0
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - '='
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: 1.35.0
|
27
55
|
description: This will connects you with an EC3 instace
|
28
56
|
email:
|
29
57
|
- Sebastian.Thiele@infopark.de
|
@@ -32,6 +60,7 @@ executables:
|
|
32
60
|
extensions: []
|
33
61
|
extra_rdoc_files: []
|
34
62
|
files:
|
63
|
+
- .gitignore
|
35
64
|
- README.md
|
36
65
|
- awsssh.gemspec
|
37
66
|
- bin/awsssh
|