inspec / kitchen-inspec

Test-Kitchen Plugin for InSpec
Other
109 stars 58 forks source link

Require InSpec 2.2.64+ to support plugin v2 #254

Closed tas50 closed 4 years ago

tas50 commented 4 years ago

Thanks for pointing this out @satyanash. This fixes https://github.com/inspec/kitchen-inspec/issues/253

Signed-off-by: Tim Smith tsmith@chef.io

satyanash commented 4 years ago

@tas50 manually specifying gem 'inspec', '2.2.64' fixes the require, but gives a different error:

Kitchen: Message: Could not load the 'inspec' verifier. Error: undefined method `resource_name' for main:Object

So, >= 2.2.64 may not be enough.

satyanash commented 4 years ago

Looks like kitchen-inspec will have to drop support for ruby 2.3. The last inspec version to support ruby 2.3 was 3.9.3. And specifying gem 'inspec', '3.9.3' still gives the following error:

Message: Could not load the 'inspec' verifier. Error: undefined method `resource_name' for main:Object
tas50 commented 4 years ago

@satyanash Can you give me a more complete stack trace on that errror?

satyanash commented 4 years ago

@tas50 More info on the setup:

kitchen-inspec  (1.3.2)
kitchen-dokken  (2.9.0)
test-kitchen    (2.5.1)
inspec          (3.9.3)

Here you go:

Kitchen: ---Nested Exception---
Kitchen: Class: NoMethodError
Kitchen: Message: undefined method `resource_name' for main:Object
Kitchen: ----------------------
Kitchen: ------Backtrace-------
Kitchen: /Users/satyanash/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/test-kitchen-2.5.1/lib/kitchen/plugin.rb:46:in `rescue in load'
Kitchen: /Users/satyanash/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/test-kitchen-2.5.1/lib/kitchen/plugin.rb:35:in `load'
Kitchen: /Users/satyanash/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/test-kitchen-2.5.1/lib/kitchen/verifier.rb:37:in `for_plugin'
Kitchen: /Users/satyanash/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/test-kitchen-2.5.1/lib/kitchen/config.rb:339:in `new_verifier'
Kitchen: /Users/satyanash/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/test-kitchen-2.5.1/lib/kitchen/config.rb:256:in `new_instance'
Kitchen: /Users/satyanash/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/test-kitchen-2.5.1/lib/kitchen/config.rb:144:in `block in build_instances'
Kitchen: /Users/satyanash/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/test-kitchen-2.5.1/lib/kitchen/config.rb:143:in `map'
Kitchen: /Users/satyanash/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/test-kitchen-2.5.1/lib/kitchen/config.rb:143:in `with_index'
Kitchen: /Users/satyanash/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/test-kitchen-2.5.1/lib/kitchen/config.rb:143:in `build_instances'
Kitchen: /Users/satyanash/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/test-kitchen-2.5.1/lib/kitchen/config.rb:117:in `instances'
Kitchen: /Users/satyanash/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/test-kitchen-2.5.1/lib/kitchen/command.rb:112:in `filtered_instances'
Kitchen: /Users/satyanash/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/test-kitchen-2.5.1/lib/kitchen/command.rb:142:in `parse_subcommand'
Kitchen: /Users/satyanash/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/test-kitchen-2.5.1/lib/kitchen/command/action.rb:35:in `block in call'
Kitchen: /Users/satyanash/.rbenv/versions/2.3.1/lib/ruby/2.3.0/benchmark.rb:293:in `measure'
Kitchen: /Users/satyanash/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/test-kitchen-2.5.1/lib/kitchen/command/action.rb:34:in `call'
Kitchen: /Users/satyanash/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/test-kitchen-2.5.1/lib/kitchen/cli.rb:52:in `perform'
Kitchen: /Users/satyanash/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/test-kitchen-2.5.1/lib/kitchen/cli.rb:198:in `block (2 levels) in <class:CLI>'
Kitchen: /Users/satyanash/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/thor-0.20.3/lib/thor/command.rb:27:in `run'
Kitchen: /Users/satyanash/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/thor-0.20.3/lib/thor/invocation.rb:126:in `invoke_command'
Kitchen: /Users/satyanash/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/thor-0.20.3/lib/thor.rb:387:in `dispatch'
Kitchen: /Users/satyanash/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/thor-0.20.3/lib/thor/base.rb:466:in `start'
Kitchen: /Users/satyanash/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/test-kitchen-2.5.1/bin/kitchen:13:in `block in <top (required)>'
Kitchen: /Users/satyanash/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/test-kitchen-2.5.1/lib/kitchen/errors.rb:171:in `with_friendly_errors'
Kitchen: /Users/satyanash/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/test-kitchen-2.5.1/bin/kitchen:13:in `<top (required)>'
Kitchen: /Users/satyanash/.rbenv/versions/2.3.1/bin/kitchen:23:in `load'
Kitchen: /Users/satyanash/.rbenv/versions/2.3.1/bin/kitchen:23:in `<top (required)>'
Kitchen: /Users/satyanash/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/bundler-2.0.2/lib/bundler/cli/exec.rb:74:in `load'
Kitchen: /Users/satyanash/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/bundler-2.0.2/lib/bundler/cli/exec.rb:74:in `kernel_load'
Kitchen: /Users/satyanash/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/bundler-2.0.2/lib/bundler/cli/exec.rb:28:in `run'
Kitchen: /Users/satyanash/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/bundler-2.0.2/lib/bundler/cli.rb:465:in `exec'
Kitchen: /Users/satyanash/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/bundler-2.0.2/lib/bundler/vendor/thor/lib/thor/command.rb:27:in `run'
Kitchen: /Users/satyanash/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/bundler-2.0.2/lib/bundler/vendor/thor/lib/thor/invocation.rb:126:in `invoke_command'
Kitchen: /Users/satyanash/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/bundler-2.0.2/lib/bundler/vendor/thor/lib/thor.rb:387:in `dispatch'
Kitchen: /Users/satyanash/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/bundler-2.0.2/lib/bundler/cli.rb:27:in `dispatch'
Kitchen: /Users/satyanash/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/bundler-2.0.2/lib/bundler/vendor/thor/lib/thor/base.rb:466:in `start'
Kitchen: /Users/satyanash/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/bundler-2.0.2/lib/bundler/cli.rb:18:in `start'
Kitchen: /Users/satyanash/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/bundler-2.0.2/exe/bundle:30:in `block in <top (required)>'
Kitchen: /Users/satyanash/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/bundler-2.0.2/lib/bundler/friendly_errors.rb:124:in `with_friendly_errors'
Kitchen: /Users/satyanash/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/bundler-2.0.2/exe/bundle:22:in `<top (required)>'
Kitchen: /Users/satyanash/.rbenv/versions/2.3.1/bin/bundle:23:in `load'
Kitchen: /Users/satyanash/.rbenv/versions/2.3.1/bin/bundle:23:in `<main>'
Kitchen: ----End Backtrace-----
satyanash commented 4 years ago

@tas50 btw, I am able to get everything working for Ruby 2.3 with the following setup:

kitchen-inspec  (1.3.1)
kitchen-dokken  (2.9.0)
test-kitchen    (2.5.1)
inspec          (3.9.3)

So, most likely something changed in kitchen-inspec 1.3.2.

Annih commented 4 years ago

@james-stocks and @tas50, first thanks for that patch which properly follows sem-versioning. Do you think something could be done for people blocked on v1? The 1.3.2 is broken due to the incorrect spec.

I think a yank would be too drastic, but a revert for a 1.3.3 could be great :D What do you think?