diff --git a/app/models/container_node.rb b/app/models/container_node.rb index 400a5b1a017..fb445c355fc 100644 --- a/app/models/container_node.rb +++ b/app/models/container_node.rb @@ -87,8 +87,8 @@ def cockpit_url end def evaluate_alert(_alert_id, _event) - # currently only EmsEvents from hawkular are tested for node alerts, - # and these should automaticaly be translated to alerts. + # This is a no-op on container node, and used to be implemented only for + # Hawkular-generated EmsEvents. true end diff --git a/app/models/ems_event.rb b/app/models/ems_event.rb index 51c9b144e71..89afbae05f3 100644 --- a/app/models/ems_event.rb +++ b/app/models/ems_event.rb @@ -89,7 +89,6 @@ def self.add(ems_id, event_hash) process_availability_zone_in_event!(event_hash) process_cluster_in_event!(event_hash) process_container_entities_in_event!(event_hash) - process_middleware_entities_in_event!(event_hash) # Write the event new_event = create_event(event_hash) @@ -143,17 +142,6 @@ def self.process_container_entities_in_event!(event, _options = {}) end end - def self.process_middleware_entities_in_event!(event, _options = {}) - middleware_type = event[:middleware_type] - if middleware_type - klass = middleware_type.safe_constantize - unless klass.nil? - process_object_in_event!(klass, event, :ems_ref_key => :middleware_ref) - end - end - event.except!(:middleware_ref, :middleware_type) - end - def self.process_availability_zone_in_event!(event, options = {}) process_object_in_event!(AvailabilityZone, event, options) if event[:availability_zone_id].nil? && event[:vm_or_template_id] @@ -221,7 +209,6 @@ def get_target(target_type) target_type = "src_vm_or_template" if target_type == "src_vm" target_type = "dest_vm_or_template" if target_type == "dest_vm" - target_type = "middleware_server" if event.event_type == "hawkular_alert" target_type = "target" if event.event_type == "datawarehouse_alert" event.send(target_type) diff --git a/app/models/miq_alert.rb b/app/models/miq_alert.rb index 32fb63c028c..35fc07e1151 100644 --- a/app/models/miq_alert.rb +++ b/app/models/miq_alert.rb @@ -25,7 +25,6 @@ class MiqAlert < ApplicationRecord EmsCluster ExtManagementSystem MiqServer - MiddlewareServer ContainerNode ) @@ -479,136 +478,6 @@ def self.automate_expressions }}, {:name => :operator, :description => _("Operator"), :values => ["Changed"]} ]}, - {:name => "mw_heap_used", :description => _("JVM Heap Used"), :db => ["MiddlewareServer"], :responds_to_events => "hawkular_alert", - :options => [ - {:name => :value_mw_greater_than, :description => _("> Heap Max (%)"), :numeric => true}, - {:name => :value_mw_less_than, :description => _("< Heap Max (%)"), :numeric => true} - ]}, - {:name => "mw_non_heap_used", :description => _("JVM Non Heap Used"), :db => ["MiddlewareServer"], :responds_to_events => "hawkular_alert", - :options => [ - {:name => :value_mw_greater_than, :description => _("> Non Heap Committed (%)"), :numeric => true}, - {:name => :value_mw_less_than, :description => _("< Non Heap Committed (%)"), :numeric => true} - ]}, - {:name => "mw_accumulated_gc_duration", :description => _("JVM Accumulated GC Duration"), :db => ["MiddlewareServer"], :responds_to_events => "hawkular_alert", - :options => [ - {:name => :mw_operator, :description => _("Operator"), :values => [">", ">=", "<", "<=", "="]}, - {:name => :value_mw_garbage_collector, :description => _("Duration Per Minute (ms)"), :numeric => true} - ]}, - {:name => "mw_ds_available_count", :description => _("DataSource - Connections Available"), :db => ["MiddlewareServer"], :responds_to_events => "hawkular_alert", - :options => [ - {:name => :mw_operator, :description => _("Operator"), :values => [">", ">=", "<", "<="]}, - {:name => :value_mw_threshold, :description => _("Number of available Datasource connections"), :numeric => true} - ]}, - {:name => "mw_ds_in_use_count", :description => _("DataSource - Connections In Use"), :db => ["MiddlewareServer"], :responds_to_events => "hawkular_alert", - :options => [ - {:name => :mw_operator, :description => _("Operator"), :values => [">", ">=", "<", "<="]}, - {:name => :value_mw_threshold, :description => _("Number of Datasource connections in use"), :numeric => true} - ]}, - {:name => "mw_ds_timed_out", :description => _("DataSource - Connections Time Out"), :db => ["MiddlewareServer"], :responds_to_events => "hawkular_alert", - :options => [ - {:name => :mw_operator, :description => _("Operator"), :values => [">", ">=", "<", "<="]}, - {:name => :value_mw_threshold, :description => _("Number of Time Out Datasource connections"), :numeric => true} - ]}, - {:name => "mw_ds_average_get_time", :description => _("DataSource - Connection Get Time"), :db => ["MiddlewareServer"], :responds_to_events => "hawkular_alert", - :options => [ - {:name => :mw_operator, :description => _("Operator"), :values => [">", ">=", "<", "<="]}, - {:name => :value_mw_threshold, :description => _("Average Get Time in Datasource connection (ms)"), :numeric => true} - ]}, - {:name => "mw_ds_average_creation_time", :description => _("DataSource - Connection Creation Time"), :db => ["MiddlewareServer"], :responds_to_events => "hawkular_alert", - :options => [ - {:name => :mw_operator, :description => _("Operator"), :values => [">", ">=", "<", "<="]}, - {:name => :value_mw_threshold, :description => _("Average Creation Time in Datasource connection (ms)"), :numeric => true} - ]}, - {:name => "mw_ds_max_wait_time", :description => _("DataSource - Connection Wait Time"), :db => ["MiddlewareServer"], :responds_to_events => "hawkular_alert", - :options => [ - {:name => :mw_operator, :description => _("Operator"), :values => [">", ">=", "<", "<="]}, - {:name => :value_mw_threshold, :description => _("Max Wait Time in Datasource connection (ms)"), :numeric => true} - ]}, - {:name => "mw_ms_topic_delivering_count", :description => _("Messaging - Delivering Message Count"), :db => ["MiddlewareServer"], :responds_to_events => "hawkular_alert", - :options => [ - {:name => :mw_operator, :description => _("Operator"), :values => [">", ">=", "<", "<="]}, - {:name => :value_mw_threshold, :description => _("Number of Delivering Message Count"), :numeric => true} - ]}, - {:name => "mw_ms_topic_durable_message_count", :description => _("Messaging - Durable Message Count"), :db => ["MiddlewareServer"], :responds_to_events => "hawkular_alert", - :options => [ - {:name => :mw_operator, :description => _("Operator"), :values => [">", ">=", "<", "<="]}, - {:name => :value_mw_threshold, :description => _("Number of Durable Message Count"), :numeric => true} - ]}, - {:name => "mw_ms_topic_non_durable_message_count", :description => _("Messaging - Non-durable Message Count"), :db => ["MiddlewareServer"], :responds_to_events => "hawkular_alert", - :options => [ - {:name => :mw_operator, :description => _("Operator"), :values => [">", ">=", "<", "<="]}, - {:name => :value_mw_threshold, :description => _("Number of Non-durable Message Count"), :numeric => true} - ]}, - {:name => "mw_ms_topic_message_count", :description => _("Messaging - Messages Count"), :db => ["MiddlewareServer"], :responds_to_events => "hawkular_alert", - :options => [ - {:name => :mw_operator, :description => _("Operator"), :values => [">", ">=", "<", "<="]}, - {:name => :value_mw_threshold, :description => _("Number of Messages Count"), :numeric => true} - ]}, - {:name => "mw_ms_topic_message_added", :description => _("Messaging - Messages Added"), :db => ["MiddlewareServer"], :responds_to_events => "hawkular_alert", - :options => [ - {:name => :mw_operator, :description => _("Operator"), :values => [">", ">=", "<", "<="]}, - {:name => :value_mw_threshold, :description => _("Number of Messages Added"), :numeric => true} - ]}, - {:name => "mw_ms_topic_durable_subscription_count", :description => _("Messaging - Durable Subscribers"), :db => ["MiddlewareServer"], :responds_to_events => "hawkular_alert", - :options => [ - {:name => :mw_operator, :description => _("Operator"), :values => [">", ">=", "<", "<="]}, - {:name => :value_mw_threshold, :description => _("Number of Durable Subscribers"), :numeric => true} - ]}, - {:name => "mw_ms_topic_non_durable_subscription_count", :description => _("Messaging - Non-durable Subscribers"), :db => ["MiddlewareServer"], :responds_to_events => "hawkular_alert", - :options => [ - {:name => :mw_operator, :description => _("Operator"), :values => [">", ">=", "<", "<="]}, - {:name => :value_mw_threshold, :description => _("Number of Non-durable Subscribers"), :numeric => true} - ]}, - {:name => "mw_ms_topic_subscription_count", :description => _("Messaging - Subscriptions"), :db => ["MiddlewareServer"], :responds_to_events => "hawkular_alert", - :options => [ - {:name => :mw_operator, :description => _("Operator"), :values => [">", ">=", "<", "<="]}, - {:name => :value_mw_threshold, :description => _("Number of Subscriptions"), :numeric => true} - ]}, - {:name => "mw_tx_committed", :description => _("EAP Transactions - Committed"), :db => ["MiddlewareServer"], :responds_to_events => "hawkular_alert", - :options => [ - {:name => :mw_operator, :description => _("Operator"), :values => [">", ">=", "<", "<="]}, - {:name => :value_mw_threshold, :description => _("Number of Comitted Transactions"), :numeric => true, :required => true} - ]}, - {:name => "mw_tx_timeout", :description => _("EAP Transactions - Timed Out"), :db => ["MiddlewareServer"], :responds_to_events => "hawkular_alert", - :options => [ - {:name => :mw_operator, :description => _("Operator"), :values => [">", ">=", "<", "<="]}, - {:name => :value_mw_threshold, :description => _("Number of Timed Out Transactions"), :numeric => true, :required => true} - ]}, - {:name => "mw_tx_heuristics", :description => _("EAP Transactions - Heuristic"), :db => ["MiddlewareServer"], :responds_to_events => "hawkular_alert", - :options => [ - {:name => :mw_operator, :description => _("Operator"), :values => [">", ">=", "<", "<="]}, - {:name => :value_mw_threshold, :description => _("Number of Heuristics"), :numeric => true, :required => true} - ]}, - {:name => "mw_tx_application_rollbacks", :description => _("EAP Transactions - Application Rollbacks"), :db => ["MiddlewareServer"], :responds_to_events => "hawkular_alert", - :options => [ - {:name => :mw_operator, :description => _("Operator"), :values => [">", ">=", "<", "<="]}, - {:name => :value_mw_threshold, :description => _("Number of Application Rollbacks"), :numeric => true, :required => true} - ]}, - {:name => "mw_tx_resource_rollbacks", :description => _("EAP Transactions - Resource Rollbacks"), :db => ["MiddlewareServer"], :responds_to_events => "hawkular_alert", - :options => [ - {:name => :mw_operator, :description => _("Operator"), :values => [">", ">=", "<", "<="]}, - {:name => :value_mw_threshold, :description => _("Number of Resource Rollbacks"), :numeric => true, :required => true} - ]}, - {:name => "mw_tx_aborted", :description => _("EAP Transactions - Aborted"), :db => ["MiddlewareServer"], :responds_to_events => "hawkular_alert", - :options => [ - {:name => :mw_operator, :description => _("Operator"), :values => [">", ">=", "<", "<="]}, - {:name => :value_mw_threshold, :description => _("Number of Aborted Transactions"), :numeric => true, :required => true} - ]}, - {:name => "mw_aggregated_active_web_sessions", :description => _("Web sessions - Active"), :db => ["MiddlewareServer"], :responds_to_events => "hawkular_alert", - :options => [ - {:name => :mw_operator, :description => _("Operator"), :values => [">", ">=", "<", "<="]}, - {:name => :value_mw_threshold, :description => _("Number of active Web sessions"), :numeric => true, :required => true} - ]}, - {:name => "mw_aggregated_expired_web_sessions", :description => _("Web sessions - Expired"), :db => ["MiddlewareServer"], :responds_to_events => "hawkular_alert", - :options => [ - {:name => :mw_operator, :description => _("Operator"), :values => [">", ">=", "<", "<="]}, - {:name => :value_mw_threshold, :description => _("Number of expired Web sessions"), :numeric => true, :required => true} - ]}, - {:name => "mw_aggregated_rejected_web_sessions", :description => _("Web sessions - Rejected"), :db => ["MiddlewareServer"], :responds_to_events => "hawkular_alert", - :options => [ - {:name => :mw_operator, :description => _("Operator"), :values => [">", ">=", "<", "<="]}, - {:name => :value_mw_threshold, :description => _("Number of rejected Web sessions"), :numeric => true, :required => true} - ]}, {:name => "dwh_generic", :description => _("External Prometheus Alerts"), :db => ["ContainerNode", "ExtManagementSystem"], :responds_to_events => "datawarehouse_alert", :options => [], :always_evaluate => true} ] @@ -672,7 +541,7 @@ def self.expression_by_name(name) def self.raw_events @raw_events ||= expression_by_name("event_threshold")[:options].find { |h| h[:name] == :event_types }[:values] + - %w(hawkular_alert datawarehouse_alert) + %w(datawarehouse_alert) end def self.event_alertable?(event) @@ -718,13 +587,9 @@ def evaluate_in_automate(target, inputs = {}) end def evaluate_internal(target, _inputs = {}) - if target.kind_of?(::MiddlewareServer) - method = "evaluate_middleware" - options = _inputs[:ems_event] - else - method = "evaluate_method_#{hash_expression[:eval_method]}" - options = hash_expression[:options] || {} - end + method = "evaluate_method_#{hash_expression[:eval_method]}" + options = hash_expression[:options] || {} + raise "Evaluation method '#{hash_expression[:eval_method]}' does not exist" unless self.respond_to?(method) send(method, target, options) @@ -739,10 +604,6 @@ def evaluate_method_dwh_generic(target, options) target.evaluate_alert(id, options) end - def evaluate_middleware(target, options) - target.evaluate_alert(id, options) - end - # Evaluation methods # def evaluate_method_changed_vm_value(target, options) diff --git a/app/models/miq_event.rb b/app/models/miq_event.rb index d6ae0279cc5..e6894cf1be8 100644 --- a/app/models/miq_event.rb +++ b/app/models/miq_event.rb @@ -14,10 +14,11 @@ class MiqEvent < EventStream } } - SUPPORTED_POLICY_AND_ALERT_CLASSES = [Host, VmOrTemplate, Storage, EmsCluster, ResourcePool, - MiqServer, ExtManagementSystem, - ContainerReplicator, ContainerGroup, ContainerNode, ContainerImage, - MiddlewareServer, PhysicalServer].freeze + SUPPORTED_POLICY_AND_ALERT_CLASSES = [Host, VmOrTemplate, Storage, + EmsCluster, ResourcePool, MiqServer, + ExtManagementSystem, + ContainerReplicator, ContainerGroup, + ContainerNode, ContainerImage, PhysicalServer].freeze def self.raise_evm_event(target, raw_event, inputs = {}, options = {}) # Target may have been deleted if it's a worker diff --git a/spec/models/ems_event_spec.rb b/spec/models/ems_event_spec.rb index 2cb2269e271..360927b3ac3 100644 --- a/spec/models/ems_event_spec.rb +++ b/spec/models/ems_event_spec.rb @@ -1,7 +1,7 @@ describe EmsEvent do context "model" do let(:ems1) { FactoryGirl.create(:ems_kubernetes) } - let(:ems2) { FactoryGirl.create(:ems_hawkular_datawarehouse) } + let(:ems2) { FactoryGirl.create(:ems_kubernetes) } it "Find ems events and generated events for ext management systems" do generated_event = FactoryGirl.create(:ems_event, :ext_management_system => ems1, :generating_ems => ems2) @@ -94,41 +94,6 @@ end end - context ".process_middleware_entities_in_event!" do - let(:middleware_ref) { "hawkular-test-path" } - let(:ems) { FactoryGirl.create(:ems_hawkular) } - let(:middleware_server) do - FactoryGirl.create(:middleware_server, - :ems_ref => middleware_ref, - :name => 'test-server', - :ext_management_system => ems) - end - - let(:event_hash) { {:middleware_type => MiddlewareServer.name, :ems_id => ems.id} } - - before :each do - middleware_server - end - - context "process server_in events" do - it "should link server id to event" do - event_hash[:middleware_ref] = middleware_ref - EmsEvent.process_middleware_entities_in_event!(event_hash) - expect(event_hash[:middleware_server_id]).to eq middleware_server.id - expect(event_hash[:middleware_server_name]).to eq middleware_server.name - end - end - - context "process unknown_server_in events" do - it "should not link server id to event" do - event_hash[:middleware_ref] = 'unknown_id' - EmsEvent.process_middleware_entities_in_event!(event_hash) - expect(event_hash[:middleware_server_id]).to be_nil - expect(event_hash[:middleware_server_name]).to be_nil - end - end - end - context "with availability zones" do before :each do @zone = FactoryGirl.create(:small_environment) diff --git a/spec/models/miq_alert_spec.rb b/spec/models/miq_alert_spec.rb index ba8b65eec29..6f93bad3cbe 100644 --- a/spec/models/miq_alert_spec.rb +++ b/spec/models/miq_alert_spec.rb @@ -559,15 +559,5 @@ 'Validation failed: Notifications Datawarehouse alerts must have a 0 notification frequency' ) end - - it 'Does allow creation of hawkular_alert miq_alerts with delay_next_evaluation > 0 ' do - expect do - FactoryGirl.create( - :miq_alert, - :options => {:notifications => {:delay_next_evaluation => 600, :evm_event => {}}}, - :expression => {:eval_method => "mw_heap_used"} - ) - end.to_not raise_error - end end end