summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorPete Higgins <pete@peterhiggins.org>2020-11-17 17:37:46 -0800
committerPete Higgins <pete@peterhiggins.org>2020-12-01 16:12:04 -0800
commitcb7a17e4d4ffa7601db34289b8b237c447a509d8 (patch)
tree1b2b85c6e9ccfb4b3150c360fe6fea7e0f269e7b /lib
parent65750fbfacc70ae7e5885b3b7c621233600ad091 (diff)
downloadchef-cb7a17e4d4ffa7601db34289b8b237c447a509d8.tar.gz
Add hook methods to setup state earlier, add failure hook.
Signed-off-by: Pete Higgins <pete@peterhiggins.org>
Diffstat (limited to 'lib')
-rw-r--r--lib/chef/audit/runner.rb38
1 files changed, 22 insertions, 16 deletions
diff --git a/lib/chef/audit/runner.rb b/lib/chef/audit/runner.rb
index 9dbf6b2a70..d5e1b16a7c 100644
--- a/lib/chef/audit/runner.rb
+++ b/lib/chef/audit/runner.rb
@@ -13,22 +13,31 @@ class Chef
class Runner < EventDispatch::Base
extend Forwardable
- attr_reader :run_status
- def_delegators :run_status, :node, :run_context, :run_id
+ attr_accessor :node, :run_id, :recipes
def_delegators :node, :logger
def enabled?
- cookbook_collection = run_context.cookbook_collection
+ audit_cookbook_present = recipes.include?("audit::default")
logger.info("#{self.class}##{__method__}: inspec profiles? #{inspec_profiles.any?}")
- logger.info("#{self.class}##{__method__}: audit cookbook? #{cookbook_collection.key?("audit")}")
+ logger.info("#{self.class}##{__method__}: audit cookbook? #{audit_cookbook_present}")
- inspec_profiles.any? && !cookbook_collection.key?("audit")
+ inspec_profiles.any? && !audit_cookbook_present
end
- def run_completed(_node, run_status)
- @run_status = run_status
+ def node_load_success(node)
+ self.node = node
+ end
+
+ def run_started(run_status)
+ self.run_id = run_status.run_id
+ end
+ def run_list_expanded(run_list_expansion)
+ self.recipes = run_list_expansion.recipes
+ end
+
+ def run_completed(_node, _run_status)
return unless enabled?
logger.info("#{self.class}##{__method__}: enabling audit mode")
@@ -36,16 +45,13 @@ class Chef
report
end
-# TODO: handle error reports
-=begin
- # Called at the end of a failed Chef run.
- def run_failed(exception, run_status); end
+ def run_failed(_exception, _run_status)
+ return unless enabled?
- # Called after Chef client has loaded the node data.
- # Default and override attrs from roles have been computed, but not yet applied.
- # Normal attrs from JSON have been added to the node.
- def node_load_completed(node, expanded_run_list, config); end
-=end
+ logger.info("#{self.class}##{__method__}: enabling audit mode")
+
+ report
+ end
### Below code adapted from audit cookbook's files/default/handler/audit_report.rb