diff options
Diffstat (limited to 'lib/chef/audit/control_group_data.rb')
-rw-r--r-- | lib/chef/audit/control_group_data.rb | 33 |
1 files changed, 13 insertions, 20 deletions
diff --git a/lib/chef/audit/control_group_data.rb b/lib/chef/audit/control_group_data.rb index e221ae94cc..42a91ef5a7 100644 --- a/lib/chef/audit/control_group_data.rb +++ b/lib/chef/audit/control_group_data.rb @@ -28,19 +28,20 @@ class Chef end class ControlGroupData - attr_reader :name, :status, :number_success, :number_failed, :controls + attr_reader :name, :status, :number_succeeded, :number_failed, :controls, :metadata - def initialize(name) + def initialize(name, metadata={}) @status = "success" @controls = [] - @number_success = 0 + @number_succeeded = 0 @number_failed = 0 @name = name + @metadata = metadata end def example_success(control_data) - @number_success += 1 + @number_succeeded += 1 control = create_control(control_data) control.status = "success" controls << control @@ -64,24 +65,18 @@ class Chef h = { :name => name, :status => status, - :number_success => number_success, + :number_succeeded => number_succeeded, :number_failed => number_failed, :controls => controls.collect { |c| c.to_hash } } - add_display_only_data(h) + # If there is a duplicate key, metadata will overwrite it + add_display_only_data(h).merge(metadata) end private def create_control(control_data) - name = control_data[:name] - resource_type = control_data[:resource_type] - resource_name = control_data[:resource_name] - context = control_data[:context] - line_number = control_data[:line_number] - # TODO make this smarter with splat arguments so if we start passing in more control_data - # I don't have to modify code in multiple places - ControlData.new(name, resource_type, resource_name, context, line_number) + ControlData.new(control_data) end # The id and control sequence number are ephemeral data - they are not needed @@ -103,12 +98,10 @@ class Chef attr_reader :name, :resource_type, :resource_name, :context, :line_number attr_accessor :status, :details - def initialize(name, resource_type, resource_name, context, line_number) - @context = context - @name = name - @resource_type = resource_type - @resource_name = resource_name - @line_number = line_number + def initialize(control_data={}) + control_data.each do |k, v| + self.instance_variable_set("@#{k}", v) + end end def to_hash |