From 62f873e33a5e82d65e0e281aadf912d313bae67d Mon Sep 17 00:00:00 2001 From: Mooli Tayer Date: Mon, 12 Jun 2017 13:47:05 +0300 Subject: [PATCH 1/2] Add Monitoring manager base --- .rubocop_local.yml | 1 + .../manageiq/providers/monitoring_manager.rb | 11 ++++++++++ app/models/miq_region.rb | 4 ++++ .../mixins/has_monitoring_manager_mixin.rb | 21 +++++++++++++++++++ app/models/zone.rb | 4 ++++ config/permissions.tmpl.yml | 1 + config/settings.yml | 1 + lib/vmdb/loggers.rb | 2 ++ spec/models/ext_management_system_spec.rb | 1 + 9 files changed, 46 insertions(+) create mode 100644 app/models/manageiq/providers/monitoring_manager.rb create mode 100644 app/models/mixins/has_monitoring_manager_mixin.rb diff --git a/.rubocop_local.yml b/.rubocop_local.yml index d2f77a1647d..a41921fd1d4 100644 --- a/.rubocop_local.yml +++ b/.rubocop_local.yml @@ -16,6 +16,7 @@ GlobalVars: - $rhevm_log - $kube_log - $mw_log + - $cn_monitoring_log - $scvmm_log - $vim_log - $websocket_log diff --git a/app/models/manageiq/providers/monitoring_manager.rb b/app/models/manageiq/providers/monitoring_manager.rb new file mode 100644 index 00000000000..f53990f9167 --- /dev/null +++ b/app/models/manageiq/providers/monitoring_manager.rb @@ -0,0 +1,11 @@ +module ManageIQ::Providers + class MonitoringManager < BaseManager + def self.ems_type + "monitoring".freeze + end + + def self.description + "Monitoring Manager".freeze + end + end +end diff --git a/app/models/miq_region.rb b/app/models/miq_region.rb index aeff15cf1d3..767034f8952 100644 --- a/app/models/miq_region.rb +++ b/app/models/miq_region.rb @@ -185,6 +185,10 @@ def ems_datawarehouses ext_management_systems.select { |e| e.kind_of? ManageIQ::Providers::DatawarehouseManager } end + def ems_monitors + ext_management_systems.select { |e| e.kind_of? ManageIQ::Providers::MonitoringManager } + end + def ems_configproviders ext_management_systems.select { |e| e.kind_of? ManageIQ::Providers::ConfigurationManager } end diff --git a/app/models/mixins/has_monitoring_manager_mixin.rb b/app/models/mixins/has_monitoring_manager_mixin.rb new file mode 100644 index 00000000000..37939c4899e --- /dev/null +++ b/app/models/mixins/has_monitoring_manager_mixin.rb @@ -0,0 +1,21 @@ +module HasMonitoringManagerMixin + extend ActiveSupport::Concern + + private + + def ensure_monitoring_manager + # monitoring_manager should be defined by child classes. + if try(:monitoring_manager_needed?) + build_monitoring_manager(:parent_manager => self) + monitoring_manager.name = "#{name} Monitoring Manager" + end + ensure_monitoring_manager_properties + end + + def ensure_monitoring_manager_properties + if monitoring_manager + monitoring_manager.zone_id = zone_id + monitoring_manager.provider_region = provider_region + end + end +end diff --git a/app/models/zone.rb b/app/models/zone.rb index d71800fa729..ba400382a5f 100644 --- a/app/models/zone.rb +++ b/app/models/zone.rb @@ -146,6 +146,10 @@ def ems_datawarehouses ext_management_systems.select { |e| e.kind_of? ManageIQ::Providers::DatawarehouseManager } end + def ems_monitors + ext_management_systems.select { |e| e.kind_of? ManageIQ::Providers::MonitoringManager } + end + def ems_configproviders ext_management_systems.select { |e| e.kind_of? ManageIQ::Providers::ConfigurationManager } end diff --git a/config/permissions.tmpl.yml b/config/permissions.tmpl.yml index 8ab0e163290..34b5d56c859 100644 --- a/config/permissions.tmpl.yml +++ b/config/permissions.tmpl.yml @@ -35,6 +35,7 @@ - ems-type:gce_network - ems-type:hawkular - ems-type:hawkular_datawarehouse +- ems-type:monitoring # removed in https://github.com/ManageIQ/manageiq/pull/15506 - ems-type:kubernetes - ems-type:lenovo_ph_infra - ems-type:nuage_network diff --git a/config/settings.yml b/config/settings.yml index 596053d2691..98722bf5a03 100644 --- a/config/settings.yml +++ b/config/settings.yml @@ -857,6 +857,7 @@ :level_rails: info :level_lenovo: info :level_mw: info + :level_cn_monitoring: info :level_kube: info :level_api: info :level_fog: info diff --git a/lib/vmdb/loggers.rb b/lib/vmdb/loggers.rb index b3d79a1fecd..e169956a0c3 100644 --- a/lib/vmdb/loggers.rb +++ b/lib/vmdb/loggers.rb @@ -26,6 +26,7 @@ def self.apply_config(config) apply_config_value(config, $kube_log, :level_kube) apply_config_value(config, $mw_log, :level_mw) apply_config_value(config, $datawarehouse_log, :level_datawarehouse) + apply_config_value(config, $cn_monitoring_log, :level_cn_monitoring) apply_config_value(config, $scvmm_log, :level_scvmm) apply_config_value(config, $api_log, :level_api) apply_config_value(config, $fog_log, :level_fog) @@ -52,6 +53,7 @@ def self.create_loggers $kube_log = create_multicast_logger(path_dir.join("kubernetes.log")) $mw_log = create_multicast_logger(path_dir.join("middleware.log")) $datawarehouse_log = create_multicast_logger(path_dir.join("datawarehouse.log")) + $cn_monitoring_log = create_multicast_logger(path_dir.join("container_monitoring.log")) $scvmm_log = create_multicast_logger(path_dir.join("scvmm.log")) $azure_log = create_multicast_logger(path_dir.join("azure.log")) $api_log = create_multicast_logger(path_dir.join("api.log")) diff --git a/spec/models/ext_management_system_spec.rb b/spec/models/ext_management_system_spec.rb index 5ee574dae8c..878f50900c0 100644 --- a/spec/models/ext_management_system_spec.rb +++ b/spec/models/ext_management_system_spec.rb @@ -34,6 +34,7 @@ "hawkular_datawarehouse" => "Hawkular Datawarehouse", "kubernetes" => "Kubernetes", "openshift" => "OpenShift", + "monitoring" => "Monitoring Manager", # removed in https://github.com/ManageIQ/manageiq/pull/15506 "openstack" => "OpenStack", "openstack_infra" => "OpenStack Platform Director", "openstack_network" => "OpenStack Network", From 302b25d902c3783402338b89e66a96e5d572e2fb Mon Sep 17 00:00:00 2001 From: Mooli Tayer Date: Tue, 13 Jun 2017 18:16:35 +0300 Subject: [PATCH 2/2] Container managers have a Monitoring manager --- app/models/manageiq/providers/container_manager.rb | 1 + 1 file changed, 1 insertion(+) diff --git a/app/models/manageiq/providers/container_manager.rb b/app/models/manageiq/providers/container_manager.rb index dd63f7da6ce..3265c9102b2 100644 --- a/app/models/manageiq/providers/container_manager.rb +++ b/app/models/manageiq/providers/container_manager.rb @@ -1,6 +1,7 @@ module ManageIQ::Providers class ContainerManager < BaseManager include AvailabilityMixin + include HasMonitoringManagerMixin include SupportsFeatureMixin has_many :container_nodes, :foreign_key => :ems_id, :dependent => :destroy