ec2ssh 3.1.0.rc1 → 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 +5 -5
- data/.travis.yml +9 -3
- data/ChangeLog.md +23 -0
- data/Gemfile +6 -2
- data/README.md +27 -24
- data/Rakefile +3 -0
- data/bash/ec2ssh.bash +4 -11
- data/ec2ssh.gemspec +6 -5
- data/example/example.ec2ssh +2 -2
- data/fixtures/vcr_cassettes/ec2-instances.yml +178 -0
- data/lib/ec2ssh/builder.rb +12 -2
- data/lib/ec2ssh/cli.rb +4 -23
- data/lib/ec2ssh/command.rb +1 -1
- data/lib/ec2ssh/command/init.rb +3 -9
- data/lib/ec2ssh/command/update.rb +0 -5
- data/lib/ec2ssh/dsl.rb +15 -0
- data/lib/ec2ssh/ec2_instances.rb +70 -16
- data/lib/ec2ssh/version.rb +1 -1
- data/spec/aws_sdk_compatibility_spec.rb +92 -0
- data/spec/lib/ec2ssh/builder_spec.rb +16 -14
- data/spec/lib/ec2ssh/command/remove_spec.rb +5 -4
- data/spec/lib/ec2ssh/command/update_spec.rb +14 -10
- data/spec/lib/ec2ssh/dsl_spec.rb +44 -11
- data/spec/lib/ec2ssh/ec2_instances_spec.rb +26 -8
- data/spec/lib/ec2ssh/ssh_config_spec.rb +2 -0
- data/spec/spec_helper.rb +5 -1
- data/zsh/_ec2ssh +8 -50
- metadata +44 -21
- data/lib/ec2ssh/command/migrate.rb +0 -34
- data/lib/ec2ssh/migrator.rb +0 -77
- data/spec/lib/ec2ssh/command/migrate_spec.rb +0 -111
- data/spec/lib/ec2ssh/migrator_spec.rb +0 -62
@@ -3,10 +3,13 @@ require 'ec2ssh/command/update'
|
|
3
3
|
require 'ec2ssh/exceptions'
|
4
4
|
|
5
5
|
describe Ec2ssh::Command::Update do
|
6
|
+
include FakeFS::SpecHelpers
|
7
|
+
|
6
8
|
describe '#run' do
|
7
9
|
let(:command) do
|
8
10
|
described_class.new(cli).tap do |cmd|
|
9
11
|
allow(cmd).to receive(:options).and_return(options)
|
12
|
+
allow(cmd.builder).to receive(:aws_keys) { aws_keys }
|
10
13
|
allow(cmd.builder.ec2s).to receive(:instances) { instances }
|
11
14
|
end
|
12
15
|
end
|
@@ -16,10 +19,13 @@ describe Ec2ssh::Command::Update do
|
|
16
19
|
let(:cli) do
|
17
20
|
double(:cli, options: options, red: nil, yellow: nil, green: nil)
|
18
21
|
end
|
22
|
+
let(:aws_keys) do
|
23
|
+
{'default' => {'us-west-1' => Aws::Credentials.new('access_key_id', 'secret_access_key')}}
|
24
|
+
end
|
19
25
|
let(:instances) do
|
20
26
|
[
|
21
|
-
double('instance',
|
22
|
-
double('instance',
|
27
|
+
double('instance', private_ip_address: '10.0.0.1').tap {|m| allow(m).to receive(:tag).with('Name').and_return('srv1') },
|
28
|
+
double('instance', private_ip_address: '10.0.0.2').tap {|m| allow(m).to receive(:tag).with('Name').and_return('srv2') }
|
23
29
|
]
|
24
30
|
end
|
25
31
|
|
@@ -32,11 +38,10 @@ describe Ec2ssh::Command::Update do
|
|
32
38
|
let(:ssh_config_str) { '' }
|
33
39
|
let(:dotfile_str) { <<-END }
|
34
40
|
path '/dotfile'
|
35
|
-
|
36
|
-
|
37
|
-
)
|
41
|
+
profiles 'default'
|
42
|
+
regions 'us-west-1'
|
38
43
|
host_line <<EOS
|
39
|
-
Host <%=
|
44
|
+
Host <%= tag('Name') %>
|
40
45
|
HostName <%= private_ip_address %>
|
41
46
|
EOS
|
42
47
|
END
|
@@ -58,11 +63,10 @@ EOS
|
|
58
63
|
|
59
64
|
let(:dotfile_str) { <<-END }
|
60
65
|
path '/dotfile'
|
61
|
-
|
62
|
-
|
63
|
-
)
|
66
|
+
profiles 'default'
|
67
|
+
regions 'us-west-1'
|
64
68
|
host_line <<EOS
|
65
|
-
Host <%=
|
69
|
+
Host <%= tag('Name') %>
|
66
70
|
HostName <%= private_ip_address %>
|
67
71
|
EOS
|
68
72
|
END
|
data/spec/lib/ec2ssh/dsl_spec.rb
CHANGED
@@ -27,10 +27,9 @@ END
|
|
27
27
|
let(:dsl_str) do
|
28
28
|
<<-END
|
29
29
|
aws_keys(
|
30
|
-
key1
|
31
|
-
key2
|
30
|
+
'key1' => { 'ap-northeast-1' => Aws::Credentials.new('ACCESS_KEY1', 'SECRET1') },
|
31
|
+
'key2' => { 'us-east-1' => Aws::Credentials.new('ACCESS_KEY2', 'SECRET2') }
|
32
32
|
)
|
33
|
-
regions 'ap-northeast-1', 'us-east-1'
|
34
33
|
host_line 'host lines'
|
35
34
|
reject {|instance| instance }
|
36
35
|
path 'path'
|
@@ -40,13 +39,12 @@ END
|
|
40
39
|
subject(:result) { Ec2ssh::Dsl::Parser.parse dsl_str }
|
41
40
|
|
42
41
|
its(:profiles) { should be_nil }
|
43
|
-
|
44
|
-
|
45
|
-
key1
|
46
|
-
key2
|
47
|
-
|
42
|
+
it do
|
43
|
+
expect(result.aws_keys).to match(
|
44
|
+
'key1' => { 'ap-northeast-1' => be_a(Aws::Credentials).and(have_attributes(access_key_id: 'ACCESS_KEY1', secret_access_key: 'SECRET1')) } ,
|
45
|
+
'key2' => { 'us-east-1' => be_a(Aws::Credentials).and(have_attributes(access_key_id: 'ACCESS_KEY2', secret_access_key: 'SECRET2')) }
|
46
|
+
)
|
48
47
|
end
|
49
|
-
its(:regions) { should == ['ap-northeast-1', 'us-east-1'] }
|
50
48
|
its(:host_line) { should == 'host lines' }
|
51
49
|
it { expect(result.reject.call(123)).to eq(123) }
|
52
50
|
its(:path) { should == 'path' }
|
@@ -56,8 +54,8 @@ END
|
|
56
54
|
let(:dsl_str) do
|
57
55
|
<<-END
|
58
56
|
aws_keys(
|
59
|
-
key1
|
60
|
-
key2
|
57
|
+
'key1' => { 'ap-northeast-1' => Aws::Credentials.new('ACCESS_KEY1', 'SECRET1') },
|
58
|
+
'key2' => { 'us-east-1' => Aws::Credentials.new('ACCESS_KEY2', 'SECRET2') }
|
61
59
|
)
|
62
60
|
profiles 'default', 'myprofile'
|
63
61
|
regions 'ap-northeast-1', 'us-east-1'
|
@@ -71,4 +69,39 @@ END
|
|
71
69
|
expect { Ec2ssh::Dsl::Parser.parse dsl_str }.to raise_error Ec2ssh::DotfileValidationError
|
72
70
|
end
|
73
71
|
end
|
72
|
+
|
73
|
+
context 'with old structure aws_keys' do
|
74
|
+
let(:dsl_str) do
|
75
|
+
<<-END
|
76
|
+
aws_keys(
|
77
|
+
key1: { access_key_id: 'ACCESS_KEY1', secret_access_key: 'SECRET1' },
|
78
|
+
key2: { access_key_id: 'ACCESS_KEY2', secret_access_key: 'SECRET2' }
|
79
|
+
)
|
80
|
+
regions 'ap-northeast-1', 'us-east-1'
|
81
|
+
host_line 'host lines'
|
82
|
+
reject {|instance| instance }
|
83
|
+
path 'path'
|
84
|
+
END
|
85
|
+
end
|
86
|
+
|
87
|
+
it { expect { Ec2ssh::Dsl::Parser.parse dsl_str }.to raise_error Ec2ssh::DotfileValidationError }
|
88
|
+
end
|
89
|
+
|
90
|
+
context 'with filters' do
|
91
|
+
let(:dsl_str) do
|
92
|
+
<<-END
|
93
|
+
regions 'ap-northeast-1', 'us-east-1'
|
94
|
+
filters [{
|
95
|
+
name: 'instance-state-name',
|
96
|
+
values: ['running', 'stopped']
|
97
|
+
}]
|
98
|
+
END
|
99
|
+
end
|
100
|
+
|
101
|
+
subject(:result) { Ec2ssh::Dsl::Parser.parse dsl_str }
|
102
|
+
|
103
|
+
it do
|
104
|
+
expect(result.filters).to eq([{name:'instance-state-name', values:['running', 'stopped']}])
|
105
|
+
end
|
106
|
+
end
|
74
107
|
end
|
@@ -12,9 +12,11 @@ describe Ec2ssh::Ec2Instances do
|
|
12
12
|
}
|
13
13
|
|
14
14
|
let(:mock) do
|
15
|
-
described_class.new(
|
15
|
+
described_class.new(
|
16
|
+
{key_name => {region => ''}},
|
17
|
+
[{ name: 'instance-state-name', values: ['running'] }]
|
18
|
+
).tap do |e|
|
16
19
|
allow(e).to receive(:ec2s) { ec2s }
|
17
|
-
allow(e).to receive(:regions) { [region] }
|
18
20
|
end
|
19
21
|
end
|
20
22
|
|
@@ -37,9 +39,9 @@ describe Ec2ssh::Ec2Instances do
|
|
37
39
|
context 'with non-empty names' do
|
38
40
|
let(:mock_instances) {
|
39
41
|
[
|
40
|
-
double('instance', n: 1, tags:
|
41
|
-
double('instance', n: 2, tags:
|
42
|
-
double('instance', n: 3, tags:
|
42
|
+
double('instance', n: 1, tags: [double('tag', key: 'Name', value: 'srvB')]),
|
43
|
+
double('instance', n: 2, tags: [double('tag', key: 'Name', value: 'srvA')]),
|
44
|
+
double('instance', n: 3, tags: [double('tag', key: 'Name', value: 'srvC')])
|
43
45
|
]
|
44
46
|
}
|
45
47
|
|
@@ -52,9 +54,9 @@ describe Ec2ssh::Ec2Instances do
|
|
52
54
|
context 'with names including empty one' do
|
53
55
|
let(:mock_instances) {
|
54
56
|
[
|
55
|
-
double('instance', n: 1, tags:
|
56
|
-
double('instance', n: 2, tags:
|
57
|
-
double('instance', n: 3, tags:
|
57
|
+
double('instance', n: 1, tags: [double('tag', key: 'Name', value: 'srvA')]),
|
58
|
+
double('instance', n: 2, tags: []),
|
59
|
+
double('instance', n: 3, tags: [double('tag', key: 'Name', value: 'srvC')])
|
58
60
|
]
|
59
61
|
}
|
60
62
|
|
@@ -63,6 +65,22 @@ describe Ec2ssh::Ec2Instances do
|
|
63
65
|
expect(result.map {|ins| ins.n}).to match_array([2, 1, 3])
|
64
66
|
end
|
65
67
|
end
|
68
|
+
end
|
69
|
+
|
70
|
+
describe Ec2ssh::Ec2Instances::InstanceWrapper do
|
71
|
+
let(:mock_instance) {
|
72
|
+
double('instance', n: 1, tags: [double('tag', key: 'Name', value: 'srvA')])
|
73
|
+
}
|
74
|
+
let(:instance) { described_class.new(mock_instance) }
|
66
75
|
|
76
|
+
describe '#tag' do
|
77
|
+
it { expect(instance.tag('Name')).to eq 'srvA' }
|
78
|
+
end
|
79
|
+
|
80
|
+
describe '#tags' do
|
81
|
+
it { expect(instance.tags).to match_array(have_attributes(key: 'Name', value: 'srvA')) }
|
82
|
+
it { expect(instance.tags[0]).to have_attributes(key: 'Name', value: 'srvA') }
|
83
|
+
it { expect { instance.tags['Name'] }.to raise_error Ec2ssh::DotfileValidationError }
|
84
|
+
end
|
67
85
|
end
|
68
86
|
end
|
data/spec/spec_helper.rb
CHANGED
data/zsh/_ec2ssh
CHANGED
@@ -3,82 +3,40 @@
|
|
3
3
|
# main completion function
|
4
4
|
_ec2ssh-init() {
|
5
5
|
local ret
|
6
|
-
_call_function ret
|
7
|
-
return $ret
|
8
|
-
}
|
9
|
-
|
10
|
-
_ec2ssh-migrate() {
|
11
|
-
local ret
|
12
|
-
_call_function ret __ec2ssh_noarg_cmd
|
6
|
+
_call_function ret __ec2ssh_common_cmd
|
13
7
|
return $ret
|
14
8
|
}
|
15
9
|
|
16
10
|
_ec2ssh-remove() {
|
17
11
|
local ret
|
18
|
-
_call_function ret
|
12
|
+
_call_function ret __ec2ssh_common_cmd
|
19
13
|
return $ret
|
20
14
|
}
|
21
15
|
|
22
16
|
_ec2ssh-update() {
|
23
|
-
local
|
24
|
-
|
25
|
-
|
26
|
-
integer ret=1
|
27
|
-
_arguments -C -S \
|
28
|
-
'--aws-key:aws key name:__ec2ssh_aws_keys' \
|
29
|
-
'--dotfile:ec2ssh dotfile:_files' \
|
30
|
-
'--verbose' && return
|
17
|
+
local ret
|
18
|
+
_call_function ret __ec2ssh_common_cmd
|
31
19
|
return $ret
|
32
20
|
}
|
33
21
|
|
34
22
|
_ec2ssh-version() {
|
35
23
|
local ret
|
36
|
-
_call_function ret
|
24
|
+
_call_function ret __ec2ssh_common_cmd
|
37
25
|
return $ret
|
38
26
|
}
|
39
27
|
|
40
|
-
|
28
|
+
__ec2ssh_common_cmd() {
|
41
29
|
local curcontext context state line
|
42
30
|
declare -A opt_args
|
43
31
|
|
44
32
|
integer ret=1
|
45
33
|
_arguments -C -S \
|
34
|
+
'--path:ssh_config file:_files' \
|
46
35
|
'--dotfile:ec2ssh dotfile:_files' \
|
47
36
|
'--verbose' && return
|
48
37
|
return $ret
|
49
38
|
}
|
50
39
|
|
51
|
-
_ec2ssh-help() {
|
52
|
-
local curcontext context state line
|
53
|
-
declare -A opt_args
|
54
|
-
|
55
|
-
integer ret=1
|
56
|
-
_arguments -C -S \
|
57
|
-
'(-): :->commands' && return
|
58
|
-
|
59
|
-
case $state in
|
60
|
-
(commands)
|
61
|
-
_ec2ssh_commands && ret=0
|
62
|
-
;;
|
63
|
-
esac
|
64
|
-
|
65
|
-
return $ret
|
66
|
-
}
|
67
|
-
|
68
|
-
|
69
|
-
__ec2ssh_aws_keys() {
|
70
|
-
local keys dotfile
|
71
|
-
|
72
|
-
if (( ind = ${words[(I)--dotfile]} )) && [ -f "${~words[ind+1]}" ]; then
|
73
|
-
dotfile=${~words[ind+1]}
|
74
|
-
else
|
75
|
-
dotfile="$HOME/.ec2ssh"
|
76
|
-
fi
|
77
|
-
|
78
|
-
keys=$(echo "$dotfile" | ruby -r ec2ssh/dsl -e 'puts Ec2ssh::Dsl::Parser.parse_file(STDIN.read.strip).aws_keys.keys' 2> /dev/null)
|
79
|
-
_values 'aws key name' $(echo $keys)
|
80
|
-
}
|
81
|
-
|
82
40
|
_ec2ssh() {
|
83
41
|
local curcontext context state line
|
84
42
|
declare -A opt_args
|
@@ -86,6 +44,7 @@ _ec2ssh() {
|
|
86
44
|
integer ret=1
|
87
45
|
|
88
46
|
_arguments -C -S \
|
47
|
+
'--path:ssh_config file:_files' \
|
89
48
|
'--dotfile:ec2ssh dotfile:_files' \
|
90
49
|
'--verbose' \
|
91
50
|
'(-): :->commands' \
|
@@ -111,7 +70,6 @@ _ec2ssh_commands() {
|
|
111
70
|
_values 'command' \
|
112
71
|
'help[Describe available commands or one specific command]' \
|
113
72
|
'init[Add ec2ssh mark to ssh_config]' \
|
114
|
-
'migrate[Migrate dotfile from old versions]' \
|
115
73
|
'remove[Remove ec2ssh mark from ssh_config]' \
|
116
74
|
'update[Update ec2 hosts list in ssh_config]' \
|
117
75
|
'version[Show version]'
|
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: '1
|
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: '1
|
80
|
+
version: '1'
|
55
81
|
description: ec2ssh is a ssh_config manager for AWS EC2
|
56
82
|
email:
|
57
83
|
- mimitako@gmail.com
|
@@ -73,33 +99,32 @@ files:
|
|
73
99
|
- bin/ec2ssh
|
74
100
|
- ec2ssh.gemspec
|
75
101
|
- example/example.ec2ssh
|
102
|
+
- fixtures/vcr_cassettes/ec2-instances.yml
|
76
103
|
- lib/ec2ssh.rb
|
77
104
|
- lib/ec2ssh/builder.rb
|
78
105
|
- lib/ec2ssh/cli.rb
|
79
106
|
- lib/ec2ssh/command.rb
|
80
107
|
- lib/ec2ssh/command/init.rb
|
81
|
-
- lib/ec2ssh/command/migrate.rb
|
82
108
|
- lib/ec2ssh/command/remove.rb
|
83
109
|
- lib/ec2ssh/command/update.rb
|
84
110
|
- lib/ec2ssh/dsl.rb
|
85
111
|
- lib/ec2ssh/ec2_instances.rb
|
86
112
|
- lib/ec2ssh/exceptions.rb
|
87
|
-
- lib/ec2ssh/migrator.rb
|
88
113
|
- lib/ec2ssh/ssh_config.rb
|
89
114
|
- lib/ec2ssh/version.rb
|
115
|
+
- spec/aws_sdk_compatibility_spec.rb
|
90
116
|
- spec/lib/ec2ssh/builder_spec.rb
|
91
117
|
- spec/lib/ec2ssh/command/init_spec.rb
|
92
|
-
- spec/lib/ec2ssh/command/migrate_spec.rb
|
93
118
|
- spec/lib/ec2ssh/command/remove_spec.rb
|
94
119
|
- spec/lib/ec2ssh/command/update_spec.rb
|
95
120
|
- spec/lib/ec2ssh/dsl_spec.rb
|
96
121
|
- spec/lib/ec2ssh/ec2_instances_spec.rb
|
97
|
-
- spec/lib/ec2ssh/migrator_spec.rb
|
98
122
|
- spec/lib/ec2ssh/ssh_config_spec.rb
|
99
123
|
- spec/spec_helper.rb
|
100
124
|
- zsh/_ec2ssh
|
101
125
|
homepage: http://github.com/mirakui/ec2ssh
|
102
|
-
licenses:
|
126
|
+
licenses:
|
127
|
+
- MIT
|
103
128
|
metadata: {}
|
104
129
|
post_install_message:
|
105
130
|
rdoc_options: []
|
@@ -109,26 +134,24 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
109
134
|
requirements:
|
110
135
|
- - ">="
|
111
136
|
- !ruby/object:Gem::Version
|
112
|
-
version: 2.
|
137
|
+
version: 2.4.0
|
113
138
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
114
139
|
requirements:
|
115
|
-
- - "
|
140
|
+
- - ">="
|
116
141
|
- !ruby/object:Gem::Version
|
117
|
-
version:
|
142
|
+
version: '0'
|
118
143
|
requirements: []
|
119
|
-
|
120
|
-
rubygems_version: 2.4.5
|
144
|
+
rubygems_version: 3.1.2
|
121
145
|
signing_key:
|
122
146
|
specification_version: 4
|
123
147
|
summary: A ssh_config manager for AWS EC2
|
124
148
|
test_files:
|
149
|
+
- spec/aws_sdk_compatibility_spec.rb
|
125
150
|
- spec/lib/ec2ssh/builder_spec.rb
|
126
151
|
- spec/lib/ec2ssh/command/init_spec.rb
|
127
|
-
- spec/lib/ec2ssh/command/migrate_spec.rb
|
128
152
|
- spec/lib/ec2ssh/command/remove_spec.rb
|
129
153
|
- spec/lib/ec2ssh/command/update_spec.rb
|
130
154
|
- spec/lib/ec2ssh/dsl_spec.rb
|
131
155
|
- spec/lib/ec2ssh/ec2_instances_spec.rb
|
132
|
-
- spec/lib/ec2ssh/migrator_spec.rb
|
133
156
|
- spec/lib/ec2ssh/ssh_config_spec.rb
|
134
157
|
- spec/spec_helper.rb
|