inspec-core 4.23.4 → 4.24.26
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/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
|