xssh-aws 0.1.1 → 0.1.2

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
  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: []