ec2ssh 4.0.0 → 5.0.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/.travis.yml +4 -3
- data/ChangeLog.md +9 -0
- data/Gemfile +4 -2
- data/README.md +6 -5
- data/bash/ec2ssh.bash +2 -9
- data/ec2ssh.gemspec +6 -5
- data/lib/ec2ssh/cli.rb +1 -1
- data/lib/ec2ssh/dsl.rb +1 -1
- data/lib/ec2ssh/ec2_instances.rb +3 -1
- data/lib/ec2ssh/version.rb +1 -1
- data/spec/aws_sdk_compatibility_spec.rb +3 -4
- data/zsh/_ec2ssh +8 -12
- metadata +39 -12
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 392df01c5d38c8c1dc5589258e885cd348646467303abc15cf346101e4a9d441
|
4
|
+
data.tar.gz: b9eb640b664ef6701e50754ff4cf3b3082c66d3132b94350f8a4eb398b764ace
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 331921d24eace17e5ebdfc94aec1c231e7ebd4e7b9fe1619b7e1c28b8f2fd288109530ea3a54eb3d830141d04f35ef43c777d9d4c2071080aaf745bac3b93dcf
|
7
|
+
data.tar.gz: 224f8d90beb435c656c0d50ae1edff0684ace90f4aa9d7a75c1c62f75bfc3aedee1a590deecb5d93f07d42d4c401775c9a892eee86643b169a13493b5473d46e
|
data/.travis.yml
CHANGED
data/ChangeLog.md
CHANGED
@@ -1,4 +1,13 @@
|
|
1
1
|
# Change Log
|
2
|
+
|
3
|
+
## 5.0.0
|
4
|
+
* Remove `--aws-key` option and add `--path` option in shellcomp (#56)
|
5
|
+
* Use aws-sdk v3 and stop using v2 (#54)
|
6
|
+
* Delete `rubyforge_project=` in gemspec (#51)
|
7
|
+
* Relax thor and highline versions (#49)
|
8
|
+
* CI against Ruby 2.5, 2.6 and 2.7 (#45, #55)
|
9
|
+
* Drop support outdated Ruby 2.2 and 2.3 (#59)
|
10
|
+
|
2
11
|
## 4.0.0
|
3
12
|
* Use aws-sdk v2 and stop using v1 (#44)
|
4
13
|
* Support AssumeRole with `~/.aws/credentials` (#44)
|
data/Gemfile
CHANGED
@@ -6,7 +6,9 @@ gem 'rspec', '~> 3.0'
|
|
6
6
|
gem 'rspec-its', '~> 1.0'
|
7
7
|
gem 'guard-rspec', '~> 4.3'
|
8
8
|
gem 'webmock', '~> 1.9'
|
9
|
-
gem 'rb-fsevent', '~> 0.
|
9
|
+
gem 'rb-fsevent', '~> 0.10'
|
10
10
|
gem 'timecop', '~> 0.5'
|
11
|
-
gem 'fakefs', '~>
|
11
|
+
gem 'fakefs', '~> 1.2', require: 'fakefs/safe'
|
12
12
|
gem 'vcr', '~> 3.0'
|
13
|
+
|
14
|
+
gem 'rexml' if RUBY_VERSION >= '2.8.0'
|
data/README.md
CHANGED
@@ -1,4 +1,5 @@
|
|
1
|
-
[](https://badge.fury.io/rb/ec2ssh)
|
2
|
+
[](https://travis-ci.org/mirakui/ec2ssh)
|
2
3
|
|
3
4
|
# Introduction
|
4
5
|
ec2ssh is a ssh_config manager for Amazon EC2.
|
@@ -53,7 +54,7 @@ filters([
|
|
53
54
|
])
|
54
55
|
|
55
56
|
# You can use methods of AWS::EC2::Instance and tag(key) method.
|
56
|
-
# See https://docs.aws.amazon.com/
|
57
|
+
# See https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/EC2/Instance.html
|
57
58
|
host_line <<END
|
58
59
|
Host <%= tag('Name') %>.<%= placement.availability_zone %>
|
59
60
|
HostName <%= public_dns_name || private_ip_address %>
|
@@ -124,8 +125,8 @@ Host db-server-1.ap-southeast-1
|
|
124
125
|
Dotfile (`.ec2ssh`) format has been changed from 3.x.
|
125
126
|
|
126
127
|
* A instance tag access I/F has been changed from `tags['Name']` to `tag('Name')`
|
127
|
-
* `Aws::EC2::Instance` methods have been changed to AWS SDK
|
128
|
-
* The `aws_keys` structure
|
128
|
+
* `Aws::EC2::Instance` methods have been changed to AWS SDK v3
|
129
|
+
* The `aws_keys` structure has been changed
|
129
130
|
* `aws_keys[profile_name][region] # => Aws::Credentials`
|
130
131
|
* For example:
|
131
132
|
|
@@ -144,4 +145,4 @@ aws_keys(
|
|
144
145
|
Use `zsh/_ec2ssh`.
|
145
146
|
|
146
147
|
# License
|
147
|
-
Copyright (c)
|
148
|
+
Copyright (c) 2020 Issei Naruta. ec2ssh is released under the MIT license.
|
data/bash/ec2ssh.bash
CHANGED
@@ -7,7 +7,7 @@ _ec2ssh() {
|
|
7
7
|
prev=$3
|
8
8
|
|
9
9
|
subcmds="help init remove update version"
|
10
|
-
common_opts="--dotfile --verbose"
|
10
|
+
common_opts="--path --dotfile --verbose"
|
11
11
|
|
12
12
|
# contextual completion
|
13
13
|
case $prev in
|
@@ -21,11 +21,7 @@ _ec2ssh() {
|
|
21
21
|
esac
|
22
22
|
return 0
|
23
23
|
;;
|
24
|
-
--
|
25
|
-
COMPREPLY=()
|
26
|
-
return 0;
|
27
|
-
;;
|
28
|
-
--dotfile)
|
24
|
+
--path | --dotfile)
|
29
25
|
COMPREPLY=( $(compgen -o default -- "$cur"))
|
30
26
|
return 0;
|
31
27
|
;;
|
@@ -35,9 +31,6 @@ _ec2ssh() {
|
|
35
31
|
subcmd=${COMP_WORDS[1]}
|
36
32
|
|
37
33
|
case $subcmd in
|
38
|
-
update)
|
39
|
-
COMPREPLY=( $(compgen -W "--aws-key $common_opts" -- "$cur") )
|
40
|
-
;;
|
41
34
|
help)
|
42
35
|
COMPREPLY=( $(compgen -W "$subcmds" $cur) )
|
43
36
|
;;
|
data/ec2ssh.gemspec
CHANGED
@@ -9,14 +9,15 @@ Gem::Specification.new do |s|
|
|
9
9
|
s.authors = ["Issei Naruta"]
|
10
10
|
s.email = ["mimitako@gmail.com"]
|
11
11
|
s.homepage = "http://github.com/mirakui/ec2ssh"
|
12
|
+
s.license = "MIT"
|
12
13
|
s.summary = %q{A ssh_config manager for AWS EC2}
|
13
14
|
s.description = %q{ec2ssh is a ssh_config manager for AWS EC2}
|
14
|
-
s.required_ruby_version = ">= 2.
|
15
|
+
s.required_ruby_version = ">= 2.4.0"
|
15
16
|
|
16
|
-
s.
|
17
|
-
s.add_dependency "
|
18
|
-
s.add_dependency "
|
19
|
-
s.add_dependency "aws-sdk", "~>
|
17
|
+
s.add_dependency "thor", ">= 0.14", "< 2.0"
|
18
|
+
s.add_dependency "highline", ">= 1.6", "< 3.0"
|
19
|
+
s.add_dependency "aws-sdk-core", "~> 3"
|
20
|
+
s.add_dependency "aws-sdk-ec2", "~> 1"
|
20
21
|
|
21
22
|
s.files = `git ls-files`.split("\n")
|
22
23
|
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
data/lib/ec2ssh/cli.rb
CHANGED
data/lib/ec2ssh/dsl.rb
CHANGED
data/lib/ec2ssh/ec2_instances.rb
CHANGED
data/lib/ec2ssh/version.rb
CHANGED
@@ -42,14 +42,13 @@ describe 'aws-sdk compatibility' do
|
|
42
42
|
it { expect(ins.client_token).to match /\A\w{18}\z/ }
|
43
43
|
# it { expect(ins.cpu_options).to be_nil }
|
44
44
|
it { expect(ins.ebs_optimized).to be_falsy }
|
45
|
-
|
45
|
+
it { expect(ins.elastic_gpu_associations).to be_nil }
|
46
46
|
# it { expect(ins.elastic_inference_accelerator_associations).to be_nil }
|
47
|
-
|
47
|
+
it { expect(ins.ena_support).to be_falsy }
|
48
48
|
# it { expect(ins.hibernation_options).to be_nil}
|
49
49
|
it { expect(ins.hypervisor).to be == 'xen' }
|
50
50
|
it { expect(ins.iam_instance_profile).to have_attributes(arn: /\Aarn:aws:iam::\d+:instance-profile\/[\w\-]+\z/, id: /\A\w{21}\z/) }
|
51
51
|
it { expect(ins.id).to match /\Ai-\w+\z/ }
|
52
|
-
it { expect(ins.identifiers).to match(id: /\Ai-\w+\z/) }
|
53
52
|
it { expect(ins.image).to be_a(Aws::EC2::Image) }
|
54
53
|
it { expect(ins.image_id).to match /\Aami-\w+\z/ }
|
55
54
|
it { expect(ins.instance_id).to match /\Ai-\w+\z/ }
|
@@ -57,7 +56,7 @@ describe 'aws-sdk compatibility' do
|
|
57
56
|
it { expect(ins.instance_type).to match /\A[trmci][1248]\.\w+\z/ }
|
58
57
|
it { expect(ins.kernel_id).to be_nil }
|
59
58
|
it { expect(ins.key_name).to match /\A.+\.pem\z/ }
|
60
|
-
|
59
|
+
it { expect(ins.key_pair).to be_a(Aws::EC2::KeyPairInfo) }
|
61
60
|
it { expect(ins.launch_time).to be_a(Time) }
|
62
61
|
# it { expect(ins.licenses).to all have_attributes(license_configuration_arn: '') }
|
63
62
|
it { expect(ins.monitoring).to have_attributes(state: 'disabled') }
|
data/zsh/_ec2ssh
CHANGED
@@ -3,40 +3,35 @@
|
|
3
3
|
# main completion function
|
4
4
|
_ec2ssh-init() {
|
5
5
|
local ret
|
6
|
-
_call_function ret
|
6
|
+
_call_function ret __ec2ssh_common_cmd
|
7
7
|
return $ret
|
8
8
|
}
|
9
9
|
|
10
10
|
_ec2ssh-remove() {
|
11
11
|
local ret
|
12
|
-
_call_function ret
|
12
|
+
_call_function ret __ec2ssh_common_cmd
|
13
13
|
return $ret
|
14
14
|
}
|
15
15
|
|
16
16
|
_ec2ssh-update() {
|
17
|
-
local
|
18
|
-
|
19
|
-
|
20
|
-
integer ret=1
|
21
|
-
_arguments -C -S \
|
22
|
-
'--aws-key:aws key name' \
|
23
|
-
'--dotfile:ec2ssh dotfile:_files' \
|
24
|
-
'--verbose' && return
|
17
|
+
local ret
|
18
|
+
_call_function ret __ec2ssh_common_cmd
|
25
19
|
return $ret
|
26
20
|
}
|
27
21
|
|
28
22
|
_ec2ssh-version() {
|
29
23
|
local ret
|
30
|
-
_call_function ret
|
24
|
+
_call_function ret __ec2ssh_common_cmd
|
31
25
|
return $ret
|
32
26
|
}
|
33
27
|
|
34
|
-
|
28
|
+
__ec2ssh_common_cmd() {
|
35
29
|
local curcontext context state line
|
36
30
|
declare -A opt_args
|
37
31
|
|
38
32
|
integer ret=1
|
39
33
|
_arguments -C -S \
|
34
|
+
'--path:ssh_config file:_files' \
|
40
35
|
'--dotfile:ec2ssh dotfile:_files' \
|
41
36
|
'--verbose' && return
|
42
37
|
return $ret
|
@@ -49,6 +44,7 @@ _ec2ssh() {
|
|
49
44
|
integer ret=1
|
50
45
|
|
51
46
|
_arguments -C -S \
|
47
|
+
'--path:ssh_config file:_files' \
|
52
48
|
'--dotfile:ec2ssh dotfile:_files' \
|
53
49
|
'--verbose' \
|
54
50
|
'(-): :->commands' \
|
metadata
CHANGED
@@ -1,57 +1,83 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ec2ssh
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 5.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Issei Naruta
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2020-07-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: thor
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - "
|
17
|
+
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: '0.14'
|
20
|
+
- - "<"
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: '2.0'
|
20
23
|
type: :runtime
|
21
24
|
prerelease: false
|
22
25
|
version_requirements: !ruby/object:Gem::Requirement
|
23
26
|
requirements:
|
24
|
-
- - "
|
27
|
+
- - ">="
|
25
28
|
- !ruby/object:Gem::Version
|
26
29
|
version: '0.14'
|
30
|
+
- - "<"
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '2.0'
|
27
33
|
- !ruby/object:Gem::Dependency
|
28
34
|
name: highline
|
29
35
|
requirement: !ruby/object:Gem::Requirement
|
30
36
|
requirements:
|
31
|
-
- - "
|
37
|
+
- - ">="
|
32
38
|
- !ruby/object:Gem::Version
|
33
39
|
version: '1.6'
|
40
|
+
- - "<"
|
41
|
+
- !ruby/object:Gem::Version
|
42
|
+
version: '3.0'
|
34
43
|
type: :runtime
|
35
44
|
prerelease: false
|
36
45
|
version_requirements: !ruby/object:Gem::Requirement
|
37
46
|
requirements:
|
38
|
-
- - "
|
47
|
+
- - ">="
|
39
48
|
- !ruby/object:Gem::Version
|
40
49
|
version: '1.6'
|
50
|
+
- - "<"
|
51
|
+
- !ruby/object:Gem::Version
|
52
|
+
version: '3.0'
|
53
|
+
- !ruby/object:Gem::Dependency
|
54
|
+
name: aws-sdk-core
|
55
|
+
requirement: !ruby/object:Gem::Requirement
|
56
|
+
requirements:
|
57
|
+
- - "~>"
|
58
|
+
- !ruby/object:Gem::Version
|
59
|
+
version: '3'
|
60
|
+
type: :runtime
|
61
|
+
prerelease: false
|
62
|
+
version_requirements: !ruby/object:Gem::Requirement
|
63
|
+
requirements:
|
64
|
+
- - "~>"
|
65
|
+
- !ruby/object:Gem::Version
|
66
|
+
version: '3'
|
41
67
|
- !ruby/object:Gem::Dependency
|
42
|
-
name: aws-sdk
|
68
|
+
name: aws-sdk-ec2
|
43
69
|
requirement: !ruby/object:Gem::Requirement
|
44
70
|
requirements:
|
45
71
|
- - "~>"
|
46
72
|
- !ruby/object:Gem::Version
|
47
|
-
version: '
|
73
|
+
version: '1'
|
48
74
|
type: :runtime
|
49
75
|
prerelease: false
|
50
76
|
version_requirements: !ruby/object:Gem::Requirement
|
51
77
|
requirements:
|
52
78
|
- - "~>"
|
53
79
|
- !ruby/object:Gem::Version
|
54
|
-
version: '
|
80
|
+
version: '1'
|
55
81
|
description: ec2ssh is a ssh_config manager for AWS EC2
|
56
82
|
email:
|
57
83
|
- mimitako@gmail.com
|
@@ -97,7 +123,8 @@ files:
|
|
97
123
|
- spec/spec_helper.rb
|
98
124
|
- zsh/_ec2ssh
|
99
125
|
homepage: http://github.com/mirakui/ec2ssh
|
100
|
-
licenses:
|
126
|
+
licenses:
|
127
|
+
- MIT
|
101
128
|
metadata: {}
|
102
129
|
post_install_message:
|
103
130
|
rdoc_options: []
|
@@ -107,14 +134,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
107
134
|
requirements:
|
108
135
|
- - ">="
|
109
136
|
- !ruby/object:Gem::Version
|
110
|
-
version: 2.
|
137
|
+
version: 2.4.0
|
111
138
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
112
139
|
requirements:
|
113
140
|
- - ">="
|
114
141
|
- !ruby/object:Gem::Version
|
115
142
|
version: '0'
|
116
143
|
requirements: []
|
117
|
-
rubygems_version: 3.
|
144
|
+
rubygems_version: 3.1.2
|
118
145
|
signing_key:
|
119
146
|
specification_version: 4
|
120
147
|
summary: A ssh_config manager for AWS EC2
|