kitchen-inspec 0.15.0 → 0.15.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: ed5b5de805ad3aa42acd9649e2579809d61409f7
4
- data.tar.gz: f934130cfc36238f9790cba735efbee0f5662326
3
+ metadata.gz: 4bc8423e2234f64b59f405374ed6c60f1af1e91f
4
+ data.tar.gz: 1fb144b60402be43a6740cb05222837bccc28965
5
5
  SHA512:
6
- metadata.gz: 93fb9ca1b2d228291fb93470460dc64690cd557265a724c7b7b0c001919a672ec97bd59af3140015ac918f706649be5060905f55507ed42332c1b5ee792eb51a
7
- data.tar.gz: edd9113f440b7b6b434a26fdccebe2868338f82a5accc5b64c60b504ca11cbe3effafc5d0515a5a5d03e2ca538e00a80e736cca673f89deeb6384e8eda54a6ef
6
+ metadata.gz: 367b7d059261f715856d82d25d5637c7e311b5bacaaa8d157de83974b53daebb9751589e3c3cb071fcacad53f03704a2314c2437e2c2d57cecd93bf98a031ed1
7
+ data.tar.gz: 78fa6b26c0293770b8372f192b94c6e3943b36384b4207b4ada35cbebb93962951915dc52a0f645c8296105ef004c1a626aa2d522664479fbe427aa16a97cc0a
@@ -3,23 +3,22 @@ language: ruby
3
3
  cache: bundler
4
4
  dist: trusty
5
5
  services:
6
- - docker
6
+ - docker
7
7
  bundler_args: "--without integration guard tools"
8
8
  before_install:
9
- - gem install bundler
10
- - gem --version
9
+ - gem install bundler
10
+ - gem --version
11
11
  matrix:
12
12
  include:
13
- - rvm: 1.9.3
14
- - rvm: 2.0
15
- - rvm: 2.1
16
- - rvm: ruby-head
17
- - rvm: 2.2
13
+ - rvm: 2.1.9
14
+ - rvm: 2.2.5
15
+ - rvm: 2.3.1
18
16
  bundler_args: "--without guard tools"
19
17
  script: bundle exec rake test:integration OS='default profile contains_inspec'
20
- - rvm: 2.2
18
+ - rvm: 2.3.1
21
19
  bundler_args: "--without guard tools"
22
20
  script: bundle exec rake test:integration OS='supermarket'
21
+ - rvm: ruby-head
23
22
  allow_failures:
24
23
  - rvm: ruby-head
25
24
  deploy:
data/Berksfile CHANGED
@@ -1,8 +1,8 @@
1
1
  # encoding: utf-8
2
2
 
3
- source 'https://supermarket.chef.io'
3
+ source "https://supermarket.chef.io"
4
4
 
5
- cookbook 'apt'
6
- cookbook 'yum'
7
- cookbook 'os_prepare', path: './test/cookbooks/os_prepare'
8
- cookbook 'ssh-hardening', git: 'https://github.com/dev-sec/chef-ssh-hardening.git'
5
+ cookbook "apt"
6
+ cookbook "yum"
7
+ cookbook "os_prepare", path: "./test/cookbooks/os_prepare"
8
+ cookbook "ssh-hardening", git: "https://github.com/dev-sec/chef-ssh-hardening.git"
@@ -1,7 +1,21 @@
1
1
  # Change Log
2
2
 
3
- ## [0.15.0](https://github.com/chef/kitchen-inspec/tree/0.15.0) (2016-07-15)
4
- [Full Changelog](https://github.com/chef/kitchen-inspec/compare/v0.14.0...0.15.0)
3
+ ## [0.15.1](https://github.com/chef/kitchen-inspec/tree/0.15.1) (2016-09-05)
4
+ [Full Changelog](https://github.com/chef/kitchen-inspec/compare/v0.15.0...0.15.1)
5
+
6
+ **Closed issues:**
7
+
8
+ - Kitchen verify/test fails when using the command resource with curl [\#100](https://github.com/chef/kitchen-inspec/issues/100)
9
+ - Default to \( progress | documentation \) format for test-kitchen inspec verifier [\#91](https://github.com/chef/kitchen-inspec/issues/91)
10
+
11
+ **Merged pull requests:**
12
+
13
+ - Require Ruby 2.1+ [\#99](https://github.com/chef/kitchen-inspec/pull/99) ([tas50](https://github.com/tas50))
14
+ - Switch from finstyle / rubocop to chefstyle [\#98](https://github.com/chef/kitchen-inspec/pull/98) ([tas50](https://github.com/tas50))
15
+ - Update winrm password key for winrm-v2 [\#94](https://github.com/chef/kitchen-inspec/pull/94) ([mwrock](https://github.com/mwrock))
16
+
17
+ ## [v0.15.0](https://github.com/chef/kitchen-inspec/tree/v0.15.0) (2016-07-15)
18
+ [Full Changelog](https://github.com/chef/kitchen-inspec/compare/v0.14.0...v0.15.0)
5
19
 
6
20
  **Fixed bugs:**
7
21
 
data/Gemfile CHANGED
@@ -1,33 +1,43 @@
1
1
  # -*- encoding: utf-8 -*-
2
- source 'https://rubygems.org'
2
+ source "https://rubygems.org"
3
3
  gemspec
4
4
 
5
- group :guard do
6
- gem 'guard-rspec', :require => nil
7
- gem 'guard-rubocop', :require => nil
8
- end
9
-
10
- group :test do
11
- gem 'bundler', '~> 1.5'
12
- gem 'minitest', '~> 5.5'
13
- gem 'rake', '~> 10'
14
- gem 'rubocop', '~> 0.32'
15
- gem 'concurrent-ruby', '~> 0.9'
16
- gem 'codeclimate-test-reporter', :require => nil
17
- end
18
-
19
5
  # pin dependency for Ruby 1.9.3 since bundler is not
20
6
  # detecting that net-ssh 3 does not work with 1.9.3
21
7
  if Gem::Version.new(RUBY_VERSION) <= Gem::Version.new('1.9.3')
22
8
  gem 'net-ssh', '~> 2.9'
23
9
  end
24
10
 
11
+ if Gem::Version.new(RUBY_VERSION) < Gem::Version.new('2.2.2')
12
+ gem 'json', '< 2.0'
13
+ gem 'rack', '< 2.0'
14
+ gem 'ruby_dep', '< 1.4.0'
15
+ gem 'listen', '< 3.0.0'
16
+ end
17
+
18
+ group :guard do
19
+ gem "guard-rspec", :require => nil
20
+ gem "guard-rubocop", :require => nil
21
+ end
22
+
23
+ group :test do
24
+ gem "bundler", "~> 1.10"
25
+ gem "minitest", "~> 5.5"
26
+ gem "rake", "~> 11.0"
27
+ gem "chefstyle", "0.4.0"
28
+ gem "concurrent-ruby", "~> 0.9"
29
+ gem "codeclimate-test-reporter", :require => nil
30
+ gem "rspec"
31
+ gem "simplecov", "~> 0.12"
32
+ gem "countloc", "~> 0.4"
33
+ end
34
+
25
35
  group :integration do
26
- gem 'berkshelf', '>= 4.2.3'
27
- gem 'kitchen-dokken'
36
+ gem "berkshelf", ">= 4.3.5"
37
+ gem "kitchen-dokken"
28
38
  end
29
39
 
30
40
  group :tools do
31
- gem 'pry', '~> 0.10'
32
- gem 'github_changelog_generator', '1.11.3'
41
+ gem "pry", "~> 0.10"
42
+ gem "github_changelog_generator", "1.13.1"
33
43
  end
data/Guardfile CHANGED
@@ -2,18 +2,18 @@
2
2
  ignore %r{^\.gem/}
3
3
 
4
4
  def rspec_opts
5
- { cmd: 'bundle exec rspec' }
5
+ { cmd: "bundle exec rspec" }
6
6
  end
7
7
 
8
8
  def rubocop_opts
9
- { all_on_start: false, keep_failed: false, cli: '-r finstyle' }
9
+ { all_on_start: false, keep_failed: false, cli: "-r chefstyle" }
10
10
  end
11
11
 
12
12
  group :red_green_refactor, halt_on_fail: true do
13
13
  guard :rspec, rspec_opts do
14
14
  watch(%r{^spec/(.*)_spec\.rb})
15
15
  watch(%r{^lib/(.*)([^/]+)\.rb}) { |m| "spec/#{m[1]}#{m[2]}_spec.rb" }
16
- watch(%r{^spec/spec_helper\.rb}) { 'spec' }
16
+ watch(%r{^spec/spec_helper\.rb}) { "spec" }
17
17
  end
18
18
 
19
19
  guard :rubocop, rubocop_opts do
data/README.md CHANGED
@@ -1,10 +1,12 @@
1
1
  # Kitchen::InSpec - A Test Kitchen Verifier for InSpec
2
2
 
3
+ [![Build Status Master](https://travis-ci.org/chef/kitchen-inspec.svg?branch=master)](https://travis-ci.org/chef/kitchen-inspec) [![Gem Version](https://badge.fury.io/rb/kitchen-inspec.svg)](https://badge.fury.io/rb/kitchen-inspec)
4
+
3
5
  This is the kitchen driver for [InSpec](https://github.com/chef/inspec). To see the project in action, we have the following test-kitchen examples available:
4
6
 
5
- - [Chef and InSpec](https://github.com/chef/inspec/tree/master/examples/kitchen-chef)
6
- - [Puppet and InSpec](https://github.com/chef/inspec/tree/master/examples/kitchen-puppet)
7
- - [Ansible and InSpec](https://github.com/chef/inspec/tree/master/examples/kitchen-ansible)
7
+ - [Chef and InSpec](https://github.com/chef/inspec/tree/master/examples/kitchen-chef)
8
+ - [Puppet and InSpec](https://github.com/chef/inspec/tree/master/examples/kitchen-puppet)
9
+ - [Ansible and InSpec](https://github.com/chef/inspec/tree/master/examples/kitchen-ansible)
8
10
 
9
11
  ## Installation
10
12
 
@@ -16,22 +18,28 @@ gem 'kitchen-inspec'
16
18
 
17
19
  And then execute:
18
20
 
19
- $ bundle
21
+ ```shell
22
+ $ bundle
23
+ ```
20
24
 
21
25
  Or install it yourself as:
22
26
 
23
- $ gem install kitchen-inspec
27
+ ```shell
28
+ $ gem install kitchen-inspec
29
+ ```
24
30
 
25
31
  ## Usage
26
32
 
27
33
  In your .kitchen.yml include
28
- ```
34
+
35
+ ```yaml
29
36
  verifier:
30
37
  name: inspec
31
38
  ```
32
39
 
33
40
  Optionally specify sudo and sudo_command
34
- ```
41
+
42
+ ```yaml
35
43
  verifier:
36
44
  name: inspec
37
45
  sudo: true
@@ -49,8 +57,8 @@ By default `kitchen-inspec` expects test to be in `test/integration/%suite%` dir
49
57
  ├── README.md
50
58
  ├── metadata.rb
51
59
  ├── recipes
52
-    ├── default.rb
53
-    └── nginx.rb
60
+ ├── default.rb
61
+ └── nginx.rb
54
62
  └── test
55
63
  └── integration
56
64
  └── default
@@ -68,13 +76,13 @@ A complete profile is used here, including a custom inspec resource named `gordo
68
76
  ├── README.md
69
77
  ├── metadata.rb
70
78
  ├── recipes
71
-    ├── default.rb
72
-    └── nginx.rb
79
+ ├── default.rb
80
+ └── nginx.rb
73
81
  └── test
74
82
  └── integration
75
83
  └── default
76
84
  ├── controls
77
-    └── gordon.rb
85
+ └── gordon.rb
78
86
  ├── inspec.yml
79
87
  └── libraries
80
88
  └── gordon_config.rb
@@ -91,8 +99,8 @@ If you need support with other testing frameworks, we recommend to place the tes
91
99
  ├── README.md
92
100
  ├── metadata.rb
93
101
  ├── recipes
94
-    ├── default.rb
95
-    └── nginx.rb
102
+ ├── default.rb
103
+ └── nginx.rb
96
104
  └── test
97
105
  └── integration
98
106
  └── default
@@ -104,7 +112,7 @@ If you need support with other testing frameworks, we recommend to place the tes
104
112
 
105
113
  In case you want to reuse tests across multiple cookbooks, they should become an extra artifact independent of a Chef cookbook, call [InSpec profiles](https://github.com/chef/inspec/blob/master/docs/profiles.rst). Those can be easiliy added to existing local tests as demonstrated in previous sections. To include remote profiles, adapt the `verifier` attributes in `.kitchen.yml`
106
114
 
107
- ```
115
+ ```yaml
108
116
  suites:
109
117
  - name: default
110
118
  verifier:
@@ -114,14 +122,14 @@ suites:
114
122
 
115
123
  `inspec_tests` accepts all values that `inspec exec profile` would expect. We support:
116
124
 
117
- * local directory eg. `/path/to/profile`
118
- * github url `https://github.com/dev-sec/tests-ssh-hardening`
119
- * Chef Supermarket `supermarket://hardening/ssh-hardening` (list all available profiles with `inspec supermarket profiles`)
120
- * Chef Compliance `compliance://base/ssh`
125
+ - local directory eg. `/path/to/profile`
126
+ - github url `https://github.com/dev-sec/tests-ssh-hardening`
127
+ - Chef Supermarket `supermarket://hardening/ssh-hardening` (list all available profiles with `inspec supermarket profiles`)
128
+ - Chef Compliance `compliance://base/ssh`
121
129
 
122
130
  The following example illustrates the usage in a `.kitchen.yml`
123
131
 
124
- ```
132
+ ```yaml
125
133
  suites:
126
134
  - name: contains_inspec
127
135
  run_list:
@@ -162,10 +170,10 @@ To install this gem onto your local machine, run `bundle exec rake install`. To
162
170
 
163
171
  ## Contributing
164
172
 
165
- Bug reports and pull requests are welcome on GitHub at https://github.com/chef/kitchen-inspec.
173
+ Bug reports and pull requests are welcome on GitHub at <https://github.com/chef/kitchen-inspec>.
166
174
 
167
175
  ## License
168
176
 
169
- Apache 2.0 (see [LICENSE][license])
177
+ Apache 2.0 (see [LICENSE])
170
178
 
171
179
  [license]: https://github.com/chef/kitchen-inspec/blob/master/LICENSE
data/Rakefile CHANGED
@@ -2,7 +2,8 @@
2
2
 
3
3
  require "bundler/gem_tasks"
4
4
  require "rspec/core/rake_task"
5
- require 'rubocop/rake_task'
5
+ require "chefstyle"
6
+ require "rubocop/rake_task"
6
7
 
7
8
  # Specs
8
9
  RSpec::Core::RakeTask.new(:spec)
@@ -11,13 +12,13 @@ desc "Run all test suites"
11
12
  task :test => [:spec]
12
13
 
13
14
  # Rubocop
14
- desc 'Run Rubocop lint checks'
15
+ desc "Run Rubocop lint checks"
15
16
  task :rubocop do
16
17
  RuboCop::RakeTask.new
17
18
  end
18
19
 
19
20
  # lint the project
20
- desc 'Run robocop linter'
21
+ desc "Run robocop linter"
21
22
  task lint: [:rubocop]
22
23
 
23
24
  desc "Display LOC stats"
@@ -36,20 +37,20 @@ task :default => [:test, :quality]
36
37
  # Automatically generate a changelog for this project. Only loaded if
37
38
  # the necessary gem is installed.
38
39
  begin
39
- require 'github_changelog_generator/task'
40
+ require "github_changelog_generator/task"
40
41
  GitHubChangelogGenerator::RakeTask.new :changelog
41
42
  rescue LoadError
42
- puts '>>>>> GitHub Changelog Generator not loaded, omitting tasks'
43
+ puts ">>>>> GitHub Changelog Generator not loaded, omitting tasks"
43
44
  end
44
45
 
45
46
  # Print the current version of this gem or update it.
46
47
  #
47
48
  # @param [Type] target the new version you want to set, or nil if you only want to show
48
49
  def kitchen_inspec_version(target = nil)
49
- path = 'lib/kitchen/verifier/inspec_version.rb'
50
- require_relative path.sub(/.rb$/, '')
50
+ path = "lib/kitchen/verifier/inspec_version.rb"
51
+ require_relative path.sub(/.rb$/, "")
51
52
 
52
- nu_version = target.nil? ? '' : " -> #{target}"
53
+ nu_version = target.nil? ? "" : " -> #{target}"
53
54
  puts "Kitchen-inspec: #{Kitchen::Verifier::INSPEC_VERSION}#{nu_version}"
54
55
 
55
56
  unless target.nil?
@@ -66,7 +67,7 @@ end
66
67
  # @param [Type] msg the message to display if the command is missing
67
68
  def require_command(x, msg = nil)
68
69
  return if system("command -v #{x} || exit 1")
69
- msg ||= 'Please install it first!'
70
+ msg ||= "Please install it first!"
70
71
  puts "\033[31;1mCan't find command #{x.inspect}. #{msg}\033[0m"
71
72
  exit 1
72
73
  end
@@ -84,11 +85,11 @@ end
84
85
 
85
86
  # Check the requirements for running an update of this repository.
86
87
  def check_update_requirements
87
- require_command 'git'
88
- require_command 'github_changelog_generator', "\n"\
88
+ require_command "git"
89
+ require_command "github_changelog_generator", "\n"\
89
90
  "For more information on how to install it see:\n"\
90
91
  " https://github.com/skywinder/github-changelog-generator\n"
91
- require_env 'CHANGELOG_GITHUB_TOKEN', "\n"\
92
+ require_env "CHANGELOG_GITHUB_TOKEN", "\n"\
92
93
  "Please configure this token to make sure you can run all commands\n"\
93
94
  "against GitHub.\n\n"\
94
95
  "See github_changelog_generator homepage for more information:\n"\
@@ -96,33 +97,33 @@ def check_update_requirements
96
97
  end
97
98
 
98
99
  # Show the current version of this gem.
99
- desc 'Show the version of this gem'
100
+ desc "Show the version of this gem"
100
101
  task :version do
101
102
  kitchen_inspec_version
102
103
  end
103
104
 
104
- desc 'Generate the changelog'
105
+ desc "Generate the changelog"
105
106
  task :changelog do
106
- require_relative 'lib/kitchen/verifier/inspec_version'
107
+ require_relative "lib/kitchen/verifier/inspec_version"
107
108
  system "github_changelog_generator -u chef -p kitchen-inspec --future-release #{Kitchen::Verifier::INSPEC_VERSION}"
108
109
  end
109
110
 
110
111
  # Update the version of this gem and create an updated
111
112
  # changelog. It covers everything short of actually releasing
112
113
  # the gem.
113
- desc 'Bump the version of this gem'
114
+ desc "Bump the version of this gem"
114
115
  task :bump_version, [:version] do |_, args|
115
- v = args[:version] || ENV['to']
116
- fail "You must specify a target version! rake release[1.2.3]" if v.empty?
116
+ v = args[:version] || ENV["to"]
117
+ raise "You must specify a target version! rake release[1.2.3]" if v.empty?
117
118
  check_update_requirements
118
119
  kitchen_inspec_version(v)
119
- Rake::Task['changelog'].invoke
120
+ Rake::Task["changelog"].invoke
120
121
  end
121
122
 
122
123
  namespace :test do
123
124
  task :integration do
124
- concurrency = ENV['CONCURRENCY'] || 1
125
- os = ENV['OS'] || ''
126
- sh('sh', '-c', "bundle exec kitchen test -c #{concurrency} #{os}")
125
+ concurrency = ENV["CONCURRENCY"] || 1
126
+ os = ENV["OS"] || ""
127
+ sh("sh", "-c", "bundle exec kitchen test -c #{concurrency} #{os}")
127
128
  end
128
129
  end
@@ -1,8 +1,8 @@
1
1
  #!/usr/bin/env ruby
2
2
  # encoding: utf-8
3
3
 
4
- require 'bundler/setup'
5
- require 'kitchen/inspec'
4
+ require "bundler/setup"
5
+ require "kitchen/inspec"
6
6
 
7
7
  # You can add fixtures and/or initialization code here to make experimenting
8
8
  # with your gem easier. You can also use a different console, if you like.
@@ -11,5 +11,5 @@ require 'kitchen/inspec'
11
11
  # require 'pry'
12
12
  # Pry.start
13
13
 
14
- require 'irb'
14
+ require "irb"
15
15
  IRB.start
@@ -1,34 +1,26 @@
1
1
  # encoding: utf-8
2
- lib = File.expand_path('../lib', __FILE__)
2
+ lib = File.expand_path("../lib", __FILE__)
3
3
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
- require 'kitchen/verifier/inspec_version'
5
- require 'English'
4
+ require "kitchen/verifier/inspec_version"
5
+ require "English"
6
6
 
7
7
  Gem::Specification.new do |spec|
8
- spec.name = 'kitchen-inspec'
8
+ spec.name = "kitchen-inspec"
9
9
  spec.version = Kitchen::Verifier::INSPEC_VERSION
10
- spec.license = 'Apache-2.0'
11
- spec.authors = ['Fletcher Nichol']
12
- spec.email = ['fnichol@chef.io']
10
+ spec.license = "Apache-2.0"
11
+ spec.authors = ["Fletcher Nichol"]
12
+ spec.email = ["fnichol@chef.io"]
13
13
 
14
- spec.summary = 'A Test Kitchen Verifier for InSpec'
14
+ spec.summary = "A Test Kitchen Verifier for InSpec"
15
15
  spec.description = spec.summary
16
- spec.homepage = 'http://github.com/chef/kitchen-inspec'
16
+ spec.homepage = "http://github.com/chef/kitchen-inspec"
17
17
 
18
18
  spec.files = `git ls-files -z`.split("\x0")
19
19
  .reject { |f| f.match(%r{^(test|spec|features)/}) }
20
- spec.bindir = 'exe'
20
+ spec.bindir = "exe"
21
21
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
22
- spec.require_paths = ['lib']
23
- spec.add_dependency 'inspec', '>=0.22.0', '<1.0.0'
24
- spec.add_dependency 'test-kitchen', '~> 1.6'
25
- spec.add_development_dependency 'countloc', '~> 0.4'
26
- spec.add_development_dependency 'bundler', '~> 1.10'
27
- spec.add_development_dependency 'rake', '~> 10.0'
28
- spec.add_development_dependency 'rspec'
29
- spec.add_development_dependency 'simplecov', '~> 0.10'
30
- # style and complexity libraries are tightly version pinned as newer releases
31
- # may introduce new and undesireable style choices which would be immediately
32
- # enforced in CI
33
- spec.add_development_dependency 'finstyle', '1.5.0'
22
+ spec.require_paths = ["lib"]
23
+ spec.required_ruby_version = ">= 2.1.0"
24
+ spec.add_dependency "inspec", ">=0.22.0", "<1.0.0"
25
+ spec.add_dependency "test-kitchen", "~> 1.6"
34
26
  end
@@ -17,13 +17,13 @@
17
17
  # See the License for the specific language governing permissions and
18
18
  # limitations under the License.
19
19
 
20
- require 'kitchen/transport/ssh'
21
- require 'kitchen/transport/winrm'
22
- require 'kitchen/verifier/inspec_version'
23
- require 'kitchen/verifier/base'
20
+ require "kitchen/transport/ssh"
21
+ require "kitchen/transport/winrm"
22
+ require "kitchen/verifier/inspec_version"
23
+ require "kitchen/verifier/base"
24
24
 
25
- require 'uri'
26
- require 'pathname'
25
+ require "uri"
26
+ require "pathname"
27
27
 
28
28
  module Kitchen
29
29
  module Verifier
@@ -53,7 +53,7 @@ module Kitchen
53
53
  # Unfortunately there is no way to read `test_base_path` from the
54
54
  # .kitchen.yml, it can only be provided on the CLI.
55
55
  # See https://github.com/test-kitchen/test-kitchen/issues/1077
56
- inspec_test_dir = File.join(config[:kitchen_root], 'test', 'recipes')
56
+ inspec_test_dir = File.join(config[:kitchen_root], "test", "recipes")
57
57
  if File.directory?(inspec_test_dir)
58
58
  config[:test_base_path] = inspec_test_dir
59
59
  end
@@ -63,7 +63,7 @@ module Kitchen
63
63
 
64
64
  # (see Base#call)
65
65
  def call(state)
66
- logger.debug('Initialize InSpec')
66
+ logger.debug("Initialize InSpec")
67
67
  opts = runner_options(instance.transport, state)
68
68
  runner = ::Inspec::Runner.new(opts)
69
69
 
@@ -74,25 +74,25 @@ module Kitchen
74
74
  logger.debug("Running tests from: #{tests.inspect}")
75
75
  exit_code = runner.run
76
76
  return if exit_code == 0
77
- fail ActionFailed, "Inspec Runner returns #{exit_code}"
77
+ raise ActionFailed, "Inspec Runner returns #{exit_code}"
78
78
  end
79
79
 
80
80
  private
81
81
 
82
82
  # (see Base#load_needed_dependencies!)
83
83
  def load_needed_dependencies!
84
- require 'inspec'
84
+ require "inspec"
85
85
  # TODO: this should be easier. I would expect to load a single class here
86
86
  # load supermarket plugin, this is part of the inspec gem
87
- require 'bundles/inspec-supermarket/api'
88
- require 'bundles/inspec-supermarket/target'
87
+ require "bundles/inspec-supermarket/api"
88
+ require "bundles/inspec-supermarket/target"
89
89
 
90
90
  # load the compliance plugin
91
- require 'bundles/inspec-compliance/configuration'
92
- require 'bundles/inspec-compliance/support'
93
- require 'bundles/inspec-compliance/http'
94
- require 'bundles/inspec-compliance/api'
95
- require 'bundles/inspec-compliance/target'
91
+ require "bundles/inspec-compliance/configuration"
92
+ require "bundles/inspec-compliance/support"
93
+ require "bundles/inspec-compliance/http"
94
+ require "bundles/inspec-compliance/api"
95
+ require "bundles/inspec-compliance/target"
96
96
  end
97
97
 
98
98
  # Returns an Array of test suite filenames for the related suite currently
@@ -111,14 +111,14 @@ module Kitchen
111
111
  base = File.join(config[:test_base_path], config[:suite_name])
112
112
  legacy_mode = false
113
113
  # check for testing frameworks, we may need to add more
114
- %w{inspec serverspec bats pester rspec cucumber minitest bash}.each { |fw|
114
+ %w{inspec serverspec bats pester rspec cucumber minitest bash}.each do |fw|
115
115
  if Pathname.new(File.join(base, fw)).exist?
116
116
  logger.info("Detected alternative framework tests for `#{fw}`")
117
117
  legacy_mode = true
118
118
  end
119
- }
119
+ end
120
120
 
121
- base = File.join(base, 'inspec') if legacy_mode
121
+ base = File.join(base, "inspec") if legacy_mode
122
122
  logger.info("Use `#{base}` for testing")
123
123
 
124
124
  # only return the directory if it exists
@@ -147,13 +147,13 @@ module Kitchen
147
147
  elsif defined?(Kitchen::Transport::Dokken) && transport.is_a?(Kitchen::Transport::Dokken)
148
148
  runner_options_for_docker(transport_data)
149
149
  else
150
- fail Kitchen::UserError, "Verifier #{name} does not support the #{transport.name} Transport"
150
+ raise Kitchen::UserError, "Verifier #{name} does not support the #{transport.name} Transport"
151
151
  end.tap do |runner_options|
152
152
  # default color to true to match InSpec behavior
153
- runner_options['color'] = (config[:color].nil? ? true : config[:color])
154
- runner_options['format'] = config[:format] unless config[:format].nil?
155
- runner_options['output'] = config[:output] unless config[:output].nil?
156
- runner_options['profiles_path'] = config[:profiles_path] unless config[:profiles_path].nil?
153
+ runner_options["color"] = (config[:color].nil? ? true : config[:color])
154
+ runner_options["format"] = config[:format] unless config[:format].nil?
155
+ runner_options["output"] = config[:output] unless config[:output].nil?
156
+ runner_options["profiles_path"] = config[:profiles_path] unless config[:profiles_path].nil?
157
157
  end
158
158
  end
159
159
 
@@ -164,26 +164,26 @@ module Kitchen
164
164
  def runner_options_for_ssh(config_data)
165
165
  kitchen = instance.transport.send(:connection_options, config_data).dup
166
166
  opts = {
167
- 'backend' => 'ssh',
168
- 'logger' => logger,
167
+ "backend" => "ssh",
168
+ "logger" => logger,
169
169
  # pass-in sudo config from kitchen verifier
170
- 'sudo' => config[:sudo],
171
- 'sudo_command' => config[:sudo_command],
172
- 'host' => kitchen[:hostname],
173
- 'port' => kitchen[:port],
174
- 'user' => kitchen[:username],
175
- 'keepalive' => kitchen[:keepalive],
176
- 'keepalive_interval' => kitchen[:keepalive_interval],
177
- 'connection_timeout' => kitchen[:timeout],
178
- 'connection_retries' => kitchen[:connection_retries],
179
- 'connection_retry_sleep' => kitchen[:connection_retry_sleep],
180
- 'max_wait_until_ready' => kitchen[:max_wait_until_ready],
181
- 'compression' => kitchen[:compression],
182
- 'compression_level' => kitchen[:compression_level],
183
- 'keys_only' => true,
170
+ "sudo" => config[:sudo],
171
+ "sudo_command" => config[:sudo_command],
172
+ "host" => kitchen[:hostname],
173
+ "port" => kitchen[:port],
174
+ "user" => kitchen[:username],
175
+ "keepalive" => kitchen[:keepalive],
176
+ "keepalive_interval" => kitchen[:keepalive_interval],
177
+ "connection_timeout" => kitchen[:timeout],
178
+ "connection_retries" => kitchen[:connection_retries],
179
+ "connection_retry_sleep" => kitchen[:connection_retry_sleep],
180
+ "max_wait_until_ready" => kitchen[:max_wait_until_ready],
181
+ "compression" => kitchen[:compression],
182
+ "compression_level" => kitchen[:compression_level],
183
+ "keys_only" => true,
184
184
  }
185
- opts['key_files'] = kitchen[:keys] unless kitchen[:keys].nil?
186
- opts['password'] = kitchen[:password] unless kitchen[:password].nil?
185
+ opts["key_files"] = kitchen[:keys] unless kitchen[:keys].nil?
186
+ opts["password"] = kitchen[:password] unless kitchen[:password].nil?
187
187
  opts
188
188
  end
189
189
 
@@ -194,15 +194,15 @@ module Kitchen
194
194
  def runner_options_for_winrm(config_data)
195
195
  kitchen = instance.transport.send(:connection_options, config_data).dup
196
196
  opts = {
197
- 'backend' => 'winrm',
198
- 'logger' => logger,
199
- 'host' => URI(kitchen[:endpoint]).hostname,
200
- 'port' => URI(kitchen[:endpoint]).port,
201
- 'user' => kitchen[:user],
202
- 'password' => kitchen[:pass],
203
- 'connection_retries' => kitchen[:connection_retries],
204
- 'connection_retry_sleep' => kitchen[:connection_retry_sleep],
205
- 'max_wait_until_ready' => kitchen[:max_wait_until_ready],
197
+ "backend" => "winrm",
198
+ "logger" => logger,
199
+ "host" => URI(kitchen[:endpoint]).hostname,
200
+ "port" => URI(kitchen[:endpoint]).port,
201
+ "user" => kitchen[:user],
202
+ "password" => kitchen[:password] || kitchen[:pass],
203
+ "connection_retries" => kitchen[:connection_retries],
204
+ "connection_retry_sleep" => kitchen[:connection_retry_sleep],
205
+ "max_wait_until_ready" => kitchen[:max_wait_until_ready],
206
206
  }
207
207
  opts
208
208
  end
@@ -218,13 +218,13 @@ module Kitchen
218
218
  # - config_data[:data_container][:Id] : (hosts chef-client)
219
219
  # - config_data[:runner_container][:Id] : (the kitchen-container)
220
220
  opts = {
221
- 'backend' => 'docker',
222
- 'logger' => logger,
223
- 'host' => config_data[:runner_container][:Id],
224
- 'connection_timeout' => kitchen[:timeout],
225
- 'connection_retries' => kitchen[:connection_retries],
226
- 'connection_retry_sleep' => kitchen[:connection_retry_sleep],
227
- 'max_wait_until_ready' => kitchen[:max_wait_until_ready],
221
+ "backend" => "docker",
222
+ "logger" => logger,
223
+ "host" => config_data[:runner_container][:Id],
224
+ "connection_timeout" => kitchen[:timeout],
225
+ "connection_retries" => kitchen[:connection_retries],
226
+ "connection_retry_sleep" => kitchen[:connection_retry_sleep],
227
+ "max_wait_until_ready" => kitchen[:max_wait_until_ready],
228
228
  }
229
229
  logger.debug "Connect to Container: #{opts['host']}"
230
230
  opts
@@ -20,6 +20,6 @@
20
20
  module Kitchen
21
21
  module Verifier
22
22
  # Version string for InSpec Kitchen verifier
23
- INSPEC_VERSION = '0.15.0'
23
+ INSPEC_VERSION = '0.15.1'
24
24
  end
25
25
  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.15.0
4
+ version: 0.15.1
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-07-15 00:00:00.000000000 Z
11
+ date: 2016-09-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: inspec
@@ -44,90 +44,6 @@ dependencies:
44
44
  - - "~>"
45
45
  - !ruby/object:Gem::Version
46
46
  version: '1.6'
47
- - !ruby/object:Gem::Dependency
48
- name: countloc
49
- requirement: !ruby/object:Gem::Requirement
50
- requirements:
51
- - - "~>"
52
- - !ruby/object:Gem::Version
53
- version: '0.4'
54
- type: :development
55
- prerelease: false
56
- version_requirements: !ruby/object:Gem::Requirement
57
- requirements:
58
- - - "~>"
59
- - !ruby/object:Gem::Version
60
- version: '0.4'
61
- - !ruby/object:Gem::Dependency
62
- name: bundler
63
- requirement: !ruby/object:Gem::Requirement
64
- requirements:
65
- - - "~>"
66
- - !ruby/object:Gem::Version
67
- version: '1.10'
68
- type: :development
69
- prerelease: false
70
- version_requirements: !ruby/object:Gem::Requirement
71
- requirements:
72
- - - "~>"
73
- - !ruby/object:Gem::Version
74
- version: '1.10'
75
- - !ruby/object:Gem::Dependency
76
- name: rake
77
- requirement: !ruby/object:Gem::Requirement
78
- requirements:
79
- - - "~>"
80
- - !ruby/object:Gem::Version
81
- version: '10.0'
82
- type: :development
83
- prerelease: false
84
- version_requirements: !ruby/object:Gem::Requirement
85
- requirements:
86
- - - "~>"
87
- - !ruby/object:Gem::Version
88
- version: '10.0'
89
- - !ruby/object:Gem::Dependency
90
- name: rspec
91
- requirement: !ruby/object:Gem::Requirement
92
- requirements:
93
- - - ">="
94
- - !ruby/object:Gem::Version
95
- version: '0'
96
- type: :development
97
- prerelease: false
98
- version_requirements: !ruby/object:Gem::Requirement
99
- requirements:
100
- - - ">="
101
- - !ruby/object:Gem::Version
102
- version: '0'
103
- - !ruby/object:Gem::Dependency
104
- name: simplecov
105
- requirement: !ruby/object:Gem::Requirement
106
- requirements:
107
- - - "~>"
108
- - !ruby/object:Gem::Version
109
- version: '0.10'
110
- type: :development
111
- prerelease: false
112
- version_requirements: !ruby/object:Gem::Requirement
113
- requirements:
114
- - - "~>"
115
- - !ruby/object:Gem::Version
116
- version: '0.10'
117
- - !ruby/object:Gem::Dependency
118
- name: finstyle
119
- requirement: !ruby/object:Gem::Requirement
120
- requirements:
121
- - - '='
122
- - !ruby/object:Gem::Version
123
- version: 1.5.0
124
- type: :development
125
- prerelease: false
126
- version_requirements: !ruby/object:Gem::Requirement
127
- requirements:
128
- - - '='
129
- - !ruby/object:Gem::Version
130
- version: 1.5.0
131
47
  description: A Test Kitchen Verifier for InSpec
132
48
  email:
133
49
  - fnichol@chef.io
@@ -138,7 +54,6 @@ files:
138
54
  - ".gitignore"
139
55
  - ".kitchen.yml"
140
56
  - ".rspec"
141
- - ".rubocop.yml"
142
57
  - ".travis.yml"
143
58
  - Berksfile
144
59
  - CHANGELOG.md
@@ -164,7 +79,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
164
79
  requirements:
165
80
  - - ">="
166
81
  - !ruby/object:Gem::Version
167
- version: '0'
82
+ version: 2.1.0
168
83
  required_rubygems_version: !ruby/object:Gem::Requirement
169
84
  requirements:
170
85
  - - ">="
@@ -172,7 +87,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
172
87
  version: '0'
173
88
  requirements: []
174
89
  rubyforge_project:
175
- rubygems_version: 2.5.1
90
+ rubygems_version: 2.4.6
176
91
  signing_key:
177
92
  specification_version: 4
178
93
  summary: A Test Kitchen Verifier for InSpec
@@ -1,65 +0,0 @@
1
- ---
2
- AllCops:
3
- Exclude:
4
- - Gemfile
5
- - Rakefile
6
- - 'test/**/*'
7
- - 'examples/**/*'
8
- - 'vendor/**/*'
9
- Documentation:
10
- Enabled: false
11
- AlignParameters:
12
- Enabled: true
13
- Encoding:
14
- Enabled: true
15
- HashSyntax:
16
- Enabled: true
17
- LineLength:
18
- Enabled: false
19
- EmptyLinesAroundBlockBody:
20
- Enabled: false
21
- MethodLength:
22
- Max: 40
23
- NumericLiterals:
24
- MinDigits: 10
25
- Metrics/CyclomaticComplexity:
26
- Max: 10
27
- Metrics/PerceivedComplexity:
28
- Max: 10
29
- Metrics/AbcSize:
30
- Max: 33
31
- Style/PercentLiteralDelimiters:
32
- PreferredDelimiters:
33
- '%': '{}'
34
- '%i': ()
35
- '%q': '{}'
36
- '%Q': ()
37
- '%r': '{}'
38
- '%s': ()
39
- '%w': '{}'
40
- '%W': ()
41
- '%x': ()
42
- Style/AlignHash:
43
- Enabled: false
44
- Style/PredicateName:
45
- Enabled: false
46
- Style/ClassAndModuleChildren:
47
- Enabled: false
48
- Style/BracesAroundHashParameters:
49
- Enabled: false
50
- Style/AndOr:
51
- Enabled: false
52
- Style/Not:
53
- Enabled: false
54
- Style/TrailingComma:
55
- EnforcedStyleForMultiline: comma
56
- Style/NegatedIf:
57
- Enabled: false
58
- Style/UnlessElse:
59
- Enabled: false
60
- BlockDelimiters:
61
- Enabled: false
62
- Style/SpaceAroundOperators:
63
- Enabled: false
64
- Style/IfUnlessModifier:
65
- Enabled: false