diff --git a/server/src/com/cloud/api/ApiServer.java b/server/src/com/cloud/api/ApiServer.java index 4da8b1e1be8..1459dc28325 100644 --- a/server/src/com/cloud/api/ApiServer.java +++ b/server/src/com/cloud/api/ApiServer.java @@ -277,11 +277,10 @@ public class ApiServer extends ManagerBase implements HttpRequestHandler, ApiSer } } // For some reason, the instanceType / instanceId are not abstract, which means we may get null values. - org.apache.cloudstack.framework.events.Event event = new org.apache.cloudstack.framework.events.Event( - "management-server", - EventCategory.ASYNC_JOB_CHANGE_EVENT.getName(), - jobEvent, - (job.getInstanceType() != null ? job.getInstanceType().toString() : "unknown"), null); + String instanceType = job.getInstanceType() != null ? job.getInstanceType() : "unknown"; + String instanceUuid = job.getInstanceId() != null ? ApiDBUtils.findJobInstanceUuid(job) : ""; + org.apache.cloudstack.framework.events.Event event = new org.apache.cloudstack.framework.events.Event("management-server", EventCategory.ASYNC_JOB_CHANGE_EVENT.getName(), + jobEvent, instanceType, instanceUuid); Map eventDescription = new HashMap(); eventDescription.put("command", job.getCmd()); @@ -289,8 +288,8 @@ public class ApiServer extends ManagerBase implements HttpRequestHandler, ApiSer eventDescription.put("account", jobOwner.getUuid()); eventDescription.put("processStatus", "" + job.getProcessStatus()); eventDescription.put("resultCode", "" + job.getResultCode()); - eventDescription.put("instanceUuid", (job.getInstanceId() != null ? ApiDBUtils.findJobInstanceUuid(job) : "" ) ); - eventDescription.put("instanceType", (job.getInstanceType() != null ? job.getInstanceType().toString() : "unknown")); + eventDescription.put("instanceUuid", instanceUuid); + eventDescription.put("instanceType", instanceType); eventDescription.put("commandEventType", cmdEventType); eventDescription.put("jobId", job.getUuid()); eventDescription.put("jobResult", job.getResult()); @@ -638,7 +637,7 @@ public class ApiServer extends ManagerBase implements HttpRequestHandler, ApiSer params.put("id", objectId.toString()); Class entityClass = EventTypes.getEntityClassForEvent(createCmd.getEventType()); if (entityClass != null) - ctx.putContextParameter(entityClass.getName(), objectUuid); + ctx.putContextParameter(entityClass, objectUuid); } else { // Extract the uuid before params are processed and id reflects internal db id objectUuid = params.get(ApiConstants.ID); diff --git a/server/src/com/cloud/api/dispatch/ParamProcessWorker.java b/server/src/com/cloud/api/dispatch/ParamProcessWorker.java index eb3b77a5fa5..3c81ff6b46c 100644 --- a/server/src/com/cloud/api/dispatch/ParamProcessWorker.java +++ b/server/src/com/cloud/api/dispatch/ParamProcessWorker.java @@ -410,7 +410,7 @@ public class ParamProcessWorker implements DispatchWorker { if (internalId != null){ // Populate CallContext for each of the entity. for (final Class entity : entities) { - CallContext.current().putContextParameter(entity.getName(), internalId); + CallContext.current().putContextParameter(entity, internalId); } return internalId; } @@ -434,7 +434,7 @@ public class ParamProcessWorker implements DispatchWorker { } // Return on first non-null Id for the uuid entity if (internalId != null){ - CallContext.current().putContextParameter(entity.getName(), uuid); + CallContext.current().putContextParameter(entity, uuid); break; } } diff --git a/server/src/com/cloud/event/ActionEventUtils.java b/server/src/com/cloud/event/ActionEventUtils.java index 2ac43036c34..29eade21c96 100644 --- a/server/src/com/cloud/event/ActionEventUtils.java +++ b/server/src/com/cloud/event/ActionEventUtils.java @@ -37,7 +37,6 @@ import org.apache.cloudstack.framework.events.EventBus; import org.apache.cloudstack.framework.events.EventBusException; import com.cloud.configuration.Config; -import com.cloud.domain.Domain; import com.cloud.event.dao.EventDao; import com.cloud.server.ManagementService; import com.cloud.user.Account; @@ -204,20 +203,15 @@ public class ActionEventUtils { String entityType = null; String entityUuid = null; CallContext context = CallContext.current(); - Class entityKey = getEntityKey(eventType); - if (entityKey != null){ - //FIXME - Remove this since it should be covered by the else if condition below. - entityUuid = (String)context.getContextParameter(entityKey); - if (entityUuid != null) - entityType = entityKey.getName(); - }else if (EventTypes.getEntityClassForEvent(eventType) != null){ - //Get entity Class(Example - VirtualMachine.class) from the event Type eg. - VM.CREATE - Class entityClass = EventTypes.getEntityClassForEvent(eventType); - + //Get entity Class(Example - VirtualMachine.class) from the event Type eg. - VM.CREATE + Class entityClass = EventTypes.getEntityClassForEvent(eventType); + if (entityClass != null){ //Get uuid from id - if(context.getContextParameter(entityClass.getName()) != null){ + Object param = context.getContextParameter(entityClass); + if(param != null){ try { - entityUuid = getEntityUuid(entityClass, context.getContextParameter(entityClass.getName())); + entityUuid = getEntityUuid(entityClass, param); + entityType = entityClass.getName(); } catch (Exception e){ s_logger.debug("Caught exception while finding entityUUID, moving on"); } @@ -312,22 +306,4 @@ public class ActionEventUtils { } - private static Class getEntityKey(String eventType) - { - // FIXME - Remove this - if (eventType.startsWith("DOMAIN.")) - { - return Domain.class; - } - else if (eventType.startsWith("ACCOUNT.")) - { - return Account.class; - } - else if (eventType.startsWith("USER.")) - { - return User.class; - } - - return null; - } } diff --git a/server/src/com/cloud/storage/snapshot/SnapshotManagerImpl.java b/server/src/com/cloud/storage/snapshot/SnapshotManagerImpl.java index c622c552710..8a21014f641 100644 --- a/server/src/com/cloud/storage/snapshot/SnapshotManagerImpl.java +++ b/server/src/com/cloud/storage/snapshot/SnapshotManagerImpl.java @@ -777,7 +777,7 @@ public class SnapshotManagerImpl extends ManagerBase implements SnapshotManager, } // TODO - Make createSnapshotPolicy - BaseAsyncCreate and remove this. - CallContext.current().putContextParameter(SnapshotPolicy.class.getName(), policy.getUuid()); + CallContext.current().putContextParameter(SnapshotPolicy.class, policy.getUuid()); return policy; } diff --git a/server/src/com/cloud/vm/UserVmManagerImpl.java b/server/src/com/cloud/vm/UserVmManagerImpl.java index ee87ab49623..97eceaf4b43 100644 --- a/server/src/com/cloud/vm/UserVmManagerImpl.java +++ b/server/src/com/cloud/vm/UserVmManagerImpl.java @@ -1212,7 +1212,7 @@ public class UserVmManagerImpl extends ManagerBase implements UserVmManager, Vir if (guestNic == null) { throw new CloudRuntimeException("Unable to add NIC to " + vmInstance); } - CallContext.current().putContextParameter(Nic.class.getName(), guestNic.getUuid()); + CallContext.current().putContextParameter(Nic.class, guestNic.getUuid()); s_logger.debug("Successful addition of " + network + " from " + vmInstance); return _vmDao.findById(vmInstance.getId()); }