Class: Krane::KubernetesResource::Event
- Inherits:
-
Object
- Object
- Krane::KubernetesResource::Event
- Defined in:
- lib/krane/kubernetes_resource.rb
Constant Summary collapse
- EVENT_SEPARATOR =
"ENDEVENT--BEGINEVENT"
- FIELD_SEPARATOR =
"ENDFIELD--BEGINFIELD"
- FIELDS =
%w( .involvedObject.kind .involvedObject.name .count .lastTimestamp .reason .message .eventTime .deprecatedCount .deprecatedLastTimestamp .series )
- FIELD_EMPTY_VALUE =
'<no value>'
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize(subject_kind:, last_timestamp:, reason:, message:, count:, subject_name:) ⇒ Event
constructor
A new instance of Event.
- #seen_since?(time) ⇒ Boolean
- #to_s ⇒ Object
Constructor Details
#initialize(subject_kind:, last_timestamp:, reason:, message:, count:, subject_name:) ⇒ Event
Returns a new instance of Event.
472 473 474 475 476 477 478 479 |
# File 'lib/krane/kubernetes_resource.rb', line 472 def initialize(subject_kind:, last_timestamp:, reason:, message:, count:, subject_name:) @subject_kind = subject_kind @subject_name = subject_name @last_timestamp = Time.parse() @reason = reason @message = .tr("\n", '') @count = count.to_i end |
Class Method Details
.extract_all_from_go_template_blob(blob) ⇒ Object
414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 |
# File 'lib/krane/kubernetes_resource.rb', line 414 def self.extract_all_from_go_template_blob(blob) blob.split(EVENT_SEPARATOR).map do |event_blob| pieces = event_blob.split(FIELD_SEPARATOR, FIELDS.length) count = extract_event_count(pieces) = (pieces) new( subject_kind: pieces[FIELDS.index(".involvedObject.kind")], subject_name: pieces[FIELDS.index(".involvedObject.name")], count: count, last_timestamp: , reason: pieces[FIELDS.index(".reason")], message: pieces[FIELDS.index(".message")] ) end end |
.go_template_for(kind, name) ⇒ Object
398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 |
# File 'lib/krane/kubernetes_resource.rb', line 398 def self.go_template_for(kind, name) and_conditions = [ %[(eq .involvedObject.kind "#{kind}")], %[(eq .involvedObject.name "#{name}")], '(ne .reason "Started")', '(ne .reason "Created")', '(ne .reason "SuccessfulCreate")', '(ne .reason "Scheduled")', '(ne .reason "Pulling")', '(ne .reason "Pulled")', ] condition_start = "{{if and #{and_conditions.join(' ')}}}" field_part = FIELDS.map { |f| "{{#{f}}}" }.join(%({{print "#{FIELD_SEPARATOR}"}})) %({{range .items}}#{condition_start}#{field_part}{{print "#{EVENT_SEPARATOR}"}}{{end}}{{end}}) end |
Instance Method Details
#seen_since?(time) ⇒ Boolean
481 482 483 |
# File 'lib/krane/kubernetes_resource.rb', line 481 def seen_since?(time) time.to_i <= @last_timestamp.to_i end |
#to_s ⇒ Object
485 486 487 |
# File 'lib/krane/kubernetes_resource.rb', line 485 def to_s "#{@reason}: #{@message} (#{@count} events)" end |