test-kitchen 1.12.0 → 1.13.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/CHANGELOG.md +13 -0
- data/Gemfile +2 -2
- data/features/step_definitions/gem_steps.rb +27 -27
- data/lib/kitchen/cli.rb +8 -0
- data/lib/kitchen/command/package.rb +36 -0
- data/lib/kitchen/configurable.rb +1 -1
- data/lib/kitchen/driver/base.rb +7 -0
- data/lib/kitchen/driver/ssh_base.rb +6 -0
- data/lib/kitchen/instance.rb +7 -0
- data/lib/kitchen/transport/ssh.rb +1 -1
- data/lib/kitchen/version.rb +1 -1
- data/spec/kitchen/provisioner/chef_solo_spec.rb +1 -1
- data/spec/kitchen/provisioner/chef_zero_spec.rb +2 -2
- data/test-kitchen.gemspec +1 -1
- metadata +5 -10
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 616a0d59e9500a9ae80507ef5efdf7175bb4adba
|
4
|
+
data.tar.gz: 3108f9221ad1ef480d3282e107e581a65f1c5873
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6b2851f54a37c72e95a6ae3e1842cbb54165508cc3ff1129ee2456fef1c06558c6647a19c361e21aaefdc9a13717d337bad07b122658b7ffb3e92e2e9c1f69b6
|
7
|
+
data.tar.gz: a0b3a27e700d82e0295004f9bf4a38e86148a3922d9ef7ac108de22b95341c718be87db1589b8970284ae608c0a8eb19a038544a50f81423b19c5c7ed1b5ccdf
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,18 @@
|
|
1
1
|
# Change Log
|
2
2
|
|
3
|
+
## [v1.13.0](https://github.com/test-kitchen/test-kitchen/tree/v1.13.0) (2016-09-16)
|
4
|
+
[Full Changelog](https://github.com/test-kitchen/test-kitchen/compare/v1.12.0...v1.13.0)
|
5
|
+
|
6
|
+
**Implemented enhancements:**
|
7
|
+
|
8
|
+
- Add `kitchen status` command [\#87](https://github.com/test-kitchen/test-kitchen/issues/87)
|
9
|
+
- Add support for Windows Nano installs via chef provisioners [\#1119](https://github.com/test-kitchen/test-kitchen/pull/1119) ([mwrock](https://github.com/mwrock))
|
10
|
+
- Add package driver command [\#1074](https://github.com/test-kitchen/test-kitchen/pull/1074) ([neillturner](https://github.com/neillturner))
|
11
|
+
|
12
|
+
**Fixed bugs:**
|
13
|
+
|
14
|
+
- SSH Transport: Bastion proxy results in broken pipe error [\#1079](https://github.com/test-kitchen/test-kitchen/issues/1079)
|
15
|
+
|
3
16
|
## [v1.12.0](https://github.com/test-kitchen/test-kitchen/tree/v1.12.0) (2016-09-02)
|
4
17
|
[Full Changelog](https://github.com/test-kitchen/test-kitchen/compare/v1.11.1...v1.12.0)
|
5
18
|
|
data/Gemfile
CHANGED
@@ -3,11 +3,11 @@ source "https://rubygems.org"
|
|
3
3
|
gemspec
|
4
4
|
gem "rack", "< 2.0"
|
5
5
|
|
6
|
-
gem "train",
|
6
|
+
gem "train", "~> 0.19.0"
|
7
7
|
|
8
8
|
group :integration do
|
9
9
|
gem "berkshelf", "~> 4.3"
|
10
|
-
gem "kitchen-inspec",
|
10
|
+
gem "kitchen-inspec", "~> 0.15.1"
|
11
11
|
end
|
12
12
|
|
13
13
|
group :test do
|
@@ -3,34 +3,34 @@
|
|
3
3
|
require "tmpdir"
|
4
4
|
require "pathname"
|
5
5
|
|
6
|
-
|
7
|
-
|
8
|
-
|
6
|
+
Given(/^a sandboxed GEM_HOME directory named "(.*?)"$/) do |name|
|
7
|
+
backup_envvar("GEM_HOME")
|
8
|
+
backup_envvar("GEM_PATH")
|
9
9
|
|
10
|
-
|
10
|
+
@aruba_timeout_seconds = 30
|
11
11
|
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
12
|
+
gem_home = Pathname.new(Dir.mktmpdir(name))
|
13
|
+
aruba.environment["GEM_HOME"] = gem_home.to_s
|
14
|
+
aruba.environment["GEM_PATH"] = [gem_home.to_s, ENV["GEM_PATH"]].join(":")
|
15
|
+
@cleanup_dirs << gem_home
|
16
|
+
end
|
17
17
|
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
18
|
+
Then(/^a gem named "(.*?)" is installed with version "(.*?)"$/) do |name, version|
|
19
|
+
unbundlerize do
|
20
|
+
run_simple(
|
21
|
+
sanitize_text("gem list #{name} --version #{version} -i"),
|
22
|
+
:fail_on_error => true,
|
23
|
+
:exit_timeout => nil
|
24
|
+
)
|
25
|
+
end
|
26
|
+
end
|
27
27
|
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
28
|
+
Then(/^a gem named "(.*?)" is installed$/) do |name|
|
29
|
+
unbundlerize do
|
30
|
+
run_simple(
|
31
|
+
sanitize_text("gem list #{name} -i"),
|
32
|
+
:fail_on_error => true,
|
33
|
+
:exit_timeout => nil
|
34
|
+
)
|
35
|
+
end
|
36
|
+
end
|
data/lib/kitchen/cli.rb
CHANGED
@@ -119,6 +119,7 @@ module Kitchen
|
|
119
119
|
update_config!
|
120
120
|
perform("list", "list", args)
|
121
121
|
end
|
122
|
+
map :status => :list
|
122
123
|
|
123
124
|
desc "diagnose [INSTANCE|REGEXP|all]", "Show computed diagnostic configuration"
|
124
125
|
method_option :loader,
|
@@ -239,6 +240,13 @@ module Kitchen
|
|
239
240
|
perform("login", "login", args)
|
240
241
|
end
|
241
242
|
|
243
|
+
desc "package INSTANCE|REGEXP", "package an instance"
|
244
|
+
log_options
|
245
|
+
def package(*args)
|
246
|
+
update_config!
|
247
|
+
perform("package", "package", args)
|
248
|
+
end
|
249
|
+
|
242
250
|
desc "exec INSTANCE|REGEXP -c REMOTE_COMMAND",
|
243
251
|
"Execute command on one or more instance"
|
244
252
|
method_option :command,
|
@@ -0,0 +1,36 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
#
|
3
|
+
#
|
4
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
5
|
+
# you may not use this file except in compliance with the License.
|
6
|
+
# You may obtain a copy of the License at
|
7
|
+
#
|
8
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
9
|
+
#
|
10
|
+
# Unless required by applicable law or agreed to in writing, software
|
11
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
12
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
13
|
+
# See the License for the specific language governing permissions and
|
14
|
+
# limitations under the License.
|
15
|
+
|
16
|
+
require "kitchen/command"
|
17
|
+
|
18
|
+
module Kitchen
|
19
|
+
|
20
|
+
module Command
|
21
|
+
|
22
|
+
# Execute command on remote instance.
|
23
|
+
#
|
24
|
+
class Package < Kitchen::Command::Base
|
25
|
+
|
26
|
+
# Invoke the command.
|
27
|
+
def call
|
28
|
+
results = parse_subcommand(args.first)
|
29
|
+
results.each do |instance|
|
30
|
+
banner "Package on #{instance.name}."
|
31
|
+
instance.package_action
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
data/lib/kitchen/configurable.rb
CHANGED
@@ -255,7 +255,7 @@ module Kitchen
|
|
255
255
|
def reload_ps1_path
|
256
256
|
[
|
257
257
|
%{$env:PATH},
|
258
|
-
%{[System.Environment]::GetEnvironmentVariable("PATH","Machine")\n\n
|
258
|
+
%(try { [System.Environment]::GetEnvironmentVariable("PATH","Machine") } catch {}\n\n)
|
259
259
|
].join(" = ")
|
260
260
|
end
|
261
261
|
|
data/lib/kitchen/driver/base.rb
CHANGED
@@ -52,6 +52,13 @@ module Kitchen
|
|
52
52
|
def destroy(state) # rubocop:disable Lint/UnusedMethodArgument
|
53
53
|
end
|
54
54
|
|
55
|
+
# Package an instance.
|
56
|
+
#
|
57
|
+
# @param state [Hash] mutable instance and driver state
|
58
|
+
# @raise [ActionFailed] if the action could not be completed
|
59
|
+
def package(state) # rubocop:disable Lint/UnusedMethodArgument
|
60
|
+
end
|
61
|
+
|
55
62
|
class << self
|
56
63
|
# @return [Array<Symbol>] an array of action method names that cannot
|
57
64
|
# be run concurrently and must be run in serial via a shared mutex
|
@@ -130,6 +130,12 @@ module Kitchen
|
|
130
130
|
backcompat_merged_state(state)
|
131
131
|
end
|
132
132
|
|
133
|
+
# Package an instance.
|
134
|
+
#
|
135
|
+
# (see Base#package)
|
136
|
+
def package(state) # rubocop:disable Lint/UnusedMethodArgument
|
137
|
+
end
|
138
|
+
|
133
139
|
# (see Base#login_command)
|
134
140
|
def login_command(state)
|
135
141
|
instance.transport.connection(backcompat_merged_state(state)).
|
data/lib/kitchen/instance.rb
CHANGED
@@ -229,6 +229,13 @@ module Kitchen
|
|
229
229
|
end
|
230
230
|
end
|
231
231
|
|
232
|
+
# Perform package.
|
233
|
+
#
|
234
|
+
def package_action
|
235
|
+
banner "Packaging remote instance"
|
236
|
+
driver.package(state_file.read)
|
237
|
+
end
|
238
|
+
|
232
239
|
# Returns a Hash of configuration and other useful diagnostic information.
|
233
240
|
#
|
234
241
|
# @return [Hash] a diagnostic hash
|
@@ -197,7 +197,7 @@ module Kitchen
|
|
197
197
|
|
198
198
|
RESCUE_EXCEPTIONS_ON_ESTABLISH = [
|
199
199
|
Errno::EACCES, Errno::EADDRINUSE, Errno::ECONNREFUSED, Errno::ETIMEDOUT,
|
200
|
-
Errno::ECONNRESET, Errno::ENETUNREACH, Errno::EHOSTUNREACH,
|
200
|
+
Errno::ECONNRESET, Errno::ENETUNREACH, Errno::EHOSTUNREACH, Errno::EPIPE,
|
201
201
|
Net::SSH::Disconnect, Net::SSH::AuthenticationFailed, Net::SSH::ConnectionTimeout,
|
202
202
|
Timeout::Error
|
203
203
|
].freeze
|
data/lib/kitchen/version.rb
CHANGED
@@ -500,7 +500,7 @@ describe Kitchen::Provisioner::ChefSolo do
|
|
500
500
|
|
501
501
|
it "reloads PATH for older chef omnibus packages" do
|
502
502
|
cmd.must_match regexify("$env:PATH = " +
|
503
|
-
%{[System.Environment]::GetEnvironmentVariable("PATH","Machine")})
|
503
|
+
%(try { [System.Environment]::GetEnvironmentVariable("PATH","Machine") } catch {}))
|
504
504
|
end
|
505
505
|
|
506
506
|
it "calls the chef-solo command from :chef_solo_path" do
|
@@ -818,7 +818,7 @@ describe Kitchen::Provisioner::ChefZero do
|
|
818
818
|
|
819
819
|
it "reloads PATH for older chef omnibus packages" do
|
820
820
|
cmd.must_match regexify("$env:PATH = " +
|
821
|
-
%{[System.Environment]::GetEnvironmentVariable("PATH","Machine")})
|
821
|
+
%(try { [System.Environment]::GetEnvironmentVariable("PATH","Machine") } catch {}))
|
822
822
|
end
|
823
823
|
|
824
824
|
it "calls the chef-client command from :chef_client_path" do
|
@@ -979,7 +979,7 @@ describe Kitchen::Provisioner::ChefZero do
|
|
979
979
|
|
980
980
|
it "reloads PATH for older chef omnibus packages" do
|
981
981
|
cmd.must_match regexify("$env:PATH = " +
|
982
|
-
%{[System.Environment]::GetEnvironmentVariable("PATH","Machine")})
|
982
|
+
%(try { [System.Environment]::GetEnvironmentVariable("PATH","Machine") } catch {}))
|
983
983
|
end
|
984
984
|
end
|
985
985
|
end
|
data/test-kitchen.gemspec
CHANGED
@@ -29,7 +29,7 @@ Gem::Specification.new do |gem|
|
|
29
29
|
gem.add_dependency "net-ssh-gateway", "~> 1.2.0"
|
30
30
|
gem.add_dependency "safe_yaml", "~> 1.0"
|
31
31
|
gem.add_dependency "thor", "~> 0.18"
|
32
|
-
gem.add_dependency "mixlib-install", "~> 1.
|
32
|
+
gem.add_dependency "mixlib-install", "~> 1.2"
|
33
33
|
|
34
34
|
gem.add_development_dependency "pry"
|
35
35
|
gem.add_development_dependency "pry-byebug"
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: test-kitchen
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.13.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Fletcher Nichol
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-09-
|
11
|
+
date: 2016-09-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: mixlib-shellout
|
@@ -112,20 +112,14 @@ dependencies:
|
|
112
112
|
requirements:
|
113
113
|
- - "~>"
|
114
114
|
- !ruby/object:Gem::Version
|
115
|
-
version: '1.
|
116
|
-
- - ">="
|
117
|
-
- !ruby/object:Gem::Version
|
118
|
-
version: 1.0.4
|
115
|
+
version: '1.2'
|
119
116
|
type: :runtime
|
120
117
|
prerelease: false
|
121
118
|
version_requirements: !ruby/object:Gem::Requirement
|
122
119
|
requirements:
|
123
120
|
- - "~>"
|
124
121
|
- !ruby/object:Gem::Version
|
125
|
-
version: '1.
|
126
|
-
- - ">="
|
127
|
-
- !ruby/object:Gem::Version
|
128
|
-
version: 1.0.4
|
122
|
+
version: '1.2'
|
129
123
|
- !ruby/object:Gem::Dependency
|
130
124
|
name: pry
|
131
125
|
requirement: !ruby/object:Gem::Requirement
|
@@ -480,6 +474,7 @@ files:
|
|
480
474
|
- lib/kitchen/command/exec.rb
|
481
475
|
- lib/kitchen/command/list.rb
|
482
476
|
- lib/kitchen/command/login.rb
|
477
|
+
- lib/kitchen/command/package.rb
|
483
478
|
- lib/kitchen/command/sink.rb
|
484
479
|
- lib/kitchen/command/test.rb
|
485
480
|
- lib/kitchen/config.rb
|