summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPete Higgins <pete@peterhiggins.org>2020-11-23 16:31:39 -0800
committerPete Higgins <pete@peterhiggins.org>2020-12-01 16:12:04 -0800
commit51e870c3718efeaeb42fa1a31025a5382f2ba413 (patch)
tree73976627badcaaaf106e395f4accbc8748c79832
parent443e647ba564dcfab9abcdb8a9bb2b16c6372b32 (diff)
downloadchef-51e870c3718efeaeb42fa1a31025a5382f2ba413.tar.gz
Dynamically load Inspec fetchers at runtime.
Signed-off-by: Pete Higgins <pete@peterhiggins.org>
-rw-r--r--lib/chef/audit/runner.rb17
1 files changed, 15 insertions, 2 deletions
diff --git a/lib/chef/audit/runner.rb b/lib/chef/audit/runner.rb
index d516376f33..c068dffeb8 100644
--- a/lib/chef/audit/runner.rb
+++ b/lib/chef/audit/runner.rb
@@ -1,8 +1,6 @@
autoload :Inspec, "inspec"
require_relative "default_attributes"
-require_relative "fetcher/automate"
-require_relative "fetcher/chef_server"
require_relative "reporter/audit_enforcer"
require_relative "reporter/automate"
require_relative "reporter/chef_server_automate"
@@ -121,7 +119,22 @@ class Chef
end
end
+ def load_fetchers!
+ case node["audit"]["fetcher"]
+ when "chef-automate"
+ require_relative "fetcher/automate"
+ when "chef-server"
+ require_relative "fetcher/chef_server"
+ when nil
+ # intentionally blank
+ else
+ raise "Invalid value specified for audit mode's fetcher: '#{node["audit"]["fetcher"]}'. Valid values are 'chef-automate', 'chef-server', or nil."
+ end
+ end
+
def generate_report(opts: inspec_opts, profiles: inspec_profiles)
+ load_fetchers!
+
logger.debug "Options are set to: #{opts}"
runner = ::Inspec::Runner.new(opts)