summaryrefslogtreecommitdiff
path: root/lib/chef/client.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/chef/client.rb')
-rw-r--r--lib/chef/client.rb107
1 files changed, 9 insertions, 98 deletions
diff --git a/lib/chef/client.rb b/lib/chef/client.rb
index 0dd6b2666f..3c1921e8dc 100644
--- a/lib/chef/client.rb
+++ b/lib/chef/client.rb
@@ -26,7 +26,6 @@ require "chef/deprecated"
require "chef/server_api"
require "chef/api_client"
require "chef/api_client/registration"
-require "chef/audit/runner"
require "chef/node"
require "chef/role"
require "chef/file_cache"
@@ -48,7 +47,6 @@ require "chef/version"
require "chef/action_collection"
require "chef/resource_reporter"
require "chef/data_collector"
-require "chef/audit/audit_reporter"
require "chef/run_lock"
require "chef/policy_builder"
require "chef/request_id"
@@ -219,23 +217,6 @@ class Chef
# @see #converge_and_save
# @see Chef::Runner
#
- # Phase 4: Audit
- # --------------
- # Runs 'control_group' audits in recipes. This entire section can be enabled or disabled with config.
- #
- # 1. 'control_group' DSL collects audits during Phase 2
- # 2. Audits are run using RSpec
- # 3. Errors are collected and reported using the formatters
- #
- # @see #run_audits
- # @see Chef::Audit::Runner#run
- #
- # @raise [Chef::Exceptions::RunFailedWrappingError] If converge or audit failed.
- #
- # @see Chef::Config#enforce_path_sanity
- # @see Chef::Config#solo
- # @see Chef::Config#audit_mode
- #
# @return Always returns true.
#
def run
@@ -284,16 +265,7 @@ class Chef
load_required_recipe(@rest, run_context) unless Chef::Config[:solo_legacy_mode]
- if Chef::Config[:audit_mode] != :audit_only
- converge_error = converge_and_save(run_context)
- end
-
- if Chef::Config[:why_run] == true
- # why_run should probably be renamed to why_converge
- logger.debug("Not running controls in 'why-run' mode - this mode is used to see potential converge changes")
- elsif Chef::Config[:audit_mode] != :disabled
- audit_error = run_audits(run_context)
- end
+ converge_error = converge_and_save(run_context)
# Raise converge_error so run_failed reporters/events are processed.
raise converge_error if converge_error
@@ -324,22 +296,11 @@ class Chef
runlock.release
end
- # Raise audit, converge, and other errors here so that we exit
+ # Raise converge, and other errors here so that we exit
# with the proper exit status code and everything gets raised
# as a RunFailedWrappingError
- if run_error || converge_error || audit_error
- error = if Chef::Config[:audit_mode] == :disabled
- run_error || converge_error
- else
- e = if run_error == converge_error
- Chef::Exceptions::RunFailedWrappingError.new(converge_error, audit_error)
- else
- Chef::Exceptions::RunFailedWrappingError.new(run_error, converge_error, audit_error)
- end
- e.fill_backtrace
- e
- end
-
+ if run_error || converge_error
+ error = run_error || converge_error
Chef::Application.debug_stacktrace(error)
raise error
end
@@ -349,7 +310,7 @@ class Chef
#
# Private API
- # TODO make this stuff protected or private
+ # @todo make this stuff protected or private
#
# @api private
@@ -417,8 +378,7 @@ class Chef
# @api private
def register_reporters
[
- Chef::ResourceReporter.new(rest_clean),
- Chef::Audit::AuditReporter.new(rest_clean),
+ Chef::ResourceReporter.new(rest_clean)
].each do |r|
events.register(r)
end
@@ -695,14 +655,9 @@ class Chef
#
# @param run_context The run context.
#
- # @return The thrown exception, if we are in audit mode. `nil` means the
- # converge was successful or ended early.
- #
- # @raise Any converge exception, unless we are in audit mode, in which case
- # we *return* the exception.
+ # @raise Any converge exception
#
# @see Chef::Runner#converge
- # @see Chef::Config#audit_mode
# @see Chef::EventDispatch#converge_start
# @see Chef::EventDispatch#converge_complete
# @see Chef::EventDispatch#converge_failed
@@ -720,7 +675,6 @@ class Chef
events.converge_complete
rescue Exception => e
events.converge_failed(e)
- raise e if Chef::Config[:audit_mode] == :disabled
converge_exception = e
end
end
@@ -732,15 +686,10 @@ class Chef
#
# @param run_context The run context.
#
- # @return The thrown exception, if we are in audit mode. `nil` means the
- # converge was successful or ended early.
- #
- # @raise Any converge or node save exception, unless we are in audit mode,
- # in which case we *return* the exception.
+ # @raise Any converge or node save exception
#
# @see #converge
# @see #save_updated_mode
- # @see Chef::Config#audit_mode
#
# @api private
#
@@ -755,51 +704,13 @@ class Chef
begin
save_updated_node
rescue Exception => e
- raise e if Chef::Config[:audit_mode] == :disabled
- converge_exception = e
+ raise e
end
end
converge_exception
end
#
- # Run the audit phase.
- #
- # Triggers the audit_phase_start, audit_phase_complete and
- # audit_phase_failed events.
- #
- # @param run_context The run context.
- #
- # @return Any thrown exceptions. `nil` if successful.
- #
- # @see Chef::Audit::Runner#run
- # @see Chef::EventDispatch#audit_phase_start
- # @see Chef::EventDispatch#audit_phase_complete
- # @see Chef::EventDispatch#audit_phase_failed
- #
- # @api private
- #
- def run_audits(run_context)
- begin
- events.audit_phase_start(run_status)
- logger.info("Starting audit phase")
- auditor = Chef::Audit::Runner.new(run_context)
- auditor.run
- if auditor.failed?
- audit_exception = Chef::Exceptions::AuditsFailed.new(auditor.num_failed, auditor.num_total)
- @events.audit_phase_failed(audit_exception, Chef::Audit::Logger.read_buffer)
- else
- @events.audit_phase_complete(Chef::Audit::Logger.read_buffer)
- end
- rescue Exception => e
- logger.error("Audit phase failed with error message: #{e.message}")
- @events.audit_phase_failed(e, Chef::Audit::Logger.read_buffer)
- audit_exception = e
- end
- audit_exception
- end
-
- #
# Expands the run list.
#
# @return [Chef::RunListExpansion] The expanded run list.