kitchen-inspec 0.16.1 → 0.17.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 -2
- data/README.md +13 -0
- data/lib/kitchen/verifier/inspec.rb +16 -6
- data/lib/kitchen/verifier/inspec_version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 225b906544c971b3981d028d49e555946aff73b7
|
|
4
|
+
data.tar.gz: 2fd9bff33af879f659d95c0b35e43628a3537b37
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: a42c520d180f2eee16bddf5e7ec7ef21cbd845866dca619cab37aeda0626de30eb220a23ca8d48129e33eda34f93a4d3cd2075f318042bc745bc6ef86670efbc
|
|
7
|
+
data.tar.gz: fdede7e9a33c9cc8e3ad4f581f2eaf794760cbf53b7e629b630de2645cd57f817182cdb16be194e025650733295a9b363d393750a62470107741829bab2af871
|
data/CHANGELOG.md
CHANGED
|
@@ -1,7 +1,18 @@
|
|
|
1
1
|
# Change Log
|
|
2
2
|
|
|
3
|
-
## [0.
|
|
4
|
-
[Full Changelog](https://github.com/chef/kitchen-inspec/compare/v0.16.
|
|
3
|
+
## [0.17.0](https://github.com/chef/kitchen-inspec/tree/0.17.0) (2016-12-08)
|
|
4
|
+
[Full Changelog](https://github.com/chef/kitchen-inspec/compare/v0.16.1...0.17.0)
|
|
5
|
+
|
|
6
|
+
**Implemented enhancements:**
|
|
7
|
+
|
|
8
|
+
- Support multiple outputs based on platform/test suite variables \(issue 121\) [\#122](https://github.com/chef/kitchen-inspec/pull/122) ([jcastillocano](https://github.com/jcastillocano))
|
|
9
|
+
|
|
10
|
+
**Merged pull requests:**
|
|
11
|
+
|
|
12
|
+
- Tweak logging for clarity [\#123](https://github.com/chef/kitchen-inspec/pull/123) ([tduffield](https://github.com/tduffield))
|
|
13
|
+
|
|
14
|
+
## [v0.16.1](https://github.com/chef/kitchen-inspec/tree/v0.16.1) (2016-11-11)
|
|
15
|
+
[Full Changelog](https://github.com/chef/kitchen-inspec/compare/v0.16.0...v0.16.1)
|
|
5
16
|
|
|
6
17
|
**Implemented enhancements:**
|
|
7
18
|
|
data/README.md
CHANGED
|
@@ -55,6 +55,19 @@ verifier:
|
|
|
55
55
|
port: 22
|
|
56
56
|
```
|
|
57
57
|
|
|
58
|
+
If you want to customize the output file per platform or test suite
|
|
59
|
+
you can use template format for your output variable. Current flags
|
|
60
|
+
supported:
|
|
61
|
+
* _%{platform}_
|
|
62
|
+
* _%{suite}_
|
|
63
|
+
|
|
64
|
+
```yaml
|
|
65
|
+
verifier:
|
|
66
|
+
name: inspec
|
|
67
|
+
format: junit
|
|
68
|
+
output: path/to/results/%{platform}_%{suite}_inspec.xml
|
|
69
|
+
```
|
|
70
|
+
|
|
58
71
|
### Directory Structure
|
|
59
72
|
|
|
60
73
|
By default `kitchen-inspec` expects test to be in `test/integration/%suite%` directory structure (we use Chef as provisioner here):
|
|
@@ -66,20 +66,31 @@ module Kitchen
|
|
|
66
66
|
logger.debug("Initialize InSpec")
|
|
67
67
|
|
|
68
68
|
# gather connection options
|
|
69
|
-
opts = runner_options(instance.transport, state)
|
|
69
|
+
opts = runner_options(instance.transport, state, instance.platform.name, instance.suite.name)
|
|
70
70
|
|
|
71
71
|
# add attributes
|
|
72
72
|
opts[:attrs] = config[:attrs]
|
|
73
73
|
opts[:attributes] = Hashie.stringify_keys config[:attributes] unless config[:attributes].nil?
|
|
74
74
|
|
|
75
|
+
# setup logger
|
|
76
|
+
::Inspec::Log.init(STDERR)
|
|
77
|
+
::Inspec::Log.level = Kitchen::Util.from_logger_level(logger.level)
|
|
78
|
+
|
|
75
79
|
# initialize runner
|
|
76
80
|
runner = ::Inspec::Runner.new(opts)
|
|
77
81
|
|
|
78
82
|
# add each profile to runner
|
|
79
83
|
tests = collect_tests
|
|
80
|
-
|
|
84
|
+
profile_ctx = nil
|
|
85
|
+
tests.each do |target|
|
|
86
|
+
profile_ctx = runner.add_target(target, opts)
|
|
87
|
+
end
|
|
88
|
+
|
|
89
|
+
profile_ctx ||= []
|
|
90
|
+
profile_ctx.each do |profile|
|
|
91
|
+
logger.info("Loaded #{profile.name} ")
|
|
92
|
+
end
|
|
81
93
|
|
|
82
|
-
logger.debug("Running tests from: #{tests.inspect}")
|
|
83
94
|
exit_code = runner.run
|
|
84
95
|
return if exit_code == 0
|
|
85
96
|
raise ActionFailed, "Inspec Runner returns #{exit_code}"
|
|
@@ -127,7 +138,6 @@ module Kitchen
|
|
|
127
138
|
end
|
|
128
139
|
|
|
129
140
|
base = File.join(base, "inspec") if legacy_mode
|
|
130
|
-
logger.info("Using `#{base}` for testing")
|
|
131
141
|
|
|
132
142
|
# only return the directory if it exists
|
|
133
143
|
Pathname.new(base).exist? ? [{ :path => base }] : []
|
|
@@ -159,7 +169,7 @@ module Kitchen
|
|
|
159
169
|
#
|
|
160
170
|
# @return [Hash] a configuration hash of string-based keys
|
|
161
171
|
# @api private
|
|
162
|
-
def runner_options(transport, state = {}) # rubocop:disable Metrics/AbcSize
|
|
172
|
+
def runner_options(transport, state = {}, platform = nil, suite = nil) # rubocop:disable Metrics/AbcSize
|
|
163
173
|
transport_data = transport.diagnose.merge(state)
|
|
164
174
|
if transport.is_a?(Kitchen::Transport::Ssh)
|
|
165
175
|
runner_options_for_ssh(transport_data)
|
|
@@ -174,7 +184,7 @@ module Kitchen
|
|
|
174
184
|
# default color to true to match InSpec behavior
|
|
175
185
|
runner_options["color"] = (config[:color].nil? ? true : config[:color])
|
|
176
186
|
runner_options["format"] = config[:format] unless config[:format].nil?
|
|
177
|
-
runner_options["output"] = config[:output] unless config[:output].nil?
|
|
187
|
+
runner_options["output"] = config[:output] % { platform: platform, suite: suite } unless config[:output].nil?
|
|
178
188
|
runner_options["profiles_path"] = config[:profiles_path] unless config[:profiles_path].nil?
|
|
179
189
|
end
|
|
180
190
|
end
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: kitchen-inspec
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.17.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Fletcher Nichol
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2016-
|
|
11
|
+
date: 2016-12-08 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: inspec
|