You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by ki...@apache.org on 2014/01/08 14:41:21 UTC
[1/3] git commit: updated refs/heads/master to 3e45dfb
Updated Branches:
refs/heads/4.3 c3e6444ad -> 55a9b5d2a
refs/heads/master 00e67f57e -> 3e45dfb94
CLOUDSTACK-5742 Add usage event detials for vm state transitions when using custom compute offering.
Conflicts:
server/src/com/cloud/vm/UserVmManagerImpl.java
server/src/com/cloud/vm/UserVmStateListener.java
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/776b5059
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/776b5059
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/776b5059
Branch: refs/heads/master
Commit: 776b5059fbd3f0ac403e52e6390087b06a46d8b3
Parents: 00e67f5
Author: Bharat Kumar <bh...@citrix.com>
Authored: Tue Jan 7 19:54:59 2014 +0530
Committer: Kishan Kavala <ki...@cloud.com>
Committed: Wed Jan 8 19:10:39 2014 +0530
----------------------------------------------------------------------
server/src/com/cloud/vm/UserVmManagerImpl.java | 5 +-
.../src/com/cloud/vm/UserVmStateListener.java | 64 +++++++++++++-------
2 files changed, 46 insertions(+), 23 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/776b5059/server/src/com/cloud/vm/UserVmManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/vm/UserVmManagerImpl.java b/server/src/com/cloud/vm/UserVmManagerImpl.java
index 0ec392d..5601118 100755
--- a/server/src/com/cloud/vm/UserVmManagerImpl.java
+++ b/server/src/com/cloud/vm/UserVmManagerImpl.java
@@ -371,6 +371,8 @@ public class UserVmManagerImpl extends ManagerBase implements UserVmManager, Vir
@Inject
protected NicDao _nicDao;
@Inject
+ protected ServiceOfferingDao _offerringDao;
+ @Inject
protected VpcDao _vpcDao;
@Inject
protected RulesManager _rulesMgr;
@@ -1618,7 +1620,8 @@ public class UserVmManagerImpl extends ManagerBase implements UserVmManager, Vir
_itMgr.registerGuru(VirtualMachine.Type.User, this);
- VirtualMachine.State.getStateMachine().registerListener(new UserVmStateListener(_usageEventDao, _networkDao, _nicDao));
+ VirtualMachine.State.getStateMachine().registerListener(
+ new UserVmStateListener(_usageEventDao, _networkDao, _nicDao, _offeringDao));
String value = _configDao.getValue(Config.SetVmInternalNameUsingDisplayName.key());
_instanceNameFlag = (value == null) ? false : Boolean.parseBoolean(value);
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/776b5059/server/src/com/cloud/vm/UserVmStateListener.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/vm/UserVmStateListener.java b/server/src/com/cloud/vm/UserVmStateListener.java
index a51b5ef..68b98f5 100644
--- a/server/src/com/cloud/vm/UserVmStateListener.java
+++ b/server/src/com/cloud/vm/UserVmStateListener.java
@@ -32,32 +32,38 @@ import org.apache.cloudstack.framework.events.EventBus;
import com.cloud.event.EventCategory;
import com.cloud.event.EventTypes;
import com.cloud.event.UsageEventUtils;
+import com.cloud.event.UsageEventVO;
import com.cloud.event.dao.UsageEventDao;
import com.cloud.network.dao.NetworkDao;
import com.cloud.network.dao.NetworkVO;
-import com.cloud.server.ManagementService;
+import com.cloud.server.ManagementServer;
+import com.cloud.service.ServiceOfferingVO;
+import com.cloud.service.dao.ServiceOfferingDao;
import com.cloud.utils.component.ComponentContext;
import com.cloud.utils.fsm.StateListener;
import com.cloud.vm.VirtualMachine.Event;
import com.cloud.vm.VirtualMachine.State;
import com.cloud.vm.dao.NicDao;
+import com.cloud.vm.dao.UserVmDetailsDao;
+import org.apache.cloudstack.framework.events.EventBus;
+import org.apache.log4j.Logger;
+import org.springframework.beans.factory.NoSuchBeanDefinitionException;
public class UserVmStateListener implements StateListener<State, VirtualMachine.Event, VirtualMachine> {
- @Inject
- protected UsageEventDao _usageEventDao;
- @Inject
- protected NetworkDao _networkDao;
- @Inject
- protected NicDao _nicDao;
+ @Inject protected UsageEventDao _usageEventDao;
+ @Inject protected NetworkDao _networkDao;
+ @Inject protected NicDao _nicDao;
+ @Inject protected ServiceOfferingDao _offeringDao;
private static final Logger s_logger = Logger.getLogger(UserVmStateListener.class);
- protected static EventBus s_eventBus = null;
-
- public UserVmStateListener(UsageEventDao usageEventDao, NetworkDao networkDao, NicDao nicDao) {
- _usageEventDao = usageEventDao;
- _networkDao = networkDao;
- _nicDao = nicDao;
+ protected static EventBus _eventBus = null;
+
+ public UserVmStateListener(UsageEventDao usageEventDao, NetworkDao networkDao, NicDao nicDao, ServiceOfferingDao offeringDao) {
+ this._usageEventDao = usageEventDao;
+ this._networkDao = networkDao;
+ this._nicDao = nicDao;
+ this._offeringDao = offeringDao;
}
@Override
@@ -79,14 +85,11 @@ public class UserVmStateListener implements StateListener<State, VirtualMachine.
pubishOnEventBus(event.name(), "postStateTransitionEvent", vo, oldState, newState);
if (VirtualMachine.State.isVmCreated(oldState, event, newState)) {
- UsageEventUtils.publishUsageEvent(EventTypes.EVENT_VM_CREATE, vo.getAccountId(), vo.getDataCenterId(), vo.getId(), vo.getHostName(),
- vo.getServiceOfferingId(), vo.getTemplateId(), vo.getHypervisorType().toString(), vo.getClass().getName(), vo.getUuid());
+ generateUsageEvent(vo.getServiceOfferingId(), vo, EventTypes.EVENT_VM_CREATE);
} else if (VirtualMachine.State.isVmStarted(oldState, event, newState)) {
- UsageEventUtils.publishUsageEvent(EventTypes.EVENT_VM_START, vo.getAccountId(), vo.getDataCenterId(), vo.getId(), vo.getHostName(),
- vo.getServiceOfferingId(), vo.getTemplateId(), vo.getHypervisorType().toString(), vo.getClass().getName(), vo.getUuid());
+ generateUsageEvent(vo.getServiceOfferingId(), vo, EventTypes.EVENT_VM_START);
} else if (VirtualMachine.State.isVmStopped(oldState, event, newState)) {
- UsageEventUtils.publishUsageEvent(EventTypes.EVENT_VM_STOP, vo.getAccountId(), vo.getDataCenterId(), vo.getId(), vo.getHostName(), vo.getClass().getName(),
- vo.getUuid());
+ generateUsageEvent(vo.getServiceOfferingId(), vo, EventTypes.EVENT_VM_STOP);
List<NicVO> nics = _nicDao.listByVmId(vo.getId());
for (NicVO nic : nics) {
NetworkVO network = _networkDao.findById(nic.getNetworkId());
@@ -94,12 +97,29 @@ public class UserVmStateListener implements StateListener<State, VirtualMachine.
Long.toString(nic.getId()), network.getNetworkOfferingId(), null, 0L, vo.getClass().getName(), vo.getUuid());
}
} else if (VirtualMachine.State.isVmDestroyed(oldState, event, newState)) {
- UsageEventUtils.publishUsageEvent(EventTypes.EVENT_VM_DESTROY, vo.getAccountId(), vo.getDataCenterId(), vo.getId(), vo.getHostName(),
- vo.getServiceOfferingId(), vo.getTemplateId(), vo.getHypervisorType().toString(), vo.getClass().getName(), vo.getUuid());
- }
+ generateUsageEvent(vo.getServiceOfferingId(), vo, EventTypes.EVENT_VM_DESTROY);
+ }
return true;
}
+ private void generateUsageEvent(Long serviceOfferingId,VirtualMachine vm, String eventType){
+ ServiceOfferingVO serviceOffering = _offeringDao.findById(vm.getId(), serviceOfferingId);
+ if (!serviceOffering.isDynamic()) {
+ UsageEventUtils.publishUsageEvent(eventType, vm.getAccountId(), vm.getDataCenterId(), vm.getId(),
+ vm.getHostName(), serviceOffering.getId(), vm.getTemplateId(), vm.getHypervisorType().toString(),
+ VirtualMachine.class.getName(), vm.getUuid());
+ }
+ else {
+ Map<String, String> customParameters = new HashMap<String, String>();
+ customParameters.put(UsageEventVO.DynamicParameters.cpuNumber.name(), serviceOffering.getCpu().toString());
+ customParameters.put(UsageEventVO.DynamicParameters.cpuSpeed.name(), serviceOffering.getSpeed().toString());
+ customParameters.put(UsageEventVO.DynamicParameters.memory.name(), serviceOffering.getRamSize().toString());
+ UsageEventUtils.publishUsageEvent(eventType, vm.getAccountId(), vm.getDataCenterId(), vm.getId(),
+ vm.getHostName(), serviceOffering.getId(), vm.getTemplateId(), vm.getHypervisorType().toString(),
+ VirtualMachine.class.getName(), vm.getUuid(), customParameters);
+ }
+ }
+
private void pubishOnEventBus(String event, String status, VirtualMachine vo, VirtualMachine.State oldState, VirtualMachine.State newState) {
try {
[3/3] git commit: updated refs/heads/4.3 to 55a9b5d
Posted by ki...@apache.org.
CLOUDSTACK-5742 Add usage event detials for vm state transitions when using custom compute offering.
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/55a9b5d2
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/55a9b5d2
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/55a9b5d2
Branch: refs/heads/4.3
Commit: 55a9b5d2a2dae4883d52506c6f6a2d5dac4c91cd
Parents: c3e6444
Author: Bharat Kumar <bh...@citrix.com>
Authored: Tue Jan 7 19:54:59 2014 +0530
Committer: Kishan Kavala <ki...@cloud.com>
Committed: Wed Jan 8 19:11:01 2014 +0530
----------------------------------------------------------------------
server/src/com/cloud/vm/UserVmManagerImpl.java | 4 +-
.../src/com/cloud/vm/UserVmStateListener.java | 41 ++++++++++++++------
2 files changed, 32 insertions(+), 13 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/55a9b5d2/server/src/com/cloud/vm/UserVmManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/vm/UserVmManagerImpl.java b/server/src/com/cloud/vm/UserVmManagerImpl.java
index 23df880..38c7863 100755
--- a/server/src/com/cloud/vm/UserVmManagerImpl.java
+++ b/server/src/com/cloud/vm/UserVmManagerImpl.java
@@ -371,6 +371,8 @@ public class UserVmManagerImpl extends ManagerBase implements UserVmManager, Vir
@Inject
protected NicDao _nicDao;
@Inject
+ protected ServiceOfferingDao _offerringDao;
+ @Inject
protected VpcDao _vpcDao;
@Inject
protected RulesManager _rulesMgr;
@@ -1659,7 +1661,7 @@ public class UserVmManagerImpl extends ManagerBase implements UserVmManager, Vir
_itMgr.registerGuru(VirtualMachine.Type.User, this);
VirtualMachine.State.getStateMachine().registerListener(
- new UserVmStateListener(_usageEventDao, _networkDao, _nicDao));
+ new UserVmStateListener(_usageEventDao, _networkDao, _nicDao, _offeringDao));
String value = _configDao.getValue(Config.SetVmInternalNameUsingDisplayName.key());
_instanceNameFlag = (value == null)?false:Boolean.parseBoolean(value);
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/55a9b5d2/server/src/com/cloud/vm/UserVmStateListener.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/vm/UserVmStateListener.java b/server/src/com/cloud/vm/UserVmStateListener.java
index 6c0c5e9..f783ffa 100644
--- a/server/src/com/cloud/vm/UserVmStateListener.java
+++ b/server/src/com/cloud/vm/UserVmStateListener.java
@@ -19,16 +19,20 @@ package com.cloud.vm;
import com.cloud.event.EventCategory;
import com.cloud.event.EventTypes;
import com.cloud.event.UsageEventUtils;
+import com.cloud.event.UsageEventVO;
import com.cloud.event.dao.UsageEventDao;
import com.cloud.network.Network;
import com.cloud.network.dao.NetworkDao;
import com.cloud.network.dao.NetworkVO;
import com.cloud.server.ManagementServer;
+import com.cloud.service.ServiceOfferingVO;
+import com.cloud.service.dao.ServiceOfferingDao;
import com.cloud.utils.component.ComponentContext;
import com.cloud.utils.fsm.StateListener;
import com.cloud.vm.VirtualMachine.Event;
import com.cloud.vm.VirtualMachine.State;
import com.cloud.vm.dao.NicDao;
+import com.cloud.vm.dao.UserVmDetailsDao;
import org.apache.cloudstack.framework.events.EventBus;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.NoSuchBeanDefinitionException;
@@ -45,14 +49,16 @@ public class UserVmStateListener implements StateListener<State, VirtualMachine.
@Inject protected UsageEventDao _usageEventDao;
@Inject protected NetworkDao _networkDao;
@Inject protected NicDao _nicDao;
+ @Inject protected ServiceOfferingDao _offeringDao;
private static final Logger s_logger = Logger.getLogger(UserVmStateListener.class);
protected static EventBus _eventBus = null;
- public UserVmStateListener(UsageEventDao usageEventDao, NetworkDao networkDao, NicDao nicDao) {
+ public UserVmStateListener(UsageEventDao usageEventDao, NetworkDao networkDao, NicDao nicDao, ServiceOfferingDao offeringDao) {
this._usageEventDao = usageEventDao;
this._networkDao = networkDao;
this._nicDao = nicDao;
+ this._offeringDao = offeringDao;
}
@Override
@@ -74,16 +80,11 @@ public class UserVmStateListener implements StateListener<State, VirtualMachine.
pubishOnEventBus(event.name(), "postStateTransitionEvent", vo, oldState, newState);
if (VirtualMachine.State.isVmCreated(oldState, event, newState)) {
- UsageEventUtils.publishUsageEvent(EventTypes.EVENT_VM_CREATE, vo.getAccountId(), vo.getDataCenterId(), vo.getId(),
- vo.getHostName(), vo.getServiceOfferingId(),vo.getTemplateId(), vo.getHypervisorType().toString(),
- vo.getClass().getName(), vo.getUuid());
+ generateUsageEvent(vo.getServiceOfferingId(), vo, EventTypes.EVENT_VM_CREATE);
} else if (VirtualMachine.State.isVmStarted(oldState, event, newState)) {
- UsageEventUtils.publishUsageEvent(EventTypes.EVENT_VM_START, vo.getAccountId(), vo.getDataCenterId(), vo.getId(),
- vo.getHostName(), vo.getServiceOfferingId(),vo.getTemplateId(), vo.getHypervisorType().toString(),
- vo.getClass().getName(), vo.getUuid());
+ generateUsageEvent(vo.getServiceOfferingId(), vo, EventTypes.EVENT_VM_START);
} else if (VirtualMachine.State.isVmStopped(oldState, event, newState)) {
- UsageEventUtils.publishUsageEvent(EventTypes.EVENT_VM_STOP, vo.getAccountId(), vo.getDataCenterId(), vo.getId(), vo.getHostName(),
- vo.getClass().getName(), vo.getUuid());
+ generateUsageEvent(vo.getServiceOfferingId(), vo, EventTypes.EVENT_VM_STOP);
List<NicVO> nics = _nicDao.listByVmId(vo.getId());
for (NicVO nic : nics) {
NetworkVO network = _networkDao.findById(nic.getNetworkId());
@@ -91,13 +92,29 @@ public class UserVmStateListener implements StateListener<State, VirtualMachine.
vo.getId(), Long.toString(nic.getId()),network.getNetworkOfferingId(), null, 0L, vo.getClass().getName(), vo.getUuid());
}
} else if (VirtualMachine.State.isVmDestroyed(oldState, event, newState)) {
- UsageEventUtils.publishUsageEvent(EventTypes.EVENT_VM_DESTROY, vo.getAccountId(), vo.getDataCenterId(), vo.getId(),
- vo.getHostName(), vo.getServiceOfferingId(),vo.getTemplateId(), vo.getHypervisorType().toString(),
- vo.getClass().getName(), vo.getUuid());
+ generateUsageEvent(vo.getServiceOfferingId(), vo, EventTypes.EVENT_VM_DESTROY);
}
return true;
}
+ private void generateUsageEvent(Long serviceOfferingId,VirtualMachine vm, String eventType){
+ ServiceOfferingVO serviceOffering = _offeringDao.findById(vm.getId(), serviceOfferingId);
+ if (!serviceOffering.isDynamic()) {
+ UsageEventUtils.publishUsageEvent(eventType, vm.getAccountId(), vm.getDataCenterId(), vm.getId(),
+ vm.getHostName(), serviceOffering.getId(), vm.getTemplateId(), vm.getHypervisorType().toString(),
+ VirtualMachine.class.getName(), vm.getUuid());
+ }
+ else {
+ Map<String, String> customParameters = new HashMap<String, String>();
+ customParameters.put(UsageEventVO.DynamicParameters.cpuNumber.name(), serviceOffering.getCpu().toString());
+ customParameters.put(UsageEventVO.DynamicParameters.cpuSpeed.name(), serviceOffering.getSpeed().toString());
+ customParameters.put(UsageEventVO.DynamicParameters.memory.name(), serviceOffering.getRamSize().toString());
+ UsageEventUtils.publishUsageEvent(eventType, vm.getAccountId(), vm.getDataCenterId(), vm.getId(),
+ vm.getHostName(), serviceOffering.getId(), vm.getTemplateId(), vm.getHypervisorType().toString(),
+ VirtualMachine.class.getName(), vm.getUuid(), customParameters);
+ }
+ }
+
private void pubishOnEventBus(String event, String status, VirtualMachine vo, VirtualMachine.State oldState, VirtualMachine.State newState) {
try {
[2/3] git commit: updated refs/heads/master to 3e45dfb
Posted by ki...@apache.org.
CLOUDSTACK-5742 Add usage event detials for vm state transitions when using custom compute offering.
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/3e45dfb9
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/3e45dfb9
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/3e45dfb9
Branch: refs/heads/master
Commit: 3e45dfb9421e5e21ba56ed3b55d685c3f742246f
Parents: 776b505
Author: Kishan Kavala <ki...@cloud.com>
Authored: Wed Jan 8 19:10:02 2014 +0530
Committer: Kishan Kavala <ki...@cloud.com>
Committed: Wed Jan 8 19:10:40 2014 +0530
----------------------------------------------------------------------
server/src/com/cloud/vm/UserVmStateListener.java | 12 ++++--------
1 file changed, 4 insertions(+), 8 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/3e45dfb9/server/src/com/cloud/vm/UserVmStateListener.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/vm/UserVmStateListener.java b/server/src/com/cloud/vm/UserVmStateListener.java
index 68b98f5..2f6be6c 100644
--- a/server/src/com/cloud/vm/UserVmStateListener.java
+++ b/server/src/com/cloud/vm/UserVmStateListener.java
@@ -24,6 +24,7 @@ import java.util.Map;
import javax.inject.Inject;
+import com.cloud.server.ManagementService;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.NoSuchBeanDefinitionException;
@@ -36,7 +37,6 @@ import com.cloud.event.UsageEventVO;
import com.cloud.event.dao.UsageEventDao;
import com.cloud.network.dao.NetworkDao;
import com.cloud.network.dao.NetworkVO;
-import com.cloud.server.ManagementServer;
import com.cloud.service.ServiceOfferingVO;
import com.cloud.service.dao.ServiceOfferingDao;
import com.cloud.utils.component.ComponentContext;
@@ -44,10 +44,6 @@ import com.cloud.utils.fsm.StateListener;
import com.cloud.vm.VirtualMachine.Event;
import com.cloud.vm.VirtualMachine.State;
import com.cloud.vm.dao.NicDao;
-import com.cloud.vm.dao.UserVmDetailsDao;
-import org.apache.cloudstack.framework.events.EventBus;
-import org.apache.log4j.Logger;
-import org.springframework.beans.factory.NoSuchBeanDefinitionException;
public class UserVmStateListener implements StateListener<State, VirtualMachine.Event, VirtualMachine> {
@@ -57,8 +53,8 @@ public class UserVmStateListener implements StateListener<State, VirtualMachine.
@Inject protected ServiceOfferingDao _offeringDao;
private static final Logger s_logger = Logger.getLogger(UserVmStateListener.class);
- protected static EventBus _eventBus = null;
-
+ protected static EventBus s_eventBus = null;
+
public UserVmStateListener(UsageEventDao usageEventDao, NetworkDao networkDao, NicDao nicDao, ServiceOfferingDao offeringDao) {
this._usageEventDao = usageEventDao;
this._networkDao = networkDao;
@@ -98,7 +94,7 @@ public class UserVmStateListener implements StateListener<State, VirtualMachine.
}
} else if (VirtualMachine.State.isVmDestroyed(oldState, event, newState)) {
generateUsageEvent(vo.getServiceOfferingId(), vo, EventTypes.EVENT_VM_DESTROY);
- }
+ }
return true;
}