diff --git a/engine/components-api/src/main/java/com/cloud/event/UsageEventUtils.java b/engine/components-api/src/main/java/com/cloud/event/UsageEventUtils.java index 1c88c7df124c..c0251bf27e61 100644 --- a/engine/components-api/src/main/java/com/cloud/event/UsageEventUtils.java +++ b/engine/components-api/src/main/java/com/cloud/event/UsageEventUtils.java @@ -28,8 +28,8 @@ import com.cloud.network.Network; import org.apache.commons.collections.MapUtils; import org.springframework.beans.factory.NoSuchBeanDefinitionException; +import org.apache.cloudstack.framework.config.ConfigKey; -import org.apache.cloudstack.framework.config.dao.ConfigurationDao; import org.apache.cloudstack.framework.events.Event; import org.apache.cloudstack.framework.events.EventBus; import org.apache.cloudstack.framework.events.EventDistributor; @@ -50,17 +50,19 @@ public class UsageEventUtils { private static DataCenterDao s_dcDao; protected static Logger LOGGER = LogManager.getLogger(UsageEventUtils.class); protected static EventBus s_eventBus = null; - protected static ConfigurationDao s_configDao; private static EventDistributor eventDistributor; + // Registered/owned by com.cloud.server.ManagementServer#PublishUsageEvent; declared here too so this + // module can read it without a reverse dependency on the server module. + private static final ConfigKey PublishUsageEvent = new ConfigKey<>("Advanced", Boolean.class, "publish.usage.events", "true", + "enable or disable publishing of usage events on the event bus", true); + @Inject UsageEventDao usageEventDao; @Inject AccountDao accountDao; @Inject DataCenterDao dcDao; - @Inject - ConfigurationDao configDao; public UsageEventUtils() { } @@ -70,7 +72,6 @@ void init() { s_usageEventDao = usageEventDao; s_accountDao = accountDao; s_dcDao = dcDao; - s_configDao = configDao; } public static void publishUsageEvent(String usageType, long accountId, long zoneId, long resourceId, String resourceName, Long offeringId, Long templateId, @@ -215,9 +216,7 @@ public static void saveUsageEvent(String usageType, long accountId, long zoneId, } private static void publishUsageEvent(String usageEventType, Long accountId, Long zoneId, String resourceType, String resourceUUID) { - String configKey = "publish.usage.events"; - String value = s_configDao.getValue(configKey); - boolean configValue = Boolean.parseBoolean(value); + boolean configValue = PublishUsageEvent.value(); if( !configValue) return; try { diff --git a/server/src/main/java/com/cloud/event/ActionEventUtils.java b/server/src/main/java/com/cloud/event/ActionEventUtils.java index 0ebb266fd7c2..48a77336fe11 100644 --- a/server/src/main/java/com/cloud/event/ActionEventUtils.java +++ b/server/src/main/java/com/cloud/event/ActionEventUtils.java @@ -32,7 +32,6 @@ import org.apache.cloudstack.api.Identity; import org.apache.cloudstack.api.InternalIdentity; import org.apache.cloudstack.context.CallContext; -import org.apache.cloudstack.framework.config.dao.ConfigurationDao; import org.apache.cloudstack.framework.events.EventDistributor; import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.StringUtils; @@ -40,10 +39,10 @@ import org.apache.logging.log4j.Logger; import org.springframework.beans.factory.NoSuchBeanDefinitionException; -import com.cloud.configuration.Config; import com.cloud.event.dao.EventDao; import com.cloud.projects.Project; import com.cloud.projects.dao.ProjectDao; +import com.cloud.server.ManagementServer; import com.cloud.server.ManagementService; import com.cloud.user.Account; import com.cloud.user.AccountVO; @@ -65,7 +64,6 @@ public class ActionEventUtils { protected static UserDao s_userDao; private static EventDistributor eventDistributor; protected static EntityManager s_entityMgr; - protected static ConfigurationDao s_configDao; public static final String EventDetails = "event_details"; public static final String EventId = "event_id"; @@ -83,8 +81,6 @@ public class ActionEventUtils { ProjectDao projectDao; @Inject EntityManager entityMgr; - @Inject - ConfigurationDao configDao; public ActionEventUtils() { } @@ -96,7 +92,6 @@ void init() { s_userDao = userDao; s_projectDao = projectDao; s_entityMgr = entityMgr; - s_configDao = configDao; } public static Long onActionEvent(Long userId, Long accountId, Long domainId, String type, String description, Long resourceId, String resourceType) { @@ -208,9 +203,7 @@ private static Event persistActionEvent(Long userId, Long accountId, Long domain private static void publishOnEventBus(Event eventRecord, long userId, long accountId, Long domainId, String eventCategory, String eventType, Event.State state, String description, String resourceUuid, String resourceType) { - String configKey = Config.PublishActionEvent.key(); - String value = s_configDao.getValue(configKey); - boolean configValue = Boolean.parseBoolean(value); + boolean configValue = ManagementServer.PublishActionEvent.value(); if(!configValue) return; diff --git a/server/src/main/java/com/cloud/event/AlertGenerator.java b/server/src/main/java/com/cloud/event/AlertGenerator.java index 601bf5e831a4..feb1ca7e9ea7 100644 --- a/server/src/main/java/com/cloud/event/AlertGenerator.java +++ b/server/src/main/java/com/cloud/event/AlertGenerator.java @@ -25,18 +25,17 @@ import javax.annotation.PostConstruct; import javax.inject.Inject; -import org.apache.cloudstack.framework.config.dao.ConfigurationDao; import org.apache.cloudstack.framework.events.EventDistributor; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.springframework.beans.factory.NoSuchBeanDefinitionException; import org.springframework.stereotype.Component; -import com.cloud.configuration.Config; import com.cloud.dc.DataCenterVO; import com.cloud.dc.HostPodVO; import com.cloud.dc.dao.DataCenterDao; import com.cloud.dc.dao.HostPodDao; +import com.cloud.server.ManagementServer; import com.cloud.server.ManagementService; import com.cloud.utils.component.ComponentContext; @@ -46,15 +45,12 @@ public class AlertGenerator { protected static Logger LOGGER = LogManager.getLogger(AlertGenerator.class); private static DataCenterDao s_dcDao; private static HostPodDao s_podDao; - protected static ConfigurationDao s_configDao; protected static EventDistributor eventDistributor; @Inject DataCenterDao dcDao; @Inject HostPodDao podDao; - @Inject - ConfigurationDao configDao; public AlertGenerator() { } @@ -63,13 +59,10 @@ public AlertGenerator() { void init() { s_dcDao = dcDao; s_podDao = podDao; - s_configDao = configDao; } public static void publishAlertOnEventBus(String alertType, long dataCenterId, Long podId, String subject, String body) { - String configKey = Config.PublishAlertEvent.key(); - String value = s_configDao.getValue(configKey); - boolean configValue = Boolean.parseBoolean(value); + boolean configValue = ManagementServer.PublishAlertEvent.value(); if (!configValue) { return; } diff --git a/server/src/test/java/com/cloud/event/ActionEventInterceptorTest.java b/server/src/test/java/com/cloud/event/ActionEventInterceptorTest.java index f655c0d74c0b..208ccd3241db 100644 --- a/server/src/test/java/com/cloud/event/ActionEventInterceptorTest.java +++ b/server/src/test/java/com/cloud/event/ActionEventInterceptorTest.java @@ -17,7 +17,6 @@ package com.cloud.event; -import com.cloud.configuration.Config; import com.cloud.event.dao.EventDao; import com.cloud.projects.dao.ProjectDao; import com.cloud.user.Account; @@ -150,7 +149,6 @@ public void setup() throws Exception { */ public void setupCommonMocks() throws Exception { //Some basic mocks. - Mockito.when(configDao.getValue(Config.PublishActionEvent.key())).thenReturn("true"); componentContextMocked = Mockito.mockStatic(ComponentContext.class); Mockito.when(ComponentContext.getComponent(EventBus.class)).thenReturn(eventBus); persistedEvents = new ArrayList<>(); diff --git a/server/src/test/java/com/cloud/event/ActionEventUtilsTest.java b/server/src/test/java/com/cloud/event/ActionEventUtilsTest.java index aba8acf59c26..39985cd05c03 100644 --- a/server/src/test/java/com/cloud/event/ActionEventUtilsTest.java +++ b/server/src/test/java/com/cloud/event/ActionEventUtilsTest.java @@ -43,7 +43,6 @@ import org.mockito.junit.MockitoJUnitRunner; import org.mockito.stubbing.Answer; -import com.cloud.configuration.Config; import com.cloud.event.dao.EventDao; import com.cloud.network.IpAddress; import com.cloud.projects.dao.ProjectDao; @@ -148,7 +147,6 @@ public void setup() throws Exception { */ public void setupCommonMocks() throws Exception { //Some basic mocks. - Mockito.when(configDao.getValue(Config.PublishActionEvent.key())).thenReturn("true"); componentContextMocked = Mockito.mockStatic(ComponentContext.class); componentContextMocked.when(() -> ComponentContext.getComponent(EventDistributor.class)).thenReturn(eventDistributor);