mirror of
https://github.com/apache/cloudstack.git
synced 2025-10-26 08:42:29 +01:00
CLOUDSTACK-3272 Latest changes to add global configuration parameters to control the publishing of events on the message bus
This commit is contained in:
parent
23c7a893e3
commit
4b89a45e57
@ -28,6 +28,7 @@ import javax.inject.Inject;
|
|||||||
import org.apache.log4j.Logger;
|
import org.apache.log4j.Logger;
|
||||||
import org.springframework.beans.factory.NoSuchBeanDefinitionException;
|
import org.springframework.beans.factory.NoSuchBeanDefinitionException;
|
||||||
|
|
||||||
|
import org.apache.cloudstack.framework.config.dao.ConfigurationDao;
|
||||||
import org.apache.cloudstack.framework.events.Event;
|
import org.apache.cloudstack.framework.events.Event;
|
||||||
import org.apache.cloudstack.framework.events.EventBus;
|
import org.apache.cloudstack.framework.events.EventBus;
|
||||||
import org.apache.cloudstack.framework.events.EventBusException;
|
import org.apache.cloudstack.framework.events.EventBusException;
|
||||||
@ -46,6 +47,7 @@ public class UsageEventUtils {
|
|||||||
private static DataCenterDao s_dcDao;
|
private static DataCenterDao s_dcDao;
|
||||||
private static final Logger s_logger = Logger.getLogger(UsageEventUtils.class);
|
private static final Logger s_logger = Logger.getLogger(UsageEventUtils.class);
|
||||||
protected static EventBus s_eventBus = null;
|
protected static EventBus s_eventBus = null;
|
||||||
|
protected static ConfigurationDao s_configDao;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
UsageEventDao usageEventDao;
|
UsageEventDao usageEventDao;
|
||||||
@ -53,6 +55,8 @@ public class UsageEventUtils {
|
|||||||
AccountDao accountDao;
|
AccountDao accountDao;
|
||||||
@Inject
|
@Inject
|
||||||
DataCenterDao dcDao;
|
DataCenterDao dcDao;
|
||||||
|
@Inject
|
||||||
|
ConfigurationDao configDao;
|
||||||
|
|
||||||
public UsageEventUtils() {
|
public UsageEventUtils() {
|
||||||
}
|
}
|
||||||
@ -62,6 +66,7 @@ public class UsageEventUtils {
|
|||||||
s_usageEventDao = usageEventDao;
|
s_usageEventDao = usageEventDao;
|
||||||
s_accountDao = accountDao;
|
s_accountDao = accountDao;
|
||||||
s_dcDao = dcDao;
|
s_dcDao = dcDao;
|
||||||
|
s_configDao = configDao;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void publishUsageEvent(String usageType, long accountId, long zoneId, long resourceId, String resourceName, Long offeringId, Long templateId,
|
public static void publishUsageEvent(String usageType, long accountId, long zoneId, long resourceId, String resourceName, Long offeringId, Long templateId,
|
||||||
@ -161,7 +166,11 @@ public class UsageEventUtils {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private static void publishUsageEvent(String usageEventType, Long accountId, Long zoneId, String resourceType, String resourceUUID) {
|
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);
|
||||||
|
if( !configValue)
|
||||||
|
return;
|
||||||
try {
|
try {
|
||||||
s_eventBus = ComponentContext.getComponent(EventBus.class);
|
s_eventBus = ComponentContext.getComponent(EventBus.class);
|
||||||
} catch (NoSuchBeanDefinitionException nbe) {
|
} catch (NoSuchBeanDefinitionException nbe) {
|
||||||
|
|||||||
@ -27,6 +27,7 @@ import javax.inject.Inject;
|
|||||||
import org.apache.log4j.Logger;
|
import org.apache.log4j.Logger;
|
||||||
import org.springframework.beans.factory.NoSuchBeanDefinitionException;
|
import org.springframework.beans.factory.NoSuchBeanDefinitionException;
|
||||||
|
|
||||||
|
import org.apache.cloudstack.framework.config.dao.ConfigurationDao;
|
||||||
import org.apache.cloudstack.framework.events.EventBus;
|
import org.apache.cloudstack.framework.events.EventBus;
|
||||||
import org.apache.cloudstack.framework.events.EventBusException;
|
import org.apache.cloudstack.framework.events.EventBusException;
|
||||||
|
|
||||||
@ -44,14 +45,17 @@ public class NetworkStateListener implements StateListener<State, Event, Network
|
|||||||
protected UsageEventDao _usageEventDao;
|
protected UsageEventDao _usageEventDao;
|
||||||
@Inject
|
@Inject
|
||||||
protected NetworkDao _networkDao;
|
protected NetworkDao _networkDao;
|
||||||
|
@Inject
|
||||||
|
protected ConfigurationDao _configDao;
|
||||||
|
|
||||||
protected static EventBus s_eventBus = null;
|
protected static EventBus s_eventBus = null;
|
||||||
|
|
||||||
private static final Logger s_logger = Logger.getLogger(NetworkStateListener.class);
|
private static final Logger s_logger = Logger.getLogger(NetworkStateListener.class);
|
||||||
|
|
||||||
public NetworkStateListener(UsageEventDao usageEventDao, NetworkDao networkDao) {
|
public NetworkStateListener(UsageEventDao usageEventDao, NetworkDao networkDao, ConfigurationDao configDao) {
|
||||||
_usageEventDao = usageEventDao;
|
_usageEventDao = usageEventDao;
|
||||||
_networkDao = networkDao;
|
_networkDao = networkDao;
|
||||||
|
_configDao = configDao;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -68,6 +72,11 @@ public class NetworkStateListener implements StateListener<State, Event, Network
|
|||||||
|
|
||||||
private void pubishOnEventBus(String event, String status, Network vo, State oldState, State newState) {
|
private void pubishOnEventBus(String event, String status, Network vo, State oldState, State newState) {
|
||||||
|
|
||||||
|
String configKey = "publish.resource.state.events";
|
||||||
|
String value = _configDao.getValue(configKey);
|
||||||
|
boolean configValue = Boolean.parseBoolean(value);
|
||||||
|
if(!configValue)
|
||||||
|
return;
|
||||||
try {
|
try {
|
||||||
s_eventBus = ComponentContext.getComponent(EventBus.class);
|
s_eventBus = ComponentContext.getComponent(EventBus.class);
|
||||||
} catch (NoSuchBeanDefinitionException nbe) {
|
} catch (NoSuchBeanDefinitionException nbe) {
|
||||||
|
|||||||
@ -574,7 +574,7 @@ public class NetworkOrchestrator extends ManagerBase implements NetworkOrchestra
|
|||||||
|
|
||||||
_agentMgr.registerForHostEvents(this, true, false, true);
|
_agentMgr.registerForHostEvents(this, true, false, true);
|
||||||
|
|
||||||
Network.State.getStateMachine().registerListener(new NetworkStateListener(_usageEventDao, _networksDao));
|
Network.State.getStateMachine().registerListener(new NetworkStateListener(_usageEventDao, _networksDao, _configDao));
|
||||||
|
|
||||||
s_logger.info("Network Manager is configured.");
|
s_logger.info("Network Manager is configured.");
|
||||||
|
|
||||||
|
|||||||
@ -1915,7 +1915,12 @@ public enum Config {
|
|||||||
"timeout in seconds for each Virtual Router command being aggregated. The final aggregation command timeout would be determined by this timeout * commands counts ",
|
"timeout in seconds for each Virtual Router command being aggregated. The final aggregation command timeout would be determined by this timeout * commands counts ",
|
||||||
null),
|
null),
|
||||||
|
|
||||||
ManagementServerVendor("Advanced", ManagementServer.class, String.class, "mgt.server.vendor", "ACS", "the vendor of management server", null);
|
ManagementServerVendor("Advanced", ManagementServer.class, String.class, "mgt.server.vendor", "ACS", "the vendor of management server", null),
|
||||||
|
PublishActionEvent("Advanced", ManagementServer.class, Boolean.class, "publish.action.events", "true", "enable or disable publishing of action events on the event bus", null),
|
||||||
|
PublishAlertEvent("Advanced", ManagementServer.class, Boolean.class, "publish.alert.events", "true", "enable or disable publishing of alert events on the event bus", null),
|
||||||
|
PublishResourceStateEvent("Advanced", ManagementServer.class, Boolean.class, "publish.resource.state.events", "true", "enable or disable publishing of alert events on the event bus", null),
|
||||||
|
PublishUsageEvent("Advanced", ManagementServer.class, Boolean.class, "publish.usage.events", "true", "enable or disable publishing of usage events on the event bus", null),
|
||||||
|
PublishAsynJobEvent("Advanced", ManagementServer.class, Boolean.class, "publish.async.job.events", "true", "enable or disable publishing of usage events on the event bus", null);
|
||||||
|
|
||||||
private final String _category;
|
private final String _category;
|
||||||
private final Class<?> _componentClass;
|
private final Class<?> _componentClass;
|
||||||
|
|||||||
@ -32,9 +32,11 @@ import org.apache.log4j.Logger;
|
|||||||
import org.springframework.beans.factory.NoSuchBeanDefinitionException;
|
import org.springframework.beans.factory.NoSuchBeanDefinitionException;
|
||||||
|
|
||||||
import org.apache.cloudstack.context.CallContext;
|
import org.apache.cloudstack.context.CallContext;
|
||||||
|
import org.apache.cloudstack.framework.config.dao.ConfigurationDao;
|
||||||
import org.apache.cloudstack.framework.events.EventBus;
|
import org.apache.cloudstack.framework.events.EventBus;
|
||||||
import org.apache.cloudstack.framework.events.EventBusException;
|
import org.apache.cloudstack.framework.events.EventBusException;
|
||||||
|
|
||||||
|
import com.cloud.configuration.Config;
|
||||||
import com.cloud.domain.Domain;
|
import com.cloud.domain.Domain;
|
||||||
import com.cloud.event.dao.EventDao;
|
import com.cloud.event.dao.EventDao;
|
||||||
import com.cloud.server.ManagementService;
|
import com.cloud.server.ManagementService;
|
||||||
@ -56,6 +58,7 @@ public class ActionEventUtils {
|
|||||||
protected static UserDao s_userDao;
|
protected static UserDao s_userDao;
|
||||||
protected static EventBus s_eventBus = null;
|
protected static EventBus s_eventBus = null;
|
||||||
protected static EntityManager s_entityMgr;
|
protected static EntityManager s_entityMgr;
|
||||||
|
protected static ConfigurationDao s_configDao;
|
||||||
|
|
||||||
public static final String EventDetails = "event_details";
|
public static final String EventDetails = "event_details";
|
||||||
public static final String EventId = "event_id";
|
public static final String EventId = "event_id";
|
||||||
@ -73,6 +76,8 @@ public class ActionEventUtils {
|
|||||||
ProjectDao projectDao;
|
ProjectDao projectDao;
|
||||||
@Inject
|
@Inject
|
||||||
EntityManager entityMgr;
|
EntityManager entityMgr;
|
||||||
|
@Inject
|
||||||
|
ConfigurationDao configDao;
|
||||||
|
|
||||||
public ActionEventUtils() {
|
public ActionEventUtils() {
|
||||||
}
|
}
|
||||||
@ -84,6 +89,7 @@ public class ActionEventUtils {
|
|||||||
s_userDao = userDao;
|
s_userDao = userDao;
|
||||||
s_projectDao = projectDao;
|
s_projectDao = projectDao;
|
||||||
s_entityMgr = entityMgr;
|
s_entityMgr = entityMgr;
|
||||||
|
s_configDao = configDao;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Long onActionEvent(Long userId, Long accountId, Long domainId, String type, String description) {
|
public static Long onActionEvent(Long userId, Long accountId, Long domainId, String type, String description) {
|
||||||
@ -183,6 +189,11 @@ public class ActionEventUtils {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private static void publishOnEventBus(long userId, long accountId, String eventCategory, String eventType, Event.State state, String description) {
|
private static void publishOnEventBus(long userId, long accountId, String eventCategory, String eventType, Event.State state, String description) {
|
||||||
|
String configKey = Config.PublishActionEvent.key();
|
||||||
|
String value = s_configDao.getValue(configKey);
|
||||||
|
boolean configValue = Boolean.parseBoolean(value);
|
||||||
|
if(!configValue)
|
||||||
|
return;
|
||||||
try {
|
try {
|
||||||
s_eventBus = ComponentContext.getComponent(EventBus.class);
|
s_eventBus = ComponentContext.getComponent(EventBus.class);
|
||||||
} catch (NoSuchBeanDefinitionException nbe) {
|
} catch (NoSuchBeanDefinitionException nbe) {
|
||||||
|
|||||||
@ -29,9 +29,11 @@ import org.apache.log4j.Logger;
|
|||||||
import org.springframework.beans.factory.NoSuchBeanDefinitionException;
|
import org.springframework.beans.factory.NoSuchBeanDefinitionException;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
import org.apache.cloudstack.framework.config.dao.ConfigurationDao;
|
||||||
import org.apache.cloudstack.framework.events.EventBus;
|
import org.apache.cloudstack.framework.events.EventBus;
|
||||||
import org.apache.cloudstack.framework.events.EventBusException;
|
import org.apache.cloudstack.framework.events.EventBusException;
|
||||||
|
|
||||||
|
import com.cloud.configuration.Config;
|
||||||
import com.cloud.dc.DataCenterVO;
|
import com.cloud.dc.DataCenterVO;
|
||||||
import com.cloud.dc.HostPodVO;
|
import com.cloud.dc.HostPodVO;
|
||||||
import com.cloud.dc.dao.DataCenterDao;
|
import com.cloud.dc.dao.DataCenterDao;
|
||||||
@ -46,11 +48,14 @@ public class AlertGenerator {
|
|||||||
private static DataCenterDao s_dcDao;
|
private static DataCenterDao s_dcDao;
|
||||||
private static HostPodDao s_podDao;
|
private static HostPodDao s_podDao;
|
||||||
protected static EventBus s_eventBus = null;
|
protected static EventBus s_eventBus = null;
|
||||||
|
protected static ConfigurationDao s_configDao;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
DataCenterDao dcDao;
|
DataCenterDao dcDao;
|
||||||
@Inject
|
@Inject
|
||||||
HostPodDao podDao;
|
HostPodDao podDao;
|
||||||
|
@Inject
|
||||||
|
ConfigurationDao configDao;
|
||||||
|
|
||||||
public AlertGenerator() {
|
public AlertGenerator() {
|
||||||
}
|
}
|
||||||
@ -62,6 +67,12 @@ public class AlertGenerator {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static void publishAlertOnEventBus(String alertType, long dataCenterId, Long podId, String subject, String body) {
|
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);
|
||||||
|
if(!configValue)
|
||||||
|
return;
|
||||||
try {
|
try {
|
||||||
s_eventBus = ComponentContext.getComponent(EventBus.class);
|
s_eventBus = ComponentContext.getComponent(EventBus.class);
|
||||||
} catch (NoSuchBeanDefinitionException nbe) {
|
} catch (NoSuchBeanDefinitionException nbe) {
|
||||||
|
|||||||
@ -398,7 +398,7 @@ public class IpAddressManagerImpl extends ManagerBase implements IpAddressManage
|
|||||||
AssignIpAddressFromPodVlanSearch.join("vlan", podVlanSearch, podVlanSearch.entity().getId(), AssignIpAddressFromPodVlanSearch.entity().getVlanId(), JoinType.INNER);
|
AssignIpAddressFromPodVlanSearch.join("vlan", podVlanSearch, podVlanSearch.entity().getId(), AssignIpAddressFromPodVlanSearch.entity().getVlanId(), JoinType.INNER);
|
||||||
AssignIpAddressFromPodVlanSearch.done();
|
AssignIpAddressFromPodVlanSearch.done();
|
||||||
|
|
||||||
Network.State.getStateMachine().registerListener(new NetworkStateListener(_usageEventDao, _networksDao));
|
Network.State.getStateMachine().registerListener(new NetworkStateListener(_usageEventDao, _networksDao, _configDao));
|
||||||
|
|
||||||
s_logger.info("Network Manager is configured.");
|
s_logger.info("Network Manager is configured.");
|
||||||
|
|
||||||
|
|||||||
@ -488,7 +488,7 @@ public class StorageManagerImpl extends ManagerBase implements StorageManager, C
|
|||||||
LocalStorageSearch.and("type", LocalStorageSearch.entity().getPoolType(), SearchCriteria.Op.IN);
|
LocalStorageSearch.and("type", LocalStorageSearch.entity().getPoolType(), SearchCriteria.Op.IN);
|
||||||
LocalStorageSearch.done();
|
LocalStorageSearch.done();
|
||||||
|
|
||||||
Volume.State.getStateMachine().registerListener(new VolumeStateListener());
|
Volume.State.getStateMachine().registerListener(new VolumeStateListener(_configDao));
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -22,12 +22,16 @@ import java.util.Date;
|
|||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
|
import javax.inject.Inject;
|
||||||
|
|
||||||
import org.apache.log4j.Logger;
|
import org.apache.log4j.Logger;
|
||||||
import org.springframework.beans.factory.NoSuchBeanDefinitionException;
|
import org.springframework.beans.factory.NoSuchBeanDefinitionException;
|
||||||
|
|
||||||
|
import org.apache.cloudstack.framework.config.dao.ConfigurationDao;
|
||||||
import org.apache.cloudstack.framework.events.EventBus;
|
import org.apache.cloudstack.framework.events.EventBus;
|
||||||
import org.apache.cloudstack.framework.events.EventBusException;
|
import org.apache.cloudstack.framework.events.EventBusException;
|
||||||
|
|
||||||
|
import com.cloud.configuration.Config;
|
||||||
import com.cloud.event.EventCategory;
|
import com.cloud.event.EventCategory;
|
||||||
import com.cloud.server.ManagementService;
|
import com.cloud.server.ManagementService;
|
||||||
import com.cloud.storage.Snapshot;
|
import com.cloud.storage.Snapshot;
|
||||||
@ -40,6 +44,8 @@ import com.cloud.utils.fsm.StateListener;
|
|||||||
public class SnapshotStateListener implements StateListener<State, Event, SnapshotVO> {
|
public class SnapshotStateListener implements StateListener<State, Event, SnapshotVO> {
|
||||||
|
|
||||||
protected static EventBus s_eventBus = null;
|
protected static EventBus s_eventBus = null;
|
||||||
|
@Inject
|
||||||
|
private ConfigurationDao _configDao;
|
||||||
|
|
||||||
private static final Logger s_logger = Logger.getLogger(VolumeStateListener.class);
|
private static final Logger s_logger = Logger.getLogger(VolumeStateListener.class);
|
||||||
|
|
||||||
@ -61,6 +67,11 @@ public class SnapshotStateListener implements StateListener<State, Event, Snapsh
|
|||||||
|
|
||||||
private void pubishOnEventBus(String event, String status, Snapshot vo, State oldState, State newState) {
|
private void pubishOnEventBus(String event, String status, Snapshot vo, State oldState, State newState) {
|
||||||
|
|
||||||
|
String configKey = Config.PublishResourceStateEvent.key();
|
||||||
|
String value = _configDao.getValue(configKey);
|
||||||
|
boolean configValue = Boolean.parseBoolean(value);
|
||||||
|
if(!configValue)
|
||||||
|
return;
|
||||||
try {
|
try {
|
||||||
s_eventBus = ComponentContext.getComponent(EventBus.class);
|
s_eventBus = ComponentContext.getComponent(EventBus.class);
|
||||||
} catch (NoSuchBeanDefinitionException nbe) {
|
} catch (NoSuchBeanDefinitionException nbe) {
|
||||||
|
|||||||
@ -25,9 +25,11 @@ import java.util.Map;
|
|||||||
import org.apache.log4j.Logger;
|
import org.apache.log4j.Logger;
|
||||||
import org.springframework.beans.factory.NoSuchBeanDefinitionException;
|
import org.springframework.beans.factory.NoSuchBeanDefinitionException;
|
||||||
|
|
||||||
|
import org.apache.cloudstack.framework.config.dao.ConfigurationDao;
|
||||||
import org.apache.cloudstack.framework.events.EventBus;
|
import org.apache.cloudstack.framework.events.EventBus;
|
||||||
import org.apache.cloudstack.framework.events.EventBusException;
|
import org.apache.cloudstack.framework.events.EventBusException;
|
||||||
|
|
||||||
|
import com.cloud.configuration.Config;
|
||||||
import com.cloud.event.EventCategory;
|
import com.cloud.event.EventCategory;
|
||||||
import com.cloud.server.ManagementService;
|
import com.cloud.server.ManagementService;
|
||||||
import com.cloud.storage.Volume;
|
import com.cloud.storage.Volume;
|
||||||
@ -39,11 +41,12 @@ import com.cloud.utils.fsm.StateListener;
|
|||||||
public class VolumeStateListener implements StateListener<State, Event, Volume> {
|
public class VolumeStateListener implements StateListener<State, Event, Volume> {
|
||||||
|
|
||||||
protected static EventBus s_eventBus = null;
|
protected static EventBus s_eventBus = null;
|
||||||
|
protected ConfigurationDao _configDao;
|
||||||
|
|
||||||
private static final Logger s_logger = Logger.getLogger(VolumeStateListener.class);
|
private static final Logger s_logger = Logger.getLogger(VolumeStateListener.class);
|
||||||
|
|
||||||
public VolumeStateListener() {
|
public VolumeStateListener(ConfigurationDao configDao) {
|
||||||
|
this._configDao = configDao;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -60,6 +63,11 @@ public class VolumeStateListener implements StateListener<State, Event, Volume>
|
|||||||
|
|
||||||
private void pubishOnEventBus(String event, String status, Volume vo, State oldState, State newState) {
|
private void pubishOnEventBus(String event, String status, Volume vo, State oldState, State newState) {
|
||||||
|
|
||||||
|
String configKey = Config.PublishResourceStateEvent.key();
|
||||||
|
String value = _configDao.getValue(configKey);
|
||||||
|
boolean configValue = Boolean.parseBoolean(value);
|
||||||
|
if(!configValue)
|
||||||
|
return;
|
||||||
try {
|
try {
|
||||||
s_eventBus = ComponentContext.getComponent(EventBus.class);
|
s_eventBus = ComponentContext.getComponent(EventBus.class);
|
||||||
} catch (NoSuchBeanDefinitionException nbe) {
|
} catch (NoSuchBeanDefinitionException nbe) {
|
||||||
|
|||||||
@ -234,6 +234,11 @@ public class DatabaseConfig {
|
|||||||
s_configurationDescriptions.put("snapshot.test.weeks.per.month", "Set it to a smaller value to take more recurring snapshots");
|
s_configurationDescriptions.put("snapshot.test.weeks.per.month", "Set it to a smaller value to take more recurring snapshots");
|
||||||
s_configurationDescriptions.put("snapshot.test.months.per.year", "Set it to a smaller value to take more recurring snapshots");
|
s_configurationDescriptions.put("snapshot.test.months.per.year", "Set it to a smaller value to take more recurring snapshots");
|
||||||
s_configurationDescriptions.put("hypervisor.type", "The type of hypervisor that this deployment will use.");
|
s_configurationDescriptions.put("hypervisor.type", "The type of hypervisor that this deployment will use.");
|
||||||
|
s_configurationDescriptions.put("publish.action.events", "enable or disable to control the publishing of action events on the event bus");
|
||||||
|
s_configurationDescriptions.put("publish.alert.events", "enable or disable to control the publishing of alert events on the event bus");
|
||||||
|
s_configurationDescriptions.put("publish.resource.state.events", "enable or disable to control the publishing of resource state events on the event bus");
|
||||||
|
s_configurationDescriptions.put("publish.usage.events", "enable or disable to control the publishing of usage events on the event bus");
|
||||||
|
s_configurationDescriptions.put("publish.async.job.events", "enable or disable to control the publishing of async job events on the event bus");
|
||||||
|
|
||||||
s_configurationComponents.put("host.stats.interval", "management-server");
|
s_configurationComponents.put("host.stats.interval", "management-server");
|
||||||
s_configurationComponents.put("storage.stats.interval", "management-server");
|
s_configurationComponents.put("storage.stats.interval", "management-server");
|
||||||
@ -306,6 +311,11 @@ public class DatabaseConfig {
|
|||||||
s_configurationComponents.put("snapshot.test.weeks.per.month", "SnapshotManager");
|
s_configurationComponents.put("snapshot.test.weeks.per.month", "SnapshotManager");
|
||||||
s_configurationComponents.put("snapshot.test.months.per.year", "SnapshotManager");
|
s_configurationComponents.put("snapshot.test.months.per.year", "SnapshotManager");
|
||||||
s_configurationComponents.put("hypervisor.type", "ManagementServer");
|
s_configurationComponents.put("hypervisor.type", "ManagementServer");
|
||||||
|
s_configurationComponents.put("publish.action.events", "management-server");
|
||||||
|
s_configurationComponents.put("publish.alert.events", "management-server");
|
||||||
|
s_configurationComponents.put("publish.resource.state.events", "management-server");
|
||||||
|
s_configurationComponents.put("publish.usage.events", "management-server");
|
||||||
|
s_configurationComponents.put("publish.async.job.events", "management-server");
|
||||||
|
|
||||||
s_defaultConfigurationValues.put("host.stats.interval", "60000");
|
s_defaultConfigurationValues.put("host.stats.interval", "60000");
|
||||||
s_defaultConfigurationValues.put("storage.stats.interval", "60000");
|
s_defaultConfigurationValues.put("storage.stats.interval", "60000");
|
||||||
@ -347,6 +357,11 @@ public class DatabaseConfig {
|
|||||||
s_defaultConfigurationValues.put("init", "false");
|
s_defaultConfigurationValues.put("init", "false");
|
||||||
s_defaultConfigurationValues.put("cpu.overprovisioning.factor", "1");
|
s_defaultConfigurationValues.put("cpu.overprovisioning.factor", "1");
|
||||||
s_defaultConfigurationValues.put("mem.overprovisioning.factor", "1");
|
s_defaultConfigurationValues.put("mem.overprovisioning.factor", "1");
|
||||||
|
s_defaultConfigurationValues.put("publish.action.events", "true");
|
||||||
|
s_defaultConfigurationValues.put("publish.alert.events", "true");
|
||||||
|
s_defaultConfigurationValues.put("publish.resource.state.events", "true");
|
||||||
|
s_defaultConfigurationValues.put("publish.usage.events", "true");
|
||||||
|
s_defaultConfigurationValues.put("publish.async.job.events", "true");
|
||||||
}
|
}
|
||||||
|
|
||||||
protected DatabaseConfig() {
|
protected DatabaseConfig() {
|
||||||
|
|||||||
@ -1611,7 +1611,7 @@ public class UserVmManagerImpl extends ManagerBase implements UserVmManager, Vir
|
|||||||
|
|
||||||
_itMgr.registerGuru(VirtualMachine.Type.User, this);
|
_itMgr.registerGuru(VirtualMachine.Type.User, this);
|
||||||
|
|
||||||
VirtualMachine.State.getStateMachine().registerListener(new UserVmStateListener(_usageEventDao, _networkDao, _nicDao, _offeringDao, _vmDao, this));
|
VirtualMachine.State.getStateMachine().registerListener(new UserVmStateListener(_usageEventDao, _networkDao, _nicDao, _offeringDao, _vmDao, this, _configDao));
|
||||||
|
|
||||||
String value = _configDao.getValue(Config.SetVmInternalNameUsingDisplayName.key());
|
String value = _configDao.getValue(Config.SetVmInternalNameUsingDisplayName.key());
|
||||||
_instanceNameFlag = (value == null) ? false : Boolean.parseBoolean(value);
|
_instanceNameFlag = (value == null) ? false : Boolean.parseBoolean(value);
|
||||||
|
|||||||
@ -29,8 +29,10 @@ import com.cloud.vm.dao.UserVmDao;
|
|||||||
import org.apache.log4j.Logger;
|
import org.apache.log4j.Logger;
|
||||||
import org.springframework.beans.factory.NoSuchBeanDefinitionException;
|
import org.springframework.beans.factory.NoSuchBeanDefinitionException;
|
||||||
|
|
||||||
|
import org.apache.cloudstack.framework.config.dao.ConfigurationDao;
|
||||||
import org.apache.cloudstack.framework.events.EventBus;
|
import org.apache.cloudstack.framework.events.EventBus;
|
||||||
|
|
||||||
|
import com.cloud.configuration.Config;
|
||||||
import com.cloud.event.EventCategory;
|
import com.cloud.event.EventCategory;
|
||||||
import com.cloud.event.EventTypes;
|
import com.cloud.event.EventTypes;
|
||||||
import com.cloud.event.UsageEventUtils;
|
import com.cloud.event.UsageEventUtils;
|
||||||
@ -52,17 +54,20 @@ public class UserVmStateListener implements StateListener<State, VirtualMachine.
|
|||||||
@Inject protected ServiceOfferingDao _offeringDao;
|
@Inject protected ServiceOfferingDao _offeringDao;
|
||||||
@Inject protected UserVmDao _userVmDao;
|
@Inject protected UserVmDao _userVmDao;
|
||||||
@Inject protected UserVmManager _userVmMgr;
|
@Inject protected UserVmManager _userVmMgr;
|
||||||
|
@Inject protected ConfigurationDao _configDao;
|
||||||
private static final Logger s_logger = Logger.getLogger(UserVmStateListener.class);
|
private static final Logger s_logger = Logger.getLogger(UserVmStateListener.class);
|
||||||
|
|
||||||
protected static EventBus s_eventBus = null;
|
protected static EventBus s_eventBus = null;
|
||||||
|
|
||||||
public UserVmStateListener(UsageEventDao usageEventDao, NetworkDao networkDao, NicDao nicDao, ServiceOfferingDao offeringDao, UserVmDao userVmDao, UserVmManager userVmMgr) {
|
public UserVmStateListener(UsageEventDao usageEventDao, NetworkDao networkDao, NicDao nicDao, ServiceOfferingDao offeringDao, UserVmDao userVmDao, UserVmManager userVmMgr,
|
||||||
|
ConfigurationDao configDao) {
|
||||||
this._usageEventDao = usageEventDao;
|
this._usageEventDao = usageEventDao;
|
||||||
this._networkDao = networkDao;
|
this._networkDao = networkDao;
|
||||||
this._nicDao = nicDao;
|
this._nicDao = nicDao;
|
||||||
this._offeringDao = offeringDao;
|
this._offeringDao = offeringDao;
|
||||||
this._userVmDao = userVmDao;
|
this._userVmDao = userVmDao;
|
||||||
this._userVmMgr = userVmMgr;
|
this._userVmMgr = userVmMgr;
|
||||||
|
this._configDao = configDao;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -113,6 +118,11 @@ public class UserVmStateListener implements StateListener<State, VirtualMachine.
|
|||||||
|
|
||||||
private void pubishOnEventBus(String event, String status, VirtualMachine vo, VirtualMachine.State oldState, VirtualMachine.State newState) {
|
private void pubishOnEventBus(String event, String status, VirtualMachine vo, VirtualMachine.State oldState, VirtualMachine.State newState) {
|
||||||
|
|
||||||
|
String configKey = Config.PublishResourceStateEvent.key();
|
||||||
|
String value = _configDao.getValue(configKey);
|
||||||
|
boolean configValue = Boolean.parseBoolean(value);
|
||||||
|
if(!configValue)
|
||||||
|
return;
|
||||||
try {
|
try {
|
||||||
s_eventBus = ComponentContext.getComponent(EventBus.class);
|
s_eventBus = ComponentContext.getComponent(EventBus.class);
|
||||||
} catch (NoSuchBeanDefinitionException nbe) {
|
} catch (NoSuchBeanDefinitionException nbe) {
|
||||||
|
|||||||
@ -57,6 +57,7 @@ import org.apache.cloudstack.affinity.dao.AffinityGroupDao;
|
|||||||
import org.apache.cloudstack.affinity.dao.AffinityGroupDomainMapDao;
|
import org.apache.cloudstack.affinity.dao.AffinityGroupDomainMapDao;
|
||||||
import org.apache.cloudstack.affinity.dao.AffinityGroupVMMapDao;
|
import org.apache.cloudstack.affinity.dao.AffinityGroupVMMapDao;
|
||||||
import org.apache.cloudstack.context.CallContext;
|
import org.apache.cloudstack.context.CallContext;
|
||||||
|
import org.apache.cloudstack.framework.config.dao.ConfigurationDao;
|
||||||
import org.apache.cloudstack.framework.messagebus.MessageBus;
|
import org.apache.cloudstack.framework.messagebus.MessageBus;
|
||||||
import org.apache.cloudstack.test.utils.SpringUtils;
|
import org.apache.cloudstack.test.utils.SpringUtils;
|
||||||
|
|
||||||
@ -298,6 +299,11 @@ public class AffinityApiUnitTest {
|
|||||||
return Mockito.mock(MessageBus.class);
|
return Mockito.mock(MessageBus.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Bean
|
||||||
|
public ConfigurationDao configDao() {
|
||||||
|
return Mockito.mock(ConfigurationDao.class);
|
||||||
|
}
|
||||||
|
|
||||||
public static class Library implements TypeFilter {
|
public static class Library implements TypeFilter {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user