inspec-core 4.23.4 → 4.24.26
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile +16 -33
- data/inspec-core.gemspec +8 -9
- data/lib/bundles/inspec-supermarket/api.rb +2 -2
- data/lib/bundles/inspec-supermarket/target.rb +1 -1
- data/lib/inspec/archive/tar.rb +1 -1
- data/lib/inspec/archive/zip.rb +3 -3
- data/lib/inspec/base_cli.rb +7 -1
- data/lib/inspec/cached_fetcher.rb +1 -1
- data/lib/inspec/cli.rb +5 -3
- data/lib/inspec/config.rb +5 -5
- data/lib/inspec/dependencies/cache.rb +1 -1
- data/lib/inspec/env_printer.rb +2 -2
- data/lib/inspec/fetcher/git.rb +3 -3
- data/lib/inspec/fetcher/local.rb +1 -1
- data/lib/inspec/fetcher/url.rb +4 -4
- data/lib/inspec/file_provider.rb +4 -4
- data/lib/inspec/formatters/base.rb +16 -0
- data/lib/inspec/globals.rb +8 -2
- data/lib/inspec/input.rb +3 -0
- data/lib/inspec/input_registry.rb +5 -3
- data/lib/inspec/metadata.rb +1 -1
- data/lib/inspec/plugin/v1/plugins.rb +2 -2
- data/lib/inspec/plugin/v2.rb +5 -0
- data/lib/inspec/plugin/v2/config_file.rb +1 -1
- data/lib/inspec/plugin/v2/filter.rb +2 -2
- data/lib/inspec/plugin/v2/installer.rb +5 -5
- data/lib/inspec/plugin/v2/loader.rb +6 -1
- data/lib/inspec/plugin/v2/registry.rb +2 -2
- data/lib/inspec/profile.rb +3 -3
- data/lib/inspec/profile_context.rb +1 -1
- data/lib/inspec/reporters/automate.rb +2 -2
- data/lib/inspec/reporters/json.rb +3 -1
- data/lib/inspec/reporters/json_automate.rb +1 -1
- data/lib/inspec/resource.rb +2 -0
- data/lib/inspec/resources.rb +5 -5
- data/lib/inspec/resources/apt.rb +6 -6
- data/lib/inspec/resources/auditd.rb +1 -1
- data/lib/inspec/resources/csv.rb +1 -1
- data/lib/inspec/resources/dh_params.rb +1 -1
- data/lib/inspec/resources/file.rb +1 -1
- data/lib/inspec/resources/grub_conf.rb +2 -1
- data/lib/inspec/resources/http.rb +1 -1
- data/lib/inspec/resources/iis_website.rb +1 -1
- data/lib/inspec/resources/interfaces.rb +1 -1
- data/lib/inspec/resources/json.rb +2 -2
- data/lib/inspec/resources/key_rsa.rb +1 -1
- data/lib/inspec/resources/mssql_session.rb +5 -1
- data/lib/inspec/resources/mysql_session.rb +1 -1
- data/lib/inspec/resources/nginx.rb +1 -1
- data/lib/inspec/resources/nginx_conf.rb +1 -1
- data/lib/inspec/resources/npm.rb +1 -1
- data/lib/inspec/resources/oracledb_session.rb +1 -1
- data/lib/inspec/resources/package.rb +1 -1
- data/lib/inspec/resources/parse_config.rb +5 -2
- data/lib/inspec/resources/platform.rb +11 -1
- data/lib/inspec/resources/port.rb +1 -1
- data/lib/inspec/resources/postgres_session.rb +1 -1
- data/lib/inspec/resources/ppa.rb +1 -1
- data/lib/inspec/resources/processes.rb +1 -1
- data/lib/inspec/resources/rabbitmq_conf.rb +1 -1
- data/lib/inspec/resources/registry_key.rb +1 -1
- data/lib/inspec/resources/sshd_config.rb +1 -1
- data/lib/inspec/resources/ssl.rb +2 -2
- data/lib/inspec/resources/toml.rb +1 -1
- data/lib/inspec/resources/vbscript.rb +1 -1
- data/lib/inspec/resources/windows_registry_key.rb +1 -1
- data/lib/inspec/resources/wmi.rb +16 -8
- data/lib/inspec/resources/x509_certificate.rb +1 -1
- data/lib/inspec/resources/xml.rb +1 -1
- data/lib/inspec/rule.rb +8 -8
- data/lib/inspec/run_data.rb +1 -1
- data/lib/inspec/run_data/result.rb +2 -0
- data/lib/inspec/runner.rb +2 -2
- data/lib/inspec/schema.rb +3 -1
- data/lib/inspec/schema/exec_json.rb +1 -1
- data/lib/inspec/schema/output_schema.rb +1 -1
- data/lib/inspec/schema/primitives.rb +1 -1
- data/lib/inspec/shell.rb +3 -3
- data/lib/inspec/shell_detector.rb +2 -2
- data/lib/inspec/utils/command_wrapper.rb +1 -1
- data/lib/inspec/utils/deprecation/config_file.rb +2 -2
- data/lib/inspec/utils/json_log.rb +1 -1
- data/lib/inspec/utils/telemetry/collector.rb +1 -1
- data/lib/inspec/utils/telemetry/data_series.rb +1 -1
- data/lib/inspec/version.rb +1 -1
- data/lib/plugins/inspec-artifact/lib/inspec-artifact/base.rb +5 -5
- data/lib/plugins/inspec-compliance/README.md +1 -1
- data/lib/plugins/inspec-compliance/lib/inspec-compliance/api.rb +3 -3
- data/lib/plugins/inspec-compliance/lib/inspec-compliance/http.rb +2 -2
- data/lib/plugins/inspec-compliance/lib/inspec-compliance/target.rb +2 -2
- data/lib/plugins/inspec-habitat/lib/inspec-habitat/profile.rb +3 -3
- data/lib/plugins/inspec-init/lib/inspec-init/cli.rb +1 -1
- data/lib/plugins/inspec-init/lib/inspec-init/cli_profile.rb +1 -1
- data/lib/plugins/inspec-init/lib/inspec-init/renderer.rb +2 -2
- data/lib/plugins/inspec-init/templates/profiles/aws/README.md +1 -1
- data/lib/plugins/inspec-plugin-manager-cli/lib/inspec-plugin-manager-cli/cli_command.rb +3 -3
- data/lib/plugins/inspec-reporter-html2/README.md +1 -1
- data/lib/plugins/inspec-reporter-html2/lib/inspec-reporter-html2/reporter.rb +1 -1
- data/lib/plugins/inspec-reporter-json-min/lib/inspec-reporter-json-min/reporter.rb +1 -1
- data/lib/plugins/inspec-reporter-junit/README.md +9 -7
- data/lib/plugins/inspec-reporter-junit/lib/inspec-reporter-junit.rb +10 -1
- data/lib/plugins/inspec-reporter-junit/lib/inspec-reporter-junit/reporter.rb +94 -12
- data/lib/plugins/shared/core_plugin_test_helper.rb +6 -22
- metadata +44 -40
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bfed5976ebd618d37b1fbf0058fbd9389b243dbd5070444fda7558cf309392c3
|
4
|
+
data.tar.gz: 3b894051f2f56e249af59acf0de10c50d8a826d3af1755eaf60100a7a4934dab
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c1d9b3598a4bc81085d95b5a4b254ac57001aa301e4371394b8b8b307b54ed26644784ccf9dafd2e52d4e2553e5c1ff77ae821691ef738e542f13d892f692f81
|
7
|
+
data.tar.gz: 54f9be8adc1870127be3e825e809499270717d395fa26d11408f186a66fdb61ca7db0ac78fd73143652893bd482acf2d1009c3343609e8b34bcd3ff3eb0aaa0c
|
data/Gemfile
CHANGED
@@ -11,6 +11,11 @@ gem "inspec-bin", path: "./inspec-bin"
|
|
11
11
|
|
12
12
|
gem "ffi", ">= 1.9.14", "!= 1.13.0"
|
13
13
|
|
14
|
+
if Gem.ruby_version.to_s.start_with?("2.5")
|
15
|
+
# 16.7.23 required ruby 2.6+
|
16
|
+
gem "chef-utils", "< 16.7.23" # TODO: remove when we drop ruby 2.5
|
17
|
+
end
|
18
|
+
|
14
19
|
group :omnibus do
|
15
20
|
gem "rb-readline"
|
16
21
|
gem "appbundler"
|
@@ -19,45 +24,23 @@ group :omnibus do
|
|
19
24
|
end
|
20
25
|
|
21
26
|
group :test do
|
22
|
-
gem "chefstyle", "~> 1.
|
23
|
-
gem "minitest", "~> 5.5"
|
24
|
-
gem "minitest-sprint", "~> 1.0"
|
25
|
-
gem "rake", ">= 10"
|
26
|
-
gem "simplecov", ["~> 0.10", "<=0.18.2"]
|
27
|
+
gem "chefstyle", "~> 1.5.7"
|
27
28
|
gem "concurrent-ruby", "~> 1.0"
|
29
|
+
gem "html-proofer", platforms: :ruby # do not attempt to run proofer on windows
|
30
|
+
gem "json_schemer", ">= 0.2.1", "< 0.2.12"
|
31
|
+
gem "m"
|
32
|
+
gem "minitest-sprint", "~> 1.0"
|
33
|
+
gem "minitest", "~> 5.5"
|
28
34
|
gem "mocha", "~> 1.1"
|
35
|
+
gem "nokogiri", "~> 1.9"
|
36
|
+
gem "pry-byebug"
|
37
|
+
gem "pry", "~> 0.10"
|
38
|
+
gem "rake", ">= 10"
|
29
39
|
gem "ruby-progressbar", "~> 1.8"
|
40
|
+
gem "simplecov", "~> 0.18"
|
30
41
|
gem "webmock", "~> 3.0"
|
31
|
-
gem "m"
|
32
|
-
gem "pry", "~> 0.10"
|
33
|
-
gem "pry-byebug"
|
34
|
-
gem "html-proofer", platforms: :ruby # do not attempt to run proofer on windows
|
35
|
-
end
|
36
|
-
|
37
|
-
group :integration do
|
38
|
-
gem "berkshelf"
|
39
|
-
gem "test-kitchen"
|
40
|
-
gem "kitchen-vagrant"
|
41
|
-
gem "chef", "< 15"
|
42
|
-
gem "chef-zero", "< 15"
|
43
|
-
gem "kitchen-inspec"
|
44
|
-
gem "kitchen-ec2"
|
45
|
-
gem "kitchen-dokken"
|
46
|
-
gem "git"
|
47
|
-
end
|
48
|
-
|
49
|
-
# gems for Maintainers.md generation
|
50
|
-
group :maintenance do
|
51
|
-
gem "tomlrb"
|
52
|
-
|
53
|
-
# To sync maintainers with github
|
54
|
-
gem "octokit"
|
55
|
-
gem "netrc"
|
56
42
|
end
|
57
43
|
|
58
44
|
group :deploy do
|
59
45
|
gem "inquirer"
|
60
46
|
end
|
61
|
-
|
62
|
-
# add these additional dependencies into Gemfile.local
|
63
|
-
eval_gemfile(__FILE__ + ".local") if File.exist?(__FILE__ + ".local")
|
data/inspec-core.gemspec
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
lib = File.expand_path("
|
1
|
+
lib = File.expand_path("lib", __dir__)
|
2
2
|
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
3
3
|
require "inspec/version"
|
4
4
|
|
@@ -13,7 +13,7 @@ Gem::Specification.new do |spec|
|
|
13
13
|
spec.license = "Apache-2.0"
|
14
14
|
spec.require_paths = ["lib"]
|
15
15
|
|
16
|
-
spec.required_ruby_version = "
|
16
|
+
spec.required_ruby_version = ">= 2.5"
|
17
17
|
|
18
18
|
# the gemfile and gemspec are necessary for appbundler so don't remove it
|
19
19
|
spec.files =
|
@@ -26,22 +26,21 @@ Gem::Specification.new do |spec|
|
|
26
26
|
spec.add_dependency "chef-telemetry", "~> 1.0"
|
27
27
|
spec.add_dependency "license-acceptance", ">= 0.2.13", "< 3.0"
|
28
28
|
spec.add_dependency "thor", ">= 0.20", "< 2.0"
|
29
|
-
spec.add_dependency "json_schemer", ">= 0.2.1", "< 0.2.12"
|
30
29
|
spec.add_dependency "method_source", ">= 0.8", "< 2.0"
|
31
|
-
spec.add_dependency "rubyzip", "
|
32
|
-
spec.add_dependency "rspec", "~> 3.
|
30
|
+
spec.add_dependency "rubyzip", ">= 1.2.2", "< 3.0"
|
31
|
+
spec.add_dependency "rspec", "~> 3.10"
|
33
32
|
spec.add_dependency "rspec-its", "~> 1.2"
|
34
33
|
spec.add_dependency "pry", "~> 0.13"
|
35
|
-
spec.add_dependency "hashie", "
|
34
|
+
spec.add_dependency "hashie", ">= 3.4", "< 5.0"
|
36
35
|
spec.add_dependency "mixlib-log", "~> 3.0"
|
37
36
|
spec.add_dependency "sslshake", "~> 1.2"
|
38
37
|
spec.add_dependency "parallel", "~> 1.9"
|
39
|
-
spec.add_dependency "faraday", ">= 0.9.0"
|
38
|
+
spec.add_dependency "faraday", ">= 0.9.0", "< 1.2"
|
40
39
|
spec.add_dependency "tty-table", "~> 0.10"
|
41
40
|
spec.add_dependency "tty-prompt", "~> 0.17"
|
42
|
-
spec.add_dependency "tomlrb", "
|
41
|
+
spec.add_dependency "tomlrb", ">= 1.2", "< 2.1"
|
43
42
|
spec.add_dependency "addressable", "~> 2.4"
|
44
|
-
spec.add_dependency "parslet", "
|
43
|
+
spec.add_dependency "parslet", ">= 1.5", "< 3.0"
|
45
44
|
spec.add_dependency "semverse", "~> 3.0"
|
46
45
|
spec.add_dependency "multipart-post", "~> 2.0"
|
47
46
|
|
data/lib/inspec/archive/tar.rb
CHANGED
data/lib/inspec/archive/zip.rb
CHANGED
data/lib/inspec/base_cli.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
require "thor"
|
1
|
+
require "thor" unless defined?(Thor)
|
2
2
|
require "inspec/log"
|
3
3
|
require "inspec/ui"
|
4
4
|
require "inspec/config"
|
@@ -164,6 +164,12 @@ module Inspec
|
|
164
164
|
desc: "After normal execution order, results are sorted by control ID, or by file (default), or randomly. None uses legacy unsorted mode."
|
165
165
|
end
|
166
166
|
|
167
|
+
def self.help(*args)
|
168
|
+
super(*args)
|
169
|
+
puts "\nAbout #{Inspec::Dist::PRODUCT_NAME}:"
|
170
|
+
puts " Patents: chef.io/patents\n\n"
|
171
|
+
end
|
172
|
+
|
167
173
|
def self.format_platform_info(params: {}, indent: 0, color: 39)
|
168
174
|
str = ""
|
169
175
|
params.each do |item, info|
|
data/lib/inspec/cli.rb
CHANGED
@@ -48,7 +48,8 @@ class Inspec::InspecCLI < Inspec::BaseCLI
|
|
48
48
|
desc: "Allow or disable user interaction"
|
49
49
|
|
50
50
|
class_option :disable_core_plugins, type: :string, banner: "", # Actually a boolean, but this suppresses the creation of a --no-disable...
|
51
|
-
desc: "Disable loading all plugins that are shipped in the lib/plugins directory of InSpec. Useful in development."
|
51
|
+
desc: "Disable loading all plugins that are shipped in the lib/plugins directory of InSpec. Useful in development.",
|
52
|
+
hide: true
|
52
53
|
|
53
54
|
class_option :disable_user_plugins, type: :string, banner: "",
|
54
55
|
desc: "Disable loading all plugins that the user installed."
|
@@ -66,7 +67,7 @@ class Inspec::InspecCLI < Inspec::BaseCLI
|
|
66
67
|
desc: "A list of controls to include. Ignore all other tests."
|
67
68
|
profile_options
|
68
69
|
def json(target)
|
69
|
-
require "json"
|
70
|
+
require "json" unless defined?(JSON)
|
70
71
|
|
71
72
|
o = config
|
72
73
|
diagnose(o)
|
@@ -194,7 +195,8 @@ class Inspec::InspecCLI < Inspec::BaseCLI
|
|
194
195
|
pretty_handle_exception(e)
|
195
196
|
end
|
196
197
|
|
197
|
-
desc "exec LOCATIONS",
|
198
|
+
desc "exec LOCATIONS", "Run all tests at LOCATIONS."
|
199
|
+
long_desc <<~EOT
|
198
200
|
Run all test files at the specified LOCATIONS.
|
199
201
|
|
200
202
|
Loads the given profile(s) and fetches their dependencies if needed. Then
|
data/lib/inspec/config.rb
CHANGED
@@ -1,11 +1,11 @@
|
|
1
1
|
# Represents InSpec configuration. Merges defaults, config file options,
|
2
2
|
# and CLI arguments.
|
3
3
|
|
4
|
-
require "pp"
|
5
|
-
require "stringio"
|
6
|
-
require "forwardable"
|
7
|
-
require "thor"
|
8
|
-
require "base64"
|
4
|
+
require "pp" unless defined?(PP)
|
5
|
+
require "stringio" unless defined?(StringIO)
|
6
|
+
require "forwardable" unless defined?(Forwardable)
|
7
|
+
require "thor" unless defined?(Thor)
|
8
|
+
require "base64" unless defined?(Base64)
|
9
9
|
require "inspec/plugin/v2/filter"
|
10
10
|
|
11
11
|
module Inspec
|
data/lib/inspec/env_printer.rb
CHANGED
data/lib/inspec/fetcher/git.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
|
-
require "tmpdir"
|
2
|
-
require "fileutils"
|
3
|
-
require "mixlib/shellout"
|
1
|
+
require "tmpdir" unless defined?(Dir.mktmpdir)
|
2
|
+
require "fileutils" unless defined?(FileUtils)
|
3
|
+
require "mixlib/shellout" unless defined?(Mixlib::ShellOut)
|
4
4
|
require "inspec/log"
|
5
5
|
|
6
6
|
module Inspec::Fetcher
|
data/lib/inspec/fetcher/local.rb
CHANGED
data/lib/inspec/fetcher/url.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
|
-
require "uri"
|
2
|
-
require "openssl"
|
3
|
-
require "tempfile"
|
4
|
-
require "open-uri"
|
1
|
+
require "uri" unless defined?(URI)
|
2
|
+
require "openssl" unless defined?(OpenSSL)
|
3
|
+
require "tempfile" unless defined?(Tempfile)
|
4
|
+
require "open-uri" unless defined?(OpenURI)
|
5
5
|
|
6
6
|
module Inspec::Fetcher
|
7
7
|
class Url < Inspec.fetcher(1)
|
data/lib/inspec/file_provider.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
|
-
require "rubygems/package"
|
2
|
-
require "pathname"
|
3
|
-
require "zlib"
|
4
|
-
require "zip"
|
1
|
+
require "rubygems/package" unless defined?(Gem::Package)
|
2
|
+
require "pathname" unless defined?(Pathname)
|
3
|
+
require "zlib" unless defined?(Zlib)
|
4
|
+
require "zip" unless defined?(Zip)
|
5
5
|
|
6
6
|
module Inspec
|
7
7
|
class FileProvider
|
@@ -159,6 +159,14 @@ module Inspec::Formatters
|
|
159
159
|
resource_title: example.metadata[:described_class] || example.metadata[:example_group][:description],
|
160
160
|
expectation_message: format_expectation_message(example),
|
161
161
|
waiver_data: example.metadata[:waiver_data],
|
162
|
+
# This enforces the resource name as expected based off of the class
|
163
|
+
# name. However, if we wanted the `name` attribute against the class
|
164
|
+
# to be canonical for this case (consider edge cases!) we would use
|
165
|
+
# example.metadata[:described_class].instance_variable_get(:@__resource_name__)&.to_s
|
166
|
+
resource_class: example.metadata[:described_class].class.superclass.name,
|
167
|
+
# This is a raw grep of the text passed to the resource in any format,
|
168
|
+
# and is used to enforce near-uniqueness against the resource.
|
169
|
+
resource_params: find_resource_params(example.metadata[:described_class]),
|
162
170
|
}
|
163
171
|
|
164
172
|
unless (pid = example.metadata[:profile_id]).nil?
|
@@ -174,6 +182,14 @@ module Inspec::Formatters
|
|
174
182
|
res
|
175
183
|
end
|
176
184
|
|
185
|
+
def find_resource_params(example)
|
186
|
+
if example.class.ancestors.include?(Inspec::Resource)
|
187
|
+
example.instance_variable_get(:@resource_params)
|
188
|
+
else
|
189
|
+
[]
|
190
|
+
end
|
191
|
+
end
|
192
|
+
|
177
193
|
def format_expectation_message(example)
|
178
194
|
if (example.metadata[:example_group][:description_args].first == example.metadata[:example_group][:described_class]) ||
|
179
195
|
example.metadata[:example_group][:described_class].nil?
|
data/lib/inspec/globals.rb
CHANGED
@@ -1,15 +1,21 @@
|
|
1
1
|
require_relative "utils/install_context"
|
2
2
|
|
3
3
|
module Inspec
|
4
|
-
|
5
4
|
extend Inspec::InstallContextHelpers
|
6
5
|
|
7
6
|
def self.config_dir
|
8
|
-
ENV["INSPEC_CONFIG_DIR"]
|
7
|
+
ENV["INSPEC_CONFIG_DIR"] || File.join(home_path, ".inspec")
|
9
8
|
end
|
10
9
|
|
11
10
|
def self.src_root
|
12
11
|
@src_root ||= File.expand_path(File.join(__FILE__, "../../.."))
|
13
12
|
end
|
14
13
|
|
14
|
+
def self.home_path
|
15
|
+
Dir.home
|
16
|
+
rescue ArgumentError, NoMethodError
|
17
|
+
# If ENV['HOME'] is not set, Dir.home will fail due to expanding the ~. Fallback to Etc.
|
18
|
+
require "etc" unless defined?(Etc)
|
19
|
+
Etc.getpwuid.dir
|
20
|
+
end
|
15
21
|
end
|
data/lib/inspec/input.rb
CHANGED
@@ -14,14 +14,17 @@ module Inspec
|
|
14
14
|
class Input
|
15
15
|
|
16
16
|
class Error < Inspec::Error; end
|
17
|
+
|
17
18
|
class ValidationError < Error
|
18
19
|
attr_accessor :input_name
|
19
20
|
attr_accessor :input_value
|
20
21
|
attr_accessor :input_type
|
21
22
|
end
|
23
|
+
|
22
24
|
class TypeError < Error
|
23
25
|
attr_accessor :input_type
|
24
26
|
end
|
27
|
+
|
25
28
|
class RequiredError < Error
|
26
29
|
attr_accessor :input_name
|
27
30
|
end
|
@@ -1,5 +1,5 @@
|
|
1
|
-
require "forwardable"
|
2
|
-
require "singleton"
|
1
|
+
require "forwardable" unless defined?(Forwardable)
|
2
|
+
require "singleton" unless defined?(Singleton)
|
3
3
|
require "inspec/input"
|
4
4
|
require "inspec/secrets"
|
5
5
|
require "inspec/exceptions"
|
@@ -14,9 +14,11 @@ module Inspec
|
|
14
14
|
extend Forwardable
|
15
15
|
|
16
16
|
class Error < Inspec::Error; end
|
17
|
+
|
17
18
|
class ProfileLookupError < Error
|
18
19
|
attr_accessor :profile_name
|
19
20
|
end
|
21
|
+
|
20
22
|
class InputLookupError < Error
|
21
23
|
attr_accessor :profile_name
|
22
24
|
attr_accessor :input_name
|
@@ -199,7 +201,7 @@ module Inspec
|
|
199
201
|
value = YAML.load(value)
|
200
202
|
rescue Psych::SyntaxError => yaml_error
|
201
203
|
# It could be that we just tried to run JSON through the YAML parser.
|
202
|
-
require "json"
|
204
|
+
require "json" unless defined?(JSON)
|
203
205
|
begin
|
204
206
|
value = JSON.parse(value)
|
205
207
|
rescue JSON::ParserError => json_error
|
data/lib/inspec/metadata.rb
CHANGED
@@ -216,7 +216,7 @@ module Inspec
|
|
216
216
|
end
|
217
217
|
|
218
218
|
def self.from_yaml(ref, content, profile_id, logger = nil)
|
219
|
-
require "erb"
|
219
|
+
require "erb" unless defined?(Erb)
|
220
220
|
res = Metadata.new(ref, logger)
|
221
221
|
res.params = YAML.load(ERB.new(content).result)
|
222
222
|
res.content = content
|
@@ -1,4 +1,4 @@
|
|
1
|
-
require "forwardable"
|
1
|
+
require "forwardable" unless defined?(Forwardable)
|
2
2
|
|
3
3
|
module Inspec
|
4
4
|
# Resource Plugins
|
@@ -36,7 +36,7 @@ module Inspec
|
|
36
36
|
.flatten
|
37
37
|
|
38
38
|
# load bundled plugins
|
39
|
-
bundled_dir =
|
39
|
+
bundled_dir = __dir__
|
40
40
|
@paths += Dir[File.join(bundled_dir, "..", "bundles", "inspec-*.rb")].flatten
|
41
41
|
|
42
42
|
# map paths to names
|
data/lib/inspec/plugin/v2.rb
CHANGED
@@ -6,17 +6,22 @@ module Inspec
|
|
6
6
|
class Exception < Inspec::Error; end
|
7
7
|
class ConfigError < Inspec::Plugin::V2::Exception; end
|
8
8
|
class LoadError < Inspec::Plugin::V2::Exception; end
|
9
|
+
|
9
10
|
class GemActionError < Inspec::Plugin::V2::Exception
|
10
11
|
attr_accessor :plugin_name
|
11
12
|
attr_accessor :version
|
12
13
|
end
|
14
|
+
|
13
15
|
class InstallError < Inspec::Plugin::V2::GemActionError; end
|
16
|
+
|
14
17
|
class PluginExcludedError < Inspec::Plugin::V2::InstallError
|
15
18
|
attr_accessor :details
|
16
19
|
end
|
20
|
+
|
17
21
|
class UpdateError < Inspec::Plugin::V2::GemActionError
|
18
22
|
attr_accessor :from_version, :to_version
|
19
23
|
end
|
24
|
+
|
20
25
|
class UnInstallError < Inspec::Plugin::V2::GemActionError; end
|
21
26
|
class SearchError < Inspec::Plugin::V2::GemActionError; end
|
22
27
|
end
|