Class: Puppet::Transaction::Event Private
- Includes:
- Network::FormatSupport, Util::Logging, Util::Tagging
- Defined in:
- lib/puppet/transaction/event.rb
Overview
This class is part of a private API. You should avoid using this class if possible, as it may be removed or be changed in the future.
A simple struct for storing what happens on the system.
Constant Summary collapse
- ATTRIBUTES =
This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.
[:name, :resource, :property, :previous_value, :desired_value, :historical_value, :status, :message, :file, :line, :source_description, :audited, :invalidate_refreshes, :redacted, :corrective_change]
- EVENT_STATUSES =
This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.
%w[noop success failure audit]
Constants included from Util::Tagging
Instance Attribute Summary collapse
- #default_log_level ⇒ Object readonly private
- #time ⇒ Object private
Class Method Summary collapse
- .from_data_hash(data) ⇒ Object private
Instance Method Summary collapse
-
#calculate_corrective_change(old_system_value) ⇒ bool
private
Calculate and set the corrective_change parameter, based on the old_system_value of the property.
- #eql?(event) ⇒ Boolean (also: #==) private
-
#initialize(audited: false, corrective_change: false, desired_value: nil, file: nil, historical_value: nil, invalidate_refreshes: nil, line: nil, message: nil, name: nil, previous_value: nil, property: nil, redacted: false, resource: nil, source_description: nil, status: nil, tags: nil) ⇒ Event
constructor
private
A new instance of Event.
- #initialize_from_hash(data) ⇒ Object private
- #inspect ⇒ Object private
- #property=(prop) ⇒ Object private
- #resource=(res) ⇒ Object private
- #send_log ⇒ Object private
- #status=(value) ⇒ Object private
- #to_data_hash ⇒ Object private
- #to_s ⇒ Object private
Methods included from Network::FormatSupport
included, #mime, #render, #support_format?, #to_json, #to_msgpack, #to_pson
Methods included from Util::Logging
#clear_deprecation_warnings, #debug, #deprecation_warning, #format_backtrace, #format_exception, #get_deprecation_offender, #log_and_raise, #log_deprecations_to_file, #log_exception, #puppet_deprecation_warning, setup_facter_logging!, #warn_once
Methods included from Util::Tagging
#merge_into, #merge_tags_from, #raw_tagged?, #set_tags, #tag, #tag_if_valid, #tagged?, #tags, #tags=, #valid_tag?
Constructor Details
#initialize(audited: false, corrective_change: false, desired_value: nil, file: nil, historical_value: nil, invalidate_refreshes: nil, line: nil, message: nil, name: nil, previous_value: nil, property: nil, redacted: false, resource: nil, source_description: nil, status: nil, tags: nil) ⇒ Event
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Returns a new instance of Event.
27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 |
# File 'lib/puppet/transaction/event.rb', line 27 def initialize(audited: false, corrective_change: false, desired_value: nil, file: nil, historical_value: nil, invalidate_refreshes: nil, line: nil, message: nil, name: nil, previous_value: nil, property: nil, redacted: false, resource: nil, source_description: nil, status: nil, tags: nil) @audited = audited @corrective_change = corrective_change @desired_value = desired_value @file = file @historical_value = historical_value @invalidate_refreshes = invalidate_refreshes @line = line @message = @name = name @previous_value = previous_value @redacted = redacted @source_description = source_description @tags = self.property = property if property self.resource = resource if resource self.status = status if status @time = Time.now end |
Instance Attribute Details
#default_log_level ⇒ Object (readonly)
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
17 18 19 |
# File 'lib/puppet/transaction/event.rb', line 17 def default_log_level @default_log_level end |
#time ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
16 17 18 |
# File 'lib/puppet/transaction/event.rb', line 16 def time @time end |
Class Method Details
.from_data_hash(data) ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
21 22 23 24 25 |
# File 'lib/puppet/transaction/event.rb', line 21 def self.from_data_hash(data) obj = allocate obj.initialize_from_hash(data) obj end |
Instance Method Details
#calculate_corrective_change(old_system_value) ⇒ bool
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Calculate and set the corrective_change parameter, based on the old_system_value of the property.
142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 |
# File 'lib/puppet/transaction/event.rb', line 142 def calculate_corrective_change(old_system_value) # Only idempotent properties, and cases where we have an old system_value # are corrective_changes. if @property_instance.idempotent? && !@property_instance.sensitive && !old_system_value.nil? # If the values aren't insync, we have confirmed a corrective_change insync = @property_instance.insync_values?(old_system_value, previous_value) # Preserve the nil state, but flip true/false @corrective_change = insync.nil? ? nil : !insync else @corrective_change = false end end |
#eql?(event) ⇒ Boolean Also known as: ==
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
65 66 67 |
# File 'lib/puppet/transaction/event.rb', line 65 def eql?(event) self.class == event.class && ATTRIBUTES.all? { |attr| send(attr).eql?(event.send(attr)) } end |
#initialize_from_hash(data) ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 |
# File 'lib/puppet/transaction/event.rb', line 70 def initialize_from_hash(data) data = Puppet::Pops::Serialization::FromDataConverter.convert(data, { :allow_unresolved => true, :loader => Puppet::Pops::Loaders.static_loader }) @audited = data['audited'] @property = data['property'] @previous_value = data['previous_value'] @desired_value = data['desired_value'] @historical_value = data['historical_value'] @message = data['message'] @name = data['name'].intern if data['name'] @status = data['status'] @time = data['time'] @time = Time.parse(@time) if @time.is_a? String @redacted = data.fetch('redacted', false) @corrective_change = data['corrective_change'] end |
#inspect ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
135 136 137 |
# File 'lib/puppet/transaction/event.rb', line 135 def inspect %Q(#<#{self.class.name} @name="#{@name.inspect}" @message="#{@message.inspect}">) end |
#property=(prop) ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
108 109 110 111 |
# File 'lib/puppet/transaction/event.rb', line 108 def property=(prop) @property_instance = prop @property = prop.to_s end |
#resource=(res) ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
113 114 115 116 117 118 119 |
# File 'lib/puppet/transaction/event.rb', line 113 def resource=(res) level = res[:loglevel] if res.respond_to?(:[]) if level @default_log_level = level end @resource = res.to_s end |
#send_log ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
121 122 123 |
# File 'lib/puppet/transaction/event.rb', line 121 def send_log super(log_level, ) end |
#status=(value) ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
125 126 127 128 129 |
# File 'lib/puppet/transaction/event.rb', line 125 def status=(value) raise ArgumentError, _("Event status can only be %{statuses}") % { statuses: EVENT_STATUSES.join(', ') } unless EVENT_STATUSES.include?(value) @status = value end |
#to_data_hash ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 |
# File 'lib/puppet/transaction/event.rb', line 89 def to_data_hash hash = { 'audited' => @audited, 'property' => @property, 'previous_value' => @previous_value, 'desired_value' => @desired_value, 'historical_value' => @historical_value, 'message' => @message, 'name' => @name.nil? ? nil : @name.to_s, 'status' => @status, 'time' => @time.iso8601(9), 'redacted' => @redacted, 'corrective_change' => @corrective_change, } # Use the stringifying converter since rich data is not possible downstream. # (This will destroy some data type information, but this is expected). Puppet::Pops::Serialization::ToStringifiedConverter.convert(hash, :message_prefix => 'Event') end |
#to_s ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
131 132 133 |
# File 'lib/puppet/transaction/event.rb', line 131 def to_s end |