diff --git a/app/models/manageiq/providers/kubernetes/monitoring_manager/event_catcher/runner_mixin.rb b/app/models/manageiq/providers/kubernetes/monitoring_manager/event_catcher/runner_mixin.rb index dcbe02fae5..a3e50da04a 100644 --- a/app/models/manageiq/providers/kubernetes/monitoring_manager/event_catcher/runner_mixin.rb +++ b/app/models/manageiq/providers/kubernetes/monitoring_manager/event_catcher/runner_mixin.rb @@ -49,14 +49,14 @@ def extract_event_data(event) # # { # "annotations": { - # "message": "Node ocp-compute01.10.35.48.236.nip.io is down", - # "severity": "HIGH", + # "description": "Node ocp-compute01.10.35.48.236.nip.io is down", # "source": "ManageIQ", # "url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ" # }, # "endsAt": "0001-01-01T00:00:00Z", # "generatorURL": "http://prometheus-4018548653-w3str:9090/graph?g0.expr=container_fs_usage_bytes%7Bcontainer_name%3D%22%22%2Cdevice%3D%22%2Fdev%2Fmapper%2Fvg0-lv_root%22%7D+%3E+4e%2B07&g0.tab=0", # "labels": { + # "severity": "error", # "alertname": "Node down", # "beta_kubernetes_io_arch": "amd64", # "beta_kubernetes_io_os": "linux", @@ -76,9 +76,10 @@ def extract_event_data(event) event = event.dup annotations = event["annotations"] - event[:url] = annotations["url"] - event[:severity] = parse_severity(annotations["severity"]) labels = event["labels"] + + event[:url] = annotations["url"] + event[:severity] = parse_severity(labels["severity"]) # TODO(mtayer): remove after https://github.com/ManageIQ/manageiq/pull/16339 event[:ems_ref] = incident_identifier(labels, annotations, event["startsAt"]) event[:resolved] = event["status"] == "resolved" @@ -86,7 +87,7 @@ def extract_event_data(event) :source => "DATAWAREHOUSE", :timestamp => Time.zone.now, :event_type => "datawarehouse_alert", - :message => annotations["message"], + :message => annotations["description"], :ems_ref => incident_identifier(labels, annotations, event["startsAt"]), :full_data => event.to_h }.merge( diff --git a/spec/models/manageiq/providers/kubernetes/monitoring_manager/event_catcher/runner_mixin_spec.rb b/spec/models/manageiq/providers/kubernetes/monitoring_manager/event_catcher/runner_mixin_spec.rb index ee41c4a4a6..1fe7fe38c2 100644 --- a/spec/models/manageiq/providers/kubernetes/monitoring_manager/event_catcher/runner_mixin_spec.rb +++ b/spec/models/manageiq/providers/kubernetes/monitoring_manager/event_catcher/runner_mixin_spec.rb @@ -49,6 +49,30 @@ def initialize(ems) let(:node_annotations) { {"miqTarget" => 'ContainerNode'} } let(:ext_annotations) { {"miqTarget" => 'ExtManagementSystem'} } + context "#extract_event_data" do + it "extracts severity based on the severity label" do + expect(subject).to receive(:parse_severity).with("info").and_call_original + expect( + subject.extract_event_data( + "labels" => {"severity" => "info"}, + "annotations" => {"severity" => "ignoreme"}, + )[:full_data] + ).to include(:severity => "info") + end + + it "extracts messaged based on the description annotation" do + expect( + subject.extract_event_data( + "annotations" => { + "description" => "important", + "message" => "ignoreme", + }, + "labels" => {}, + ) + ).to include(:message => "important") + end + end + context "#find_target" do it "binds to container node by default" do target = FactoryGirl.create(:container_node, :name => 'testing')