xssh-aws 0.1.1 → 0.1.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ec688158dc97befb5dfa0494a0cbb257950624675b20ce29cc640cf14760742c
4
- data.tar.gz: 5408af62d9324a8cc4af3878b397379c64ff76917e9c239da81679bae2e49239
3
+ metadata.gz: cd7972c1ac2b6dedd09ad65d354a29fc1915a1ed300a76924ff261118a0380ba
4
+ data.tar.gz: e7b5a2645fa82b983a2e202f720dca11a498d6b96325f59dd5f91bd0d2edd3ae
5
5
  SHA512:
6
- metadata.gz: 00a2e80303f8541dff491401b5a45321f3f0a1c22f28f6ca1e5f66f3c9acb393fc7a6b3957353efc61b0c6eb3b57dc2c68621a880aaf0ce72f0063e78836cc06
7
- data.tar.gz: 59aaee0796d863f16c57ca859b5ac889f6362e9194df4d7926e77cba60ca69f90251f30c5e8e68a781be9f83e61473f0860b576547609e28f1187b7ffa44925b
6
+ metadata.gz: d452ec77d78279d88a213eea16ccee82d6490691dd3666bc0f7ac23373529741ead68f3b75ef2844c3e23efaab38157d6ce1d5f050470f28c790a64d8fafd978
7
+ data.tar.gz: 3ecd6db58e9187410afc3e83258f7a7f856c4b89e8a7e6bea983852aa30ccd6396fa2e46a95dc7aea4c3766ddf38b88abe595b95f7011e4e1fe1fc21a3fc56d5
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- xssh-aws (0.1.1)
4
+ xssh-aws (0.1.2)
5
5
  aws-sdk-ec2 (~> 1.2)
6
6
  xssh (~> 0.1)
7
7
 
@@ -10,13 +10,13 @@ GEM
10
10
  specs:
11
11
  ast (2.4.1)
12
12
  aws-eventstream (1.1.0)
13
- aws-partitions (1.381.0)
14
- aws-sdk-core (3.109.1)
13
+ aws-partitions (1.390.0)
14
+ aws-sdk-core (3.109.2)
15
15
  aws-eventstream (~> 1, >= 1.0.2)
16
16
  aws-partitions (~> 1, >= 1.239.0)
17
17
  aws-sigv4 (~> 1.1)
18
18
  jmespath (~> 1.0)
19
- aws-sdk-ec2 (1.200.0)
19
+ aws-sdk-ec2 (1.208.0)
20
20
  aws-sdk-core (~> 3, >= 3.109.0)
21
21
  aws-sigv4 (~> 1.1)
22
22
  aws-sigv4 (1.2.2)
@@ -73,7 +73,7 @@ GEM
73
73
  thor (1.0.1)
74
74
  tilt (2.0.10)
75
75
  unicode-display_width (1.7.0)
76
- xssh (0.1.0)
76
+ xssh (0.1.1)
77
77
  bcrypt_pbkdf
78
78
  ed25519
79
79
  net-ssh
@@ -1,4 +1,5 @@
1
- require 'aws-sdk-ec2'
1
+ require 'xssh/aws/ec2'
2
+ require 'xssh/aws/config'
2
3
 
3
4
  module Xssh
4
5
 
@@ -8,12 +9,20 @@ module Xssh
8
9
 
9
10
  module Aws
10
11
  class << self
12
+ def ec2
13
+ @ec2 ||= EC2.new
14
+ end
15
+
16
+ def configure(&block)
17
+ @config = Config.new(block)
18
+ end
19
+
11
20
  def instance_souces(query='.*', **opts)
12
- ec2 = ::Aws::EC2::Resource.new
21
+ instances = ec2.instances
13
22
 
14
- ec2.instances.map do |i|
15
- host = i.tags.find{|h| h.key == 'Name' }.value || i.instance_id
16
- next unless host =~ /#{query}/
23
+ instances.map do |i|
24
+ name = i.tags.find{|h| h.key == 'Name' }.value || i.instance_id
25
+ next unless name =~ /#{query}/
17
26
  next unless i.state.name == "running"
18
27
 
19
28
  addr_type = opts[:address_type] || :public
@@ -21,15 +30,13 @@ module Xssh
21
30
 
22
31
  {
23
32
  type: type,
24
- name: host,
25
- host: host,
33
+ name: name,
26
34
  host_name: i.send("#{addr_type}_ip_address".to_sym),
27
35
  instance_id: i.instance_id,
28
36
  aws: i
29
37
  }
30
38
  end
31
39
  end
32
-
33
40
  end
34
41
  end
35
42
  end
@@ -0,0 +1,16 @@
1
+ module Xssh
2
+ module Aws
3
+ class Config
4
+ def initialize(block)
5
+ @cache = false
6
+ instance_eval(&block)
7
+ end
8
+
9
+ def cache(mode = nil)
10
+ return @cache if mode == nil
11
+
12
+ @cache = mode
13
+ end
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,17 @@
1
+ require 'aws-sdk-ec2'
2
+ require 'yaml'
3
+
4
+ module Xssh
5
+ module Aws
6
+ class EC2
7
+ def initialize
8
+ @ec2 = ::Aws::EC2::Resource.new
9
+ end
10
+
11
+ def instances(cache: false)
12
+ @instances ||= @ec2.instances
13
+ end
14
+
15
+ end
16
+ end
17
+ end
@@ -1,5 +1,5 @@
1
1
  module Xssh
2
2
  module Aws
3
- VERSION = "0.1.1"
3
+ VERSION = "0.1.2"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: xssh-aws
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - gen
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-10-14 00:00:00.000000000 Z
11
+ date: 2020-11-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: xssh
@@ -81,6 +81,8 @@ files:
81
81
  - bin/console
82
82
  - bin/setup
83
83
  - lib/xssh/aws.rb
84
+ - lib/xssh/aws/config.rb
85
+ - lib/xssh/aws/ec2.rb
84
86
  - lib/xssh/aws/version.rb
85
87
  - xssh-aws.gemspec
86
88
  homepage: https://github.com/Gen-Arch/xssh-aws
@@ -88,7 +90,7 @@ licenses: []
88
90
  metadata:
89
91
  homepage_uri: https://github.com/Gen-Arch/xssh-aws
90
92
  source_code_uri: https://github.com/Gen-Arch/xssh-aws
91
- post_install_message:
93
+ post_install_message:
92
94
  rdoc_options: []
93
95
  require_paths:
94
96
  - lib
@@ -103,8 +105,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
103
105
  - !ruby/object:Gem::Version
104
106
  version: '0'
105
107
  requirements: []
106
- rubygems_version: 3.1.2
107
- signing_key:
108
+ rubygems_version: 3.1.4
109
+ signing_key:
108
110
  specification_version: 4
109
111
  summary: cross ssh client
110
112
  test_files: []