mirror of https://github.com/apache/cloudstack.git
- changes to publish UUID instead of id's in the event message
- action, usage events will publish resource name, resource UUID in the message
This commit is contained in:
parent
1a2822d3bf
commit
73e6efdecd
|
|
@ -16,13 +16,13 @@
|
|||
// under the License.
|
||||
package com.cloud.event;
|
||||
|
||||
import java.lang.annotation.Retention;
|
||||
import java.lang.annotation.Target;
|
||||
|
||||
import static java.lang.annotation.ElementType.METHOD;
|
||||
import static java.lang.annotation.ElementType.TYPE;
|
||||
import static java.lang.annotation.RetentionPolicy.RUNTIME;
|
||||
|
||||
import java.lang.annotation.Retention;
|
||||
import java.lang.annotation.Target;
|
||||
|
||||
@Target({ TYPE, METHOD })
|
||||
@Retention(RUNTIME)
|
||||
public @interface ActionEvent {
|
||||
|
|
@ -33,4 +33,5 @@ public @interface ActionEvent {
|
|||
String eventType();
|
||||
|
||||
String eventDescription();
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -157,9 +157,13 @@ public class RabbitMQEventBus implements EventBus {
|
|||
if (queueDetails != null) {
|
||||
EventSubscriber subscriber = queueDetails.third();
|
||||
String routingKey = envelope.getRoutingKey();
|
||||
Event event = new Event(null, getEventCategoryFromRoutingKey(routingKey),
|
||||
getEventTypeFromRoutingKey(routingKey), null, null);
|
||||
event.setDescription(body.toString());
|
||||
String eventSource = getEventSourceFromRoutingKey(routingKey);
|
||||
String eventCategory = getEventCategoryFromRoutingKey(routingKey);
|
||||
String eventType = getEventTypeFromRoutingKey(routingKey);
|
||||
String resourceType = getResourceTypeFromRoutingKey(routingKey);
|
||||
Event event = new Event(eventSource, eventCategory, eventType,
|
||||
resourceType, null);
|
||||
event.setDescription(new String(body));
|
||||
|
||||
// deliver the event to call back object provided by subscriber
|
||||
subscriber.onEvent(event);
|
||||
|
|
@ -399,6 +403,16 @@ public class RabbitMQEventBus implements EventBus {
|
|||
return keyParts[0];
|
||||
}
|
||||
|
||||
private String getResourceTypeFromRoutingKey(String routingKey) {
|
||||
String[] keyParts = routingKey.split("\\.");
|
||||
return keyParts[3];
|
||||
}
|
||||
|
||||
private String getResourceUUIDFromRoutingKey(String routingKey) {
|
||||
String[] keyParts = routingKey.split("\\.");
|
||||
return keyParts[4];
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getName() {
|
||||
return _name;
|
||||
|
|
@ -508,9 +522,15 @@ public class RabbitMQEventBus implements EventBus {
|
|||
if (subscriberDetails != null) {
|
||||
EventSubscriber subscriber = subscriberDetails.third();
|
||||
String routingKey = envelope.getRoutingKey();
|
||||
Event event = new Event(null, getEventCategoryFromRoutingKey(routingKey),
|
||||
getEventTypeFromRoutingKey(routingKey), null, null);
|
||||
event.setDescription(body.toString());
|
||||
String eventSource = getEventSourceFromRoutingKey(routingKey);
|
||||
String eventCategory = getEventCategoryFromRoutingKey(routingKey);
|
||||
String eventType = getEventTypeFromRoutingKey(routingKey);
|
||||
String resourceType = getResourceTypeFromRoutingKey(routingKey);
|
||||
|
||||
// create event object from the message details obtained from AMQP server
|
||||
Event event = new Event(eventSource, eventCategory, eventType,
|
||||
resourceType, null);
|
||||
event.setDescription(new String(body));
|
||||
|
||||
// deliver the event to call back object provided by subscriber
|
||||
subscriber.onEvent(event);
|
||||
|
|
|
|||
|
|
@ -18,6 +18,7 @@ package com.cloud.network.guru;
|
|||
|
||||
import javax.ejb.Local;
|
||||
|
||||
import com.cloud.event.ActionEventUtils;
|
||||
import org.apache.log4j.Logger;
|
||||
|
||||
import com.cloud.dc.DataCenter;
|
||||
|
|
@ -25,7 +26,6 @@ import com.cloud.dc.DataCenter.NetworkType;
|
|||
import com.cloud.deploy.DeployDestination;
|
||||
import com.cloud.deploy.DeploymentPlan;
|
||||
import com.cloud.event.EventTypes;
|
||||
import com.cloud.event.EventUtils;
|
||||
import com.cloud.event.EventVO;
|
||||
import com.cloud.exception.InsufficientVirtualNetworkCapcityException;
|
||||
import com.cloud.network.Network;
|
||||
|
|
@ -95,7 +95,7 @@ public class OvsGuestNetworkGuru extends GuestNetworkGuru {
|
|||
throw new InsufficientVirtualNetworkCapcityException("Unable to allocate vnet as a part of network " + network + " implement ", DataCenter.class, dcId);
|
||||
}
|
||||
implemented.setBroadcastUri(BroadcastDomainType.Vswitch.toUri(vnet));
|
||||
EventUtils.saveActionEvent(UserContext.current().getCallerUserId(), network.getAccountId(), EventVO.LEVEL_INFO, EventTypes.EVENT_ZONE_VLAN_ASSIGN, "Assigned Zone Vlan: "+vnet+ " Network Id: "+network.getId(), 0);
|
||||
ActionEventUtils.onCompletedActionEvent(UserContext.current().getCallerUserId(), network.getAccountId(), EventVO.LEVEL_INFO, EventTypes.EVENT_ZONE_VLAN_ASSIGN, "Assigned Zone Vlan: " + vnet + " Network Id: " + network.getId(), 0);
|
||||
} else {
|
||||
implemented.setBroadcastUri(network.getBroadcastUri());
|
||||
}
|
||||
|
|
|
|||
|
|
@ -50,10 +50,10 @@ import javax.crypto.spec.SecretKeySpec;
|
|||
import javax.servlet.http.HttpServletResponse;
|
||||
import javax.servlet.http.HttpSession;
|
||||
|
||||
import com.cloud.event.ActionEventUtils;
|
||||
import com.cloud.utils.ReflectUtil;
|
||||
import org.apache.cloudstack.acl.APILimitChecker;
|
||||
import org.apache.cloudstack.acl.APIChecker;
|
||||
import org.apache.cloudstack.acl.RoleType;
|
||||
import org.apache.cloudstack.api.*;
|
||||
import org.apache.cloudstack.api.command.user.account.ListAccountsCmd;
|
||||
import org.apache.cloudstack.api.command.user.account.ListProjectAccountsCmd;
|
||||
|
|
@ -116,7 +116,6 @@ import com.cloud.configuration.ConfigurationVO;
|
|||
import com.cloud.configuration.dao.ConfigurationDao;
|
||||
import com.cloud.domain.Domain;
|
||||
import com.cloud.domain.DomainVO;
|
||||
import com.cloud.event.EventUtils;
|
||||
import com.cloud.exception.AccountLimitException;
|
||||
import com.cloud.exception.CloudAuthenticationException;
|
||||
import com.cloud.exception.InsufficientCapacityException;
|
||||
|
|
@ -467,7 +466,7 @@ public class ApiServer implements HttpRequestHandler {
|
|||
asyncCmd.setStartEventId(startEventId);
|
||||
|
||||
// save the scheduled event
|
||||
Long eventId = EventUtils.saveScheduledActionEvent((callerUserId == null) ? User.UID_SYSTEM : callerUserId,
|
||||
Long eventId = ActionEventUtils.onScheduledActionEvent((callerUserId == null) ? User.UID_SYSTEM : callerUserId,
|
||||
asyncCmd.getEntityOwnerId(), asyncCmd.getEventType(), asyncCmd.getEventDescription(),
|
||||
startEventId);
|
||||
if (startEventId == 0) {
|
||||
|
|
|
|||
|
|
@ -16,20 +16,10 @@
|
|||
// under the License.
|
||||
package com.cloud.baremetal;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
import javax.ejb.Local;
|
||||
|
||||
import org.apache.cloudstack.api.command.user.iso.DeleteIsoCmd;
|
||||
import org.apache.cloudstack.api.command.user.iso.RegisterIsoCmd;
|
||||
import org.apache.cloudstack.api.command.user.template.RegisterTemplateCmd;
|
||||
import org.apache.log4j.Logger;
|
||||
|
||||
import com.cloud.configuration.Resource.ResourceType;
|
||||
import com.cloud.dc.DataCenterVO;
|
||||
import com.cloud.event.EventTypes;
|
||||
import com.cloud.event.UsageEventGenerator;
|
||||
import com.cloud.event.UsageEventUtils;
|
||||
import com.cloud.exception.ResourceAllocationException;
|
||||
import com.cloud.host.Host;
|
||||
import com.cloud.host.HostVO;
|
||||
|
|
@ -46,6 +36,14 @@ import com.cloud.user.Account;
|
|||
import com.cloud.utils.component.Inject;
|
||||
import com.cloud.utils.db.DB;
|
||||
import com.cloud.utils.exception.CloudRuntimeException;
|
||||
import org.apache.cloudstack.api.command.user.iso.DeleteIsoCmd;
|
||||
import org.apache.cloudstack.api.command.user.iso.RegisterIsoCmd;
|
||||
import org.apache.cloudstack.api.command.user.template.RegisterTemplateCmd;
|
||||
import org.apache.log4j.Logger;
|
||||
|
||||
import javax.ejb.Local;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
@Local(value=TemplateAdapter.class)
|
||||
public class BareMetalTemplateAdapter extends TemplateAdapterBase implements TemplateAdapter {
|
||||
|
|
@ -82,8 +80,9 @@ public class BareMetalTemplateAdapter extends TemplateAdapterBase implements Tem
|
|||
|
||||
private void templateCreateUsage(VMTemplateVO template, HostVO host) {
|
||||
if (template.getAccountId() != Account.ACCOUNT_ID_SYSTEM) {
|
||||
UsageEventGenerator.publishUsageEvent(EventTypes.EVENT_TEMPLATE_CREATE, template.getAccountId(), host.getDataCenterId(),
|
||||
template.getId(), template.getName(), null, template.getSourceTemplateId(), 0L);
|
||||
UsageEventUtils.publishUsageEvent(EventTypes.EVENT_TEMPLATE_CREATE, template.getAccountId(), host.getDataCenterId(),
|
||||
template.getId(), template.getName(), null, template.getSourceTemplateId(), 0L,
|
||||
template.getClass().getName(), template.getUuid());
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -171,7 +170,8 @@ public class BareMetalTemplateAdapter extends TemplateAdapterBase implements Tem
|
|||
_tmpltZoneDao.remove(templateZone.getId());
|
||||
}
|
||||
|
||||
UsageEventGenerator.publishUsageEvent(eventType, account.getId(), pxeServer.getDataCenterId(), templateId, null);
|
||||
UsageEventUtils.publishUsageEvent(eventType, account.getId(), pxeServer.getDataCenterId(),
|
||||
templateId, null, template.getClass().getName(), template.getUuid());
|
||||
} finally {
|
||||
if (lock != null) {
|
||||
_tmpltHostDao.releaseFromLockTable(lock.getId());
|
||||
|
|
|
|||
|
|
@ -16,28 +16,11 @@
|
|||
// under the License.
|
||||
package com.cloud.baremetal;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.Executors;
|
||||
|
||||
import javax.ejb.Local;
|
||||
import javax.naming.ConfigurationException;
|
||||
|
||||
import org.apache.cloudstack.api.command.user.template.CreateTemplateCmd;
|
||||
import org.apache.cloudstack.api.command.user.vm.DeployVMCmd;
|
||||
import org.apache.cloudstack.api.command.user.vm.UpgradeVMCmd;
|
||||
import org.apache.cloudstack.api.command.user.volume.AttachVolumeCmd;
|
||||
import org.apache.cloudstack.api.command.user.volume.DetachVolumeCmd;
|
||||
import org.apache.log4j.Logger;
|
||||
|
||||
import com.cloud.agent.api.Answer;
|
||||
import com.cloud.agent.api.StopAnswer;
|
||||
import com.cloud.agent.api.baremetal.IpmISetBootDevCommand;
|
||||
import com.cloud.agent.api.baremetal.IpmiBootorResetCommand;
|
||||
import com.cloud.agent.manager.Commands;
|
||||
import org.apache.cloudstack.api.command.user.vm.StartVMCmd;
|
||||
import com.cloud.baremetal.PxeServerManager.PxeServerType;
|
||||
import com.cloud.configuration.Resource.ResourceType;
|
||||
import com.cloud.configuration.dao.ConfigurationDao;
|
||||
|
|
@ -47,14 +30,8 @@ import com.cloud.deploy.DataCenterDeployment;
|
|||
import com.cloud.deploy.DeployDestination;
|
||||
import com.cloud.domain.DomainVO;
|
||||
import com.cloud.event.EventTypes;
|
||||
import com.cloud.event.UsageEventGenerator;
|
||||
import com.cloud.exception.ConcurrentOperationException;
|
||||
import com.cloud.exception.InsufficientCapacityException;
|
||||
import com.cloud.exception.InvalidParameterValueException;
|
||||
import com.cloud.exception.PermissionDeniedException;
|
||||
import com.cloud.exception.ResourceAllocationException;
|
||||
import com.cloud.exception.ResourceUnavailableException;
|
||||
import com.cloud.exception.StorageUnavailableException;
|
||||
import com.cloud.event.UsageEventUtils;
|
||||
import com.cloud.exception.*;
|
||||
import com.cloud.host.Host;
|
||||
import com.cloud.host.HostVO;
|
||||
import com.cloud.hypervisor.Hypervisor.HypervisorType;
|
||||
|
|
@ -71,11 +48,7 @@ import com.cloud.storage.Volume;
|
|||
import com.cloud.template.TemplateAdapter;
|
||||
import com.cloud.template.TemplateAdapter.TemplateAdapterType;
|
||||
import com.cloud.template.TemplateProfile;
|
||||
import com.cloud.user.Account;
|
||||
import com.cloud.user.AccountVO;
|
||||
import com.cloud.user.SSHKeyPair;
|
||||
import com.cloud.user.User;
|
||||
import com.cloud.user.UserContext;
|
||||
import com.cloud.user.*;
|
||||
import com.cloud.uservm.UserVm;
|
||||
import com.cloud.utils.NumbersUtil;
|
||||
import com.cloud.utils.Pair;
|
||||
|
|
@ -88,19 +61,26 @@ import com.cloud.utils.db.DB;
|
|||
import com.cloud.utils.exception.CloudRuntimeException;
|
||||
import com.cloud.utils.fsm.StateListener;
|
||||
import com.cloud.utils.net.NetUtils;
|
||||
import com.cloud.vm.BareMetalVmService;
|
||||
import com.cloud.vm.NicProfile;
|
||||
import com.cloud.vm.NicVO;
|
||||
import com.cloud.vm.ReservationContext;
|
||||
import com.cloud.vm.UserVmManagerImpl;
|
||||
import com.cloud.vm.UserVmVO;
|
||||
import com.cloud.vm.VirtualMachine;
|
||||
import com.cloud.vm.*;
|
||||
import com.cloud.vm.VirtualMachine.Event;
|
||||
import com.cloud.vm.VirtualMachine.State;
|
||||
import com.cloud.vm.VirtualMachine.Type;
|
||||
import com.cloud.vm.VirtualMachineName;
|
||||
import com.cloud.vm.VirtualMachineProfile;
|
||||
import com.cloud.vm.VirtualMachineProfile.Param;
|
||||
import org.apache.cloudstack.api.command.user.template.CreateTemplateCmd;
|
||||
import org.apache.cloudstack.api.command.user.vm.DeployVMCmd;
|
||||
import org.apache.cloudstack.api.command.user.vm.StartVMCmd;
|
||||
import org.apache.cloudstack.api.command.user.vm.UpgradeVMCmd;
|
||||
import org.apache.cloudstack.api.command.user.volume.AttachVolumeCmd;
|
||||
import org.apache.cloudstack.api.command.user.volume.DetachVolumeCmd;
|
||||
import org.apache.log4j.Logger;
|
||||
|
||||
import javax.ejb.Local;
|
||||
import javax.naming.ConfigurationException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.Executors;
|
||||
|
||||
@Local(value={BareMetalVmManager.class, BareMetalVmService.class})
|
||||
public class BareMetalVmManagerImpl extends UserVmManagerImpl implements BareMetalVmManager, BareMetalVmService, Manager,
|
||||
|
|
@ -367,7 +347,9 @@ public class BareMetalVmManagerImpl extends UserVmManagerImpl implements BareMet
|
|||
s_logger.debug("Successfully allocated DB entry for " + vm);
|
||||
}
|
||||
UserContext.current().setEventDetails("Vm Id: " + vm.getId());
|
||||
UsageEventGenerator.publishUsageEvent(EventTypes.EVENT_VM_CREATE, accountId, cmd.getZoneId(), vm.getId(), vm.getHostName(), offering.getId(), template.getId(), HypervisorType.BareMetal.toString());
|
||||
UsageEventUtils.publishUsageEvent(EventTypes.EVENT_VM_CREATE, accountId, cmd.getZoneId(), vm.getId(),
|
||||
vm.getHostName(), offering.getId(), template.getId(), HypervisorType.BareMetal.toString(),
|
||||
VirtualMachine.class.getName(), vm.getUuid());
|
||||
|
||||
_resourceLimitMgr.incrementResourceCount(accountId, ResourceType.user_vm);
|
||||
|
||||
|
|
|
|||
|
|
@ -229,6 +229,7 @@ import com.cloud.vm.dao.UserVmDaoImpl;
|
|||
import com.cloud.vm.dao.UserVmDetailsDaoImpl;
|
||||
import com.cloud.vm.dao.VMInstanceDaoImpl;
|
||||
import com.cloud.event.dao.EventJoinDaoImpl;
|
||||
import com.cloud.eventsubscriber.EventNotificationSubscriberImpl;
|
||||
|
||||
|
||||
|
||||
|
|
@ -462,6 +463,7 @@ public class DefaultComponentLibrary extends ComponentLibraryBase implements Com
|
|||
addManager("TaggedResourcesManager", TaggedResourceManagerImpl.class);
|
||||
addManager("Site2SiteVpnManager", Site2SiteVpnManagerImpl.class);
|
||||
addManager("QueryManager", QueryManagerImpl.class);
|
||||
addManager("EventNotificationsSubscriber", EventNotificationSubscriberImpl.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
|
|
@ -17,27 +17,17 @@
|
|||
package com.cloud.event;
|
||||
|
||||
import com.cloud.user.UserContext;
|
||||
import com.cloud.utils.component.Adapters;
|
||||
import com.cloud.utils.component.AnnotationInterceptor;
|
||||
import com.cloud.utils.component.ComponentLocator;
|
||||
import net.sf.cglib.proxy.Callback;
|
||||
import net.sf.cglib.proxy.MethodInterceptor;
|
||||
import net.sf.cglib.proxy.MethodProxy;
|
||||
import org.apache.cloudstack.framework.events.Event;
|
||||
import org.apache.cloudstack.framework.events.EventBus;
|
||||
import org.apache.cloudstack.framework.events.EventBusException;
|
||||
import org.apache.log4j.Logger;
|
||||
|
||||
import java.lang.reflect.AnnotatedElement;
|
||||
import java.lang.reflect.Method;
|
||||
import java.util.Enumeration;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
public class ActionEventCallback implements MethodInterceptor, AnnotationInterceptor<EventVO> {
|
||||
|
||||
protected static EventBus _eventBus = null;
|
||||
protected static boolean _eventBusLoaded = false;
|
||||
private static final Logger s_logger = Logger.getLogger(ActionEventCallback.class);
|
||||
|
||||
@Override
|
||||
|
|
@ -88,8 +78,7 @@ public class ActionEventCallback implements MethodInterceptor, AnnotationInterce
|
|||
if(ctx.getEventDetails() != null){
|
||||
eventDescription += ". "+ctx.getEventDetails();
|
||||
}
|
||||
EventUtils.saveStartedActionEvent(userId, accountId, actionEvent.eventType(), eventDescription, startEventId);
|
||||
publishOnEventBus(userId, accountId, actionEvent.eventType(), com.cloud.event.Event.State.Started, eventDescription);
|
||||
ActionEventUtils.onStartedActionEvent(userId, accountId, actionEvent.eventType(), eventDescription, startEventId);
|
||||
}
|
||||
}
|
||||
return event;
|
||||
|
|
@ -110,12 +99,10 @@ public class ActionEventCallback implements MethodInterceptor, AnnotationInterce
|
|||
}
|
||||
if(actionEvent.create()){
|
||||
//This start event has to be used for subsequent events of this action
|
||||
startEventId = EventUtils.saveCreatedActionEvent(userId, accountId, EventVO.LEVEL_INFO, actionEvent.eventType(), "Successfully created entity for "+eventDescription);
|
||||
publishOnEventBus(userId, accountId, actionEvent.eventType(), com.cloud.event.Event.State.Created, "Successfully created entity for " + eventDescription);
|
||||
startEventId = ActionEventUtils.onCreatedActionEvent(userId, accountId, EventVO.LEVEL_INFO, actionEvent.eventType(), "Successfully created entity for " + eventDescription);
|
||||
ctx.setStartEventId(startEventId);
|
||||
} else {
|
||||
EventUtils.saveActionEvent(userId, accountId, EventVO.LEVEL_INFO, actionEvent.eventType(), "Successfully completed "+eventDescription, startEventId);
|
||||
publishOnEventBus(userId, accountId, actionEvent.eventType(), com.cloud.event.Event.State.Completed, "Successfully completed " + eventDescription + startEventId);
|
||||
ActionEventUtils.onCompletedActionEvent(userId, accountId, EventVO.LEVEL_INFO, actionEvent.eventType(), "Successfully completed " + eventDescription, startEventId);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -134,10 +121,10 @@ public class ActionEventCallback implements MethodInterceptor, AnnotationInterce
|
|||
eventDescription += ". "+ctx.getEventDetails();
|
||||
}
|
||||
if(actionEvent.create()){
|
||||
long eventId = EventUtils.saveCreatedActionEvent(userId, accountId, EventVO.LEVEL_ERROR, actionEvent.eventType(), "Error while creating entity for " + eventDescription);
|
||||
long eventId = ActionEventUtils.onCreatedActionEvent(userId, accountId, EventVO.LEVEL_ERROR, actionEvent.eventType(), "Error while creating entity for " + eventDescription);
|
||||
ctx.setStartEventId(eventId);
|
||||
} else {
|
||||
EventUtils.saveActionEvent(userId, accountId, EventVO.LEVEL_ERROR, actionEvent.eventType(), "Error while " + eventDescription, startEventId);
|
||||
ActionEventUtils.onCompletedActionEvent(userId, accountId, EventVO.LEVEL_ERROR, actionEvent.eventType(), "Error while " + eventDescription, startEventId);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -146,48 +133,4 @@ public class ActionEventCallback implements MethodInterceptor, AnnotationInterce
|
|||
public Callback getCallback() {
|
||||
return this;
|
||||
}
|
||||
|
||||
void publishOnEventBus(long userId, long accountId, String eventType, com.cloud.event.Event.State state, String description) {
|
||||
if (getEventBus() != null) {
|
||||
Map<String, String> eventDescription = new HashMap<String, String>();
|
||||
eventDescription.put("user", String.valueOf(userId));
|
||||
eventDescription.put("account", String.valueOf(accountId));
|
||||
eventDescription.put("state", state.toString());
|
||||
eventDescription.put("description", description);
|
||||
|
||||
int index = eventType.lastIndexOf("\\.");
|
||||
|
||||
String resourceType = null;
|
||||
if (index != -1 ) {
|
||||
resourceType = eventType.substring(0, index);
|
||||
}
|
||||
|
||||
Event event = new Event(null, EventCategory.ACTION_EVENT.getName(), eventType,
|
||||
resourceType, null);
|
||||
event.setDescription(eventDescription);
|
||||
|
||||
try {
|
||||
_eventBus.publish(event);
|
||||
} catch (EventBusException e) {
|
||||
s_logger.warn("Failed to publish action event on the the event bus.");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private EventBus getEventBus() {
|
||||
if (_eventBus == null) {
|
||||
if (!_eventBusLoaded) {
|
||||
ComponentLocator locator = ComponentLocator.getLocator("management-server");
|
||||
Adapters<EventBus> eventBusImpls = locator.getAdapters(EventBus.class);
|
||||
if (eventBusImpls != null) {
|
||||
Enumeration<EventBus> eventBusenum = eventBusImpls.enumeration();
|
||||
if (eventBusenum != null && eventBusenum.hasMoreElements()) {
|
||||
_eventBus = eventBusenum.nextElement();
|
||||
}
|
||||
}
|
||||
_eventBusLoaded = true;
|
||||
}
|
||||
}
|
||||
return _eventBus;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,192 @@
|
|||
// Licensed to the Apache Software Foundation (ASF) under one
|
||||
// or more contributor license agreements. See the NOTICE file
|
||||
// distributed with this work for additional information
|
||||
// regarding copyright ownership. The ASF licenses this file
|
||||
// to you under the Apache License, Version 2.0 (the
|
||||
// "License"); you may not use this file except in compliance
|
||||
// with the License. You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing,
|
||||
// software distributed under the License is distributed on an
|
||||
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
// KIND, either express or implied. See the License for the
|
||||
// specific language governing permissions and limitations
|
||||
// under the License.
|
||||
|
||||
package com.cloud.event;
|
||||
|
||||
import com.cloud.event.dao.EventDao;
|
||||
import com.cloud.server.ManagementServer;
|
||||
import com.cloud.user.Account;
|
||||
import com.cloud.user.AccountVO;
|
||||
import com.cloud.user.User;
|
||||
import com.cloud.user.dao.AccountDao;
|
||||
import com.cloud.user.dao.UserDao;
|
||||
import com.cloud.utils.component.Adapters;
|
||||
import com.cloud.utils.component.ComponentLocator;
|
||||
import org.apache.cloudstack.framework.events.EventBus;
|
||||
import org.apache.cloudstack.framework.events.EventBusException;
|
||||
import org.apache.log4j.Logger;
|
||||
|
||||
import java.util.Enumeration;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
public class ActionEventUtils {
|
||||
|
||||
private static final Logger s_logger = Logger.getLogger(ActionEventUtils.class);
|
||||
|
||||
private static EventDao _eventDao = ComponentLocator.getLocator(ManagementServer.Name).getDao(EventDao.class);
|
||||
private static AccountDao _accountDao = ComponentLocator.getLocator(ManagementServer.Name).getDao(AccountDao.class);
|
||||
protected static UserDao _userDao = ComponentLocator.getLocator(ManagementServer.Name).getDao(UserDao.class);;
|
||||
protected static EventBus _eventBus = null;
|
||||
protected static boolean _eventBusProviderLoaded = false;
|
||||
|
||||
public static Long onActionEvent(Long userId, Long accountId, Long domainId, String type, String description) {
|
||||
|
||||
publishActionEvent(userId, accountId, EventCategory.ACTION_EVENT.getName(),
|
||||
type, com.cloud.event.Event.State.Scheduled);
|
||||
|
||||
EventVO event = new EventVO();
|
||||
event.setUserId(userId);
|
||||
event.setAccountId(accountId);
|
||||
event.setDomainId(domainId);
|
||||
event.setType(type);
|
||||
event.setDescription(description);
|
||||
event = _eventDao.persist(event);
|
||||
return event.getId();
|
||||
}
|
||||
|
||||
/*
|
||||
* Save event after scheduling an async job
|
||||
*/
|
||||
public static Long onScheduledActionEvent(Long userId, Long accountId, String type, String description, long startEventId) {
|
||||
|
||||
publishActionEvent(userId, accountId, EventCategory.ACTION_EVENT.getName(), type,
|
||||
com.cloud.event.Event.State.Scheduled);
|
||||
|
||||
EventVO event = new EventVO();
|
||||
event.setUserId(userId);
|
||||
event.setAccountId(accountId);
|
||||
event.setDomainId(getDomainId(accountId));
|
||||
event.setType(type);
|
||||
event.setStartId(startEventId);
|
||||
event.setState(Event.State.Scheduled);
|
||||
event.setDescription("Scheduled async job for "+description);
|
||||
event = _eventDao.persist(event);
|
||||
return event.getId();
|
||||
}
|
||||
|
||||
/*
|
||||
* Save event after starting execution of an async job
|
||||
*/
|
||||
public static Long onStartedActionEvent(Long userId, Long accountId, String type, String description, long startEventId) {
|
||||
|
||||
publishActionEvent(userId, accountId, EventCategory.ACTION_EVENT.getName(), type,
|
||||
com.cloud.event.Event.State.Started);
|
||||
|
||||
EventVO event = new EventVO();
|
||||
event.setUserId(userId);
|
||||
event.setAccountId(accountId);
|
||||
event.setDomainId(getDomainId(accountId));
|
||||
event.setType(type);
|
||||
event.setState(Event.State.Started);
|
||||
event.setDescription("Starting job for "+description);
|
||||
event.setStartId(startEventId);
|
||||
event = _eventDao.persist(event);
|
||||
return event.getId();
|
||||
}
|
||||
|
||||
public static Long onCompletedActionEvent(Long userId, Long accountId, String level, String type, String description, long startEventId) {
|
||||
|
||||
publishActionEvent(userId, accountId, EventCategory.ACTION_EVENT.getName(), type,
|
||||
com.cloud.event.Event.State.Completed);
|
||||
|
||||
EventVO event = new EventVO();
|
||||
event.setUserId(userId);
|
||||
event.setAccountId(accountId);
|
||||
event.setDomainId(getDomainId(accountId));
|
||||
event.setType(type);
|
||||
event.setDescription(description);
|
||||
event.setLevel(level);
|
||||
event.setStartId(startEventId);
|
||||
event = _eventDao.persist(event);
|
||||
return (event != null ? event.getId() : null);
|
||||
}
|
||||
|
||||
public static Long onCreatedActionEvent(Long userId, Long accountId, String level, String type, String description) {
|
||||
|
||||
publishActionEvent(userId, accountId, EventCategory.ACTION_EVENT.getName(), type,
|
||||
com.cloud.event.Event.State.Created);
|
||||
|
||||
EventVO event = new EventVO();
|
||||
event.setUserId(userId);
|
||||
event.setAccountId(accountId);
|
||||
event.setDomainId(getDomainId(accountId));
|
||||
event.setType(type);
|
||||
event.setLevel(level);
|
||||
event.setState(Event.State.Created);
|
||||
event.setDescription(description);
|
||||
event = _eventDao.persist(event);
|
||||
return event.getId();
|
||||
}
|
||||
|
||||
private static long getDomainId(long accountId){
|
||||
AccountVO account = _accountDao.findByIdIncludingRemoved(accountId);
|
||||
return account.getDomainId();
|
||||
}
|
||||
|
||||
public static void publishActionEvent(long userId, long accountId, String eventCategory,
|
||||
String eventType, Event.State state) {
|
||||
|
||||
if (getEventBusProvider() == null) {
|
||||
return; // no provider is configured to provider events bus, so just return
|
||||
}
|
||||
|
||||
Map<String, String> eventDescription = new HashMap<String, String>();
|
||||
Account account = _accountDao.findById(accountId);
|
||||
User user = _userDao.findById(userId);
|
||||
|
||||
eventDescription.put("user", user.getUuid());
|
||||
eventDescription.put("account", account.getUuid());
|
||||
eventDescription.put("event", eventType);
|
||||
eventDescription.put("status", state.toString());
|
||||
|
||||
int index = eventType.lastIndexOf(".");
|
||||
|
||||
String resourceType = null;
|
||||
if (index != -1 ) {
|
||||
resourceType = eventType.substring(0, index);
|
||||
}
|
||||
|
||||
org.apache.cloudstack.framework.events.Event event = new org.apache.cloudstack.framework.events.Event(
|
||||
ManagementServer.Name,
|
||||
eventCategory,
|
||||
eventType,
|
||||
resourceType, null);
|
||||
event.setDescription(eventDescription);
|
||||
|
||||
try {
|
||||
_eventBus.publish(event);
|
||||
} catch (EventBusException e) {
|
||||
s_logger.warn("Failed to publish action event on the the event bus.");
|
||||
}
|
||||
}
|
||||
|
||||
private static EventBus getEventBusProvider() {
|
||||
if (!_eventBusProviderLoaded) {
|
||||
ComponentLocator locator = ComponentLocator.getLocator(ManagementServer.Name);
|
||||
Adapters<EventBus> eventBusImpls = locator.getAdapters(EventBus.class);
|
||||
if (eventBusImpls != null) {
|
||||
Enumeration<EventBus> eventBusenum = eventBusImpls.enumeration();
|
||||
if (eventBusenum != null && eventBusenum.hasMoreElements()) {
|
||||
_eventBus = eventBusenum.nextElement();
|
||||
}
|
||||
}
|
||||
_eventBusProviderLoaded = true;
|
||||
}
|
||||
return _eventBus;
|
||||
}
|
||||
}
|
||||
|
|
@ -1,124 +0,0 @@
|
|||
// Licensed to the Apache Software Foundation (ASF) under one
|
||||
// or more contributor license agreements. See the NOTICE file
|
||||
// distributed with this work for additional information
|
||||
// regarding copyright ownership. The ASF licenses this file
|
||||
// to you under the Apache License, Version 2.0 (the
|
||||
// "License"); you may not use this file except in compliance
|
||||
// with the License. You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing,
|
||||
// software distributed under the License is distributed on an
|
||||
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
// KIND, either express or implied. See the License for the
|
||||
// specific language governing permissions and limitations
|
||||
// under the License.
|
||||
package com.cloud.event;
|
||||
|
||||
import com.cloud.event.dao.EventDao;
|
||||
import com.cloud.event.dao.UsageEventDao;
|
||||
import com.cloud.server.ManagementServer;
|
||||
import com.cloud.user.AccountVO;
|
||||
import com.cloud.user.dao.AccountDao;
|
||||
import com.cloud.utils.component.ComponentLocator;
|
||||
|
||||
public class EventUtils {
|
||||
private static EventDao _eventDao = ComponentLocator.getLocator(ManagementServer.Name).getDao(EventDao.class);
|
||||
private static AccountDao _accountDao = ComponentLocator.getLocator(ManagementServer.Name).getDao(AccountDao.class);
|
||||
private static UsageEventDao _usageEventDao = ComponentLocator.getLocator(ManagementServer.Name).getDao(UsageEventDao.class);
|
||||
|
||||
public static Long saveActionEvent(Long userId, Long accountId, Long domainId, String type, String description) {
|
||||
EventVO event = new EventVO();
|
||||
event.setUserId(userId);
|
||||
event.setAccountId(accountId);
|
||||
event.setDomainId(domainId);
|
||||
event.setType(type);
|
||||
event.setDescription(description);
|
||||
event = _eventDao.persist(event);
|
||||
return event.getId();
|
||||
}
|
||||
|
||||
/*
|
||||
* Save event after scheduling an async job
|
||||
*/
|
||||
public static Long saveScheduledActionEvent(Long userId, Long accountId, String type, String description, long startEventId) {
|
||||
EventVO event = new EventVO();
|
||||
event.setUserId(userId);
|
||||
event.setAccountId(accountId);
|
||||
event.setDomainId(getDomainId(accountId));
|
||||
event.setType(type);
|
||||
event.setStartId(startEventId);
|
||||
event.setState(Event.State.Scheduled);
|
||||
event.setDescription("Scheduled async job for "+description);
|
||||
event = _eventDao.persist(event);
|
||||
return event.getId();
|
||||
}
|
||||
|
||||
/*
|
||||
* Save event after starting execution of an async job
|
||||
*/
|
||||
public static Long saveStartedActionEvent(Long userId, Long accountId, String type, String description, long startEventId) {
|
||||
EventVO event = new EventVO();
|
||||
event.setUserId(userId);
|
||||
event.setAccountId(accountId);
|
||||
event.setDomainId(getDomainId(accountId));
|
||||
event.setType(type);
|
||||
event.setState(Event.State.Started);
|
||||
event.setDescription("Starting job for "+description);
|
||||
event.setStartId(startEventId);
|
||||
event = _eventDao.persist(event);
|
||||
return event.getId();
|
||||
}
|
||||
|
||||
public static Long saveActionEvent(Long userId, Long accountId, String level, String type, String description, long startEventId) {
|
||||
EventVO event = new EventVO();
|
||||
event.setUserId(userId);
|
||||
event.setAccountId(accountId);
|
||||
event.setDomainId(getDomainId(accountId));
|
||||
event.setType(type);
|
||||
event.setDescription(description);
|
||||
event.setLevel(level);
|
||||
event.setStartId(startEventId);
|
||||
event = _eventDao.persist(event);
|
||||
return (event != null ? event.getId() : null);
|
||||
}
|
||||
|
||||
public static Long saveCreatedActionEvent(Long userId, Long accountId, String level, String type, String description) {
|
||||
EventVO event = new EventVO();
|
||||
event.setUserId(userId);
|
||||
event.setAccountId(accountId);
|
||||
event.setDomainId(getDomainId(accountId));
|
||||
event.setType(type);
|
||||
event.setLevel(level);
|
||||
event.setState(Event.State.Created);
|
||||
event.setDescription(description);
|
||||
event = _eventDao.persist(event);
|
||||
return event.getId();
|
||||
}
|
||||
|
||||
private static long getDomainId(long accountId){
|
||||
AccountVO account = _accountDao.findByIdIncludingRemoved(accountId);
|
||||
return account.getDomainId();
|
||||
}
|
||||
|
||||
public static void saveUsageEvent(String usageType, long accountId, long zoneId, long resourceId, String resourceName, Long offeringId, Long templateId, Long size) {
|
||||
_usageEventDao.persist( new UsageEventVO(usageType, accountId, zoneId, resourceId, resourceName, offeringId, templateId, size));
|
||||
}
|
||||
|
||||
public static void saveUsageEvent(String usageType, long accountId, long zoneId, long resourceId, String resourceName) {
|
||||
_usageEventDao.persist( new UsageEventVO(usageType, accountId, zoneId, resourceId, resourceName));
|
||||
}
|
||||
|
||||
public static void saveUsageEvent(String usageType, long accountId, long zoneId, long ipAddressId, String ipAddress, boolean isSourceNat, String guestType, boolean isSystem) {
|
||||
_usageEventDao.persist( new UsageEventVO(usageType, accountId, zoneId, ipAddressId, ipAddress, isSourceNat, guestType, isSystem));
|
||||
}
|
||||
|
||||
public static void saveUsageEvent(String usageType, long accountId, long zoneId, long resourceId, String resourceName, Long offeringId, Long templateId, String resourceType) {
|
||||
_usageEventDao.persist( new UsageEventVO(usageType, accountId, zoneId, resourceId, resourceName, offeringId, templateId, resourceType));
|
||||
}
|
||||
|
||||
public static void saveUsageEvent(String usageType, long accountId,long zoneId, long vmId, long securityGroupId) {
|
||||
_usageEventDao.persist( new UsageEventVO( usageType, accountId, zoneId, vmId, securityGroupId));
|
||||
}
|
||||
}
|
||||
|
|
@ -1,86 +0,0 @@
|
|||
package com.cloud.event;
|
||||
|
||||
import com.cloud.utils.component.Adapters;
|
||||
import com.cloud.utils.component.ComponentLocator;
|
||||
import org.apache.cloudstack.framework.events.EventBus;
|
||||
import org.apache.cloudstack.framework.events.Event;
|
||||
import org.apache.cloudstack.framework.events.EventBusException;
|
||||
import org.apache.log4j.Logger;
|
||||
|
||||
import java.util.Enumeration;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
public class UsageEventGenerator {
|
||||
|
||||
private static final Logger s_logger = Logger.getLogger(UsageEventGenerator.class);
|
||||
protected static EventBus _eventBus = null;
|
||||
protected static boolean _eventBusLoaded = false;
|
||||
|
||||
public static void publishUsageEvent(String usageType, long accountId, long zoneId, long resourceId, String resourceName, Long offeringId, Long templateId, Long size) {
|
||||
EventUtils.saveUsageEvent(usageType, accountId, zoneId, resourceId, resourceName, offeringId, templateId, size);
|
||||
publishOnEventBus(usageType, accountId, zoneId, resourceId, resourceName, null);
|
||||
}
|
||||
|
||||
public static void publishUsageEvent(String usageType, long accountId, long zoneId, long resourceId, String resourceName) {
|
||||
EventUtils.saveUsageEvent(usageType, accountId, zoneId, resourceId, resourceName);
|
||||
publishOnEventBus(usageType, accountId, zoneId, resourceId, resourceName, null);
|
||||
}
|
||||
|
||||
public static void publishUsageEvent(String usageType, long accountId, long zoneId, long ipAddressId, String ipAddress, boolean isSourceNat, String guestType, boolean isSystem) {
|
||||
EventUtils.saveUsageEvent(usageType, accountId, zoneId, ipAddressId, ipAddress, isSourceNat, guestType, isSystem);
|
||||
publishOnEventBus(usageType, accountId, zoneId, ipAddressId, "IP address", null);
|
||||
}
|
||||
|
||||
public static void publishUsageEvent(String usageType, long accountId, long zoneId, long resourceId, String resourceName, Long offeringId, Long templateId, String resourceType) {
|
||||
EventUtils.saveUsageEvent(usageType, accountId, zoneId, resourceId, resourceName, offeringId, templateId, resourceType);
|
||||
publishOnEventBus(usageType, accountId, zoneId, resourceId, resourceName, resourceType);
|
||||
}
|
||||
|
||||
public static void publishUsageEvent(String usageType, long accountId,long zoneId, long vmId, long securityGroupId) {
|
||||
EventUtils.saveUsageEvent(usageType, accountId, zoneId, vmId, securityGroupId);
|
||||
publishOnEventBus(usageType, accountId, zoneId, vmId, null, null);
|
||||
}
|
||||
|
||||
private static void publishOnEventBus(String usageType, Long accountId, Long zoneId, Long resourceId, String resourceName, String resourceType) {
|
||||
if (getEventBus() != null) {
|
||||
Map<String, String> eventDescription = new HashMap<String, String>();
|
||||
eventDescription.put("usage type", usageType);
|
||||
if (accountId != null) {
|
||||
eventDescription.put("accountId", usageType);
|
||||
}
|
||||
if (zoneId != null) {
|
||||
eventDescription.put("zoneId", String.valueOf(zoneId));
|
||||
}
|
||||
if (resourceId != null) {
|
||||
eventDescription.put("resourceId", String.valueOf(resourceId));
|
||||
}
|
||||
eventDescription.put("resourceName", resourceName);
|
||||
eventDescription.put("resourceType", resourceType);
|
||||
Event event = new Event(null, EventCategory.USAGE_EVENT.getName(), usageType, null, null);
|
||||
event.setDescription(eventDescription);
|
||||
try {
|
||||
_eventBus.publish(event);
|
||||
} catch (EventBusException e) {
|
||||
s_logger.warn("Failed to publish usage event on the the event bus.");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private static EventBus getEventBus() {
|
||||
if (_eventBus == null) {
|
||||
if (!_eventBusLoaded) {
|
||||
ComponentLocator locator = ComponentLocator.getLocator("management-server");
|
||||
Adapters<EventBus> eventBusImpls = locator.getAdapters(EventBus.class);
|
||||
if (eventBusImpls != null) {
|
||||
Enumeration<EventBus> eventBusenum = eventBusImpls.enumeration();
|
||||
if (eventBusenum != null && eventBusenum.hasMoreElements()) {
|
||||
_eventBus = eventBusenum.nextElement();
|
||||
}
|
||||
}
|
||||
_eventBusLoaded = true;
|
||||
}
|
||||
}
|
||||
return _eventBus;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,125 @@
|
|||
package com.cloud.event;
|
||||
|
||||
import com.cloud.dc.DataCenterVO;
|
||||
import com.cloud.dc.dao.DataCenterDao;
|
||||
import com.cloud.event.dao.UsageEventDao;
|
||||
import com.cloud.server.ManagementServer;
|
||||
import com.cloud.user.Account;
|
||||
import com.cloud.user.dao.AccountDao;
|
||||
import com.cloud.utils.component.Adapters;
|
||||
import com.cloud.utils.component.ComponentLocator;
|
||||
import org.apache.cloudstack.framework.events.EventBus;
|
||||
import org.apache.cloudstack.framework.events.Event;
|
||||
import org.apache.cloudstack.framework.events.EventBusException;
|
||||
import org.apache.log4j.Logger;
|
||||
|
||||
import java.util.Enumeration;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
public class UsageEventUtils {
|
||||
|
||||
private static UsageEventDao _usageEventDao = ComponentLocator.getLocator(ManagementServer.Name).getDao(UsageEventDao.class);
|
||||
private static AccountDao _accountDao = ComponentLocator.getLocator(ManagementServer.Name).getDao(AccountDao.class);
|
||||
private static DataCenterDao _dcDao = ComponentLocator.getLocator(ManagementServer.Name).getDao(DataCenterDao.class);
|
||||
|
||||
private static final Logger s_logger = Logger.getLogger(UsageEventUtils.class);
|
||||
protected static EventBus _eventBus = null;
|
||||
protected static boolean _eventBusLoaded = false;
|
||||
|
||||
public static void publishUsageEvent(String usageType, long accountId, long zoneId,
|
||||
long resourceId, String resourceName,
|
||||
Long offeringId, Long templateId, Long size,
|
||||
String entityType, String entityUUID) {
|
||||
saveUsageEvent(usageType, accountId, zoneId, resourceId, resourceName, offeringId, templateId, size);
|
||||
publishUsageEvent(usageType, accountId, zoneId, entityType, entityUUID);
|
||||
}
|
||||
|
||||
public static void publishUsageEvent(String usageType, long accountId, long zoneId, long resourceId,
|
||||
String resourceName, String entityType, String entityUUID) {
|
||||
saveUsageEvent(usageType, accountId, zoneId, resourceId, resourceName);
|
||||
publishUsageEvent(usageType, accountId, zoneId, entityType, entityUUID);
|
||||
}
|
||||
|
||||
public static void publishUsageEvent(String usageType, long accountId, long zoneId,
|
||||
long ipAddressId, String ipAddress, boolean isSourceNat,
|
||||
String guestType, boolean isSystem, String entityType, String entityUUID) {
|
||||
saveUsageEvent(usageType, accountId, zoneId, ipAddressId, ipAddress, isSourceNat, guestType, isSystem);
|
||||
publishUsageEvent(usageType, accountId, zoneId, entityType, entityUUID);
|
||||
}
|
||||
|
||||
public static void publishUsageEvent(String usageType, long accountId, long zoneId, long resourceId,
|
||||
String resourceName, Long offeringId, Long templateId, String resourceType,
|
||||
String entityType, String entityUUID) {
|
||||
saveUsageEvent(usageType, accountId, zoneId, resourceId, resourceName, offeringId, templateId, resourceType);
|
||||
publishUsageEvent(usageType, accountId, zoneId, entityType, entityUUID);
|
||||
}
|
||||
|
||||
public static void publishUsageEvent(String usageType, long accountId,long zoneId, long vmId,
|
||||
long securityGroupId, String entityType, String entityUUID) {
|
||||
saveUsageEvent(usageType, accountId, zoneId, vmId, securityGroupId);
|
||||
publishUsageEvent(usageType, accountId, zoneId, entityType, entityUUID);
|
||||
}
|
||||
|
||||
public static void saveUsageEvent(String usageType, long accountId, long zoneId, long resourceId, String resourceName, Long offeringId, Long templateId, Long size) {
|
||||
_usageEventDao.persist( new UsageEventVO(usageType, accountId, zoneId, resourceId, resourceName, offeringId, templateId, size));
|
||||
}
|
||||
|
||||
public static void saveUsageEvent(String usageType, long accountId, long zoneId, long resourceId, String resourceName) {
|
||||
_usageEventDao.persist( new UsageEventVO(usageType, accountId, zoneId, resourceId, resourceName));
|
||||
}
|
||||
|
||||
public static void saveUsageEvent(String usageType, long accountId, long zoneId, long ipAddressId, String ipAddress, boolean isSourceNat, String guestType, boolean isSystem) {
|
||||
_usageEventDao.persist( new UsageEventVO(usageType, accountId, zoneId, ipAddressId, ipAddress, isSourceNat, guestType, isSystem));
|
||||
}
|
||||
|
||||
public static void saveUsageEvent(String usageType, long accountId, long zoneId, long resourceId, String resourceName, Long offeringId, Long templateId, String resourceType) {
|
||||
_usageEventDao.persist( new UsageEventVO(usageType, accountId, zoneId, resourceId, resourceName, offeringId, templateId, resourceType));
|
||||
}
|
||||
|
||||
public static void saveUsageEvent(String usageType, long accountId,long zoneId, long vmId, long securityGroupId) {
|
||||
_usageEventDao.persist( new UsageEventVO( usageType, accountId, zoneId, vmId, securityGroupId));
|
||||
}
|
||||
|
||||
private static void publishUsageEvent(String usageEventType, Long accountId, Long zoneId, String resourceType, String resourceUUID) {
|
||||
|
||||
if (getEventBusProvider() == null) {
|
||||
return; // no provider is configured to provider events bus, so just return
|
||||
}
|
||||
|
||||
Account account = _accountDao.findById(accountId);
|
||||
DataCenterVO dc = _dcDao.findById(zoneId);
|
||||
|
||||
Map<String, String> eventDescription = new HashMap<String, String>();
|
||||
|
||||
eventDescription.put("account", account.getUuid());
|
||||
eventDescription.put("zone", dc.getUuid());
|
||||
eventDescription.put("event", usageEventType);
|
||||
eventDescription.put("resource", resourceType);
|
||||
eventDescription.put("id", resourceUUID);
|
||||
|
||||
Event event = new Event(ManagementServer.Name, EventCategory.USAGE_EVENT.getName(), usageEventType,
|
||||
resourceType, resourceUUID);
|
||||
event.setDescription(eventDescription);
|
||||
try {
|
||||
_eventBus.publish(event);
|
||||
} catch (EventBusException e) {
|
||||
s_logger.warn("Failed to publish usage event on the the event bus.");
|
||||
}
|
||||
}
|
||||
|
||||
private static EventBus getEventBusProvider() {
|
||||
if (!_eventBusLoaded) {
|
||||
_eventBusLoaded = true;
|
||||
ComponentLocator locator = ComponentLocator.getLocator(ManagementServer.Name);
|
||||
Adapters<EventBus> eventBusImpls = locator.getAdapters(EventBus.class);
|
||||
if (eventBusImpls != null) {
|
||||
Enumeration<EventBus> eventBusenum = eventBusImpls.enumeration();
|
||||
if (eventBusenum != null && eventBusenum.hasMoreElements()) {
|
||||
_eventBus = eventBusenum.nextElement();
|
||||
}
|
||||
}
|
||||
}
|
||||
return _eventBus;
|
||||
}
|
||||
}
|
||||
|
|
@ -39,7 +39,7 @@ import com.cloud.deploy.DeploymentPlan;
|
|||
import com.cloud.domain.Domain;
|
||||
import com.cloud.domain.dao.DomainDao;
|
||||
import com.cloud.event.EventTypes;
|
||||
import com.cloud.event.UsageEventGenerator;
|
||||
import com.cloud.event.UsageEventUtils;
|
||||
import com.cloud.event.dao.UsageEventDao;
|
||||
import com.cloud.exception.*;
|
||||
import com.cloud.host.Host;
|
||||
|
|
@ -336,9 +336,9 @@ public class NetworkManagerImpl implements NetworkManager, Manager, Listener {
|
|||
VlanVO vlan = _vlanDao.findById(addr.getVlanId());
|
||||
|
||||
String guestType = vlan.getVlanType().toString();
|
||||
UsageEventGenerator.publishUsageEvent(EventTypes.EVENT_NET_IP_ASSIGN, owner.getId(),
|
||||
addr.getDataCenterId(), addr.getId(), addr.getAddress().toString(), addr.isSourceNat(), guestType,
|
||||
addr.getSystem());
|
||||
UsageEventUtils.publishUsageEvent(EventTypes.EVENT_NET_IP_ASSIGN, owner.getId(),
|
||||
addr.getDataCenterId(), addr.getId(), addr.getAddress().toString(), addr.isSourceNat(), guestType,
|
||||
addr.getSystem(), addr.getClass().getName(), addr.getUuid());
|
||||
// don't increment resource count for direct ip addresses
|
||||
if (addr.getAssociatedWithNetworkId() != null) {
|
||||
_resourceLimitMgr.incrementResourceCount(owner.getId(), ResourceType.public_ip);
|
||||
|
|
@ -2664,9 +2664,9 @@ public class NetworkManagerImpl implements NetworkManager, Manager, Listener {
|
|||
|
||||
String guestType = vlan.getVlanType().toString();
|
||||
|
||||
UsageEventGenerator.publishUsageEvent(EventTypes.EVENT_NET_IP_RELEASE,
|
||||
ip.getAllocatedToAccountId(), ip.getDataCenterId(), addrId, ip.getAddress().addr(),
|
||||
ip.isSourceNat(), guestType, ip.getSystem());
|
||||
UsageEventUtils.publishUsageEvent(EventTypes.EVENT_NET_IP_RELEASE,
|
||||
ip.getAllocatedToAccountId(), ip.getDataCenterId(), addrId, ip.getAddress().addr(),
|
||||
ip.isSourceNat(), guestType, ip.getSystem(), ip.getClass().getName(), ip.getUuid());
|
||||
}
|
||||
|
||||
ip = _ipAddressDao.markAsUnavailable(addrId);
|
||||
|
|
|
|||
|
|
@ -16,31 +16,6 @@
|
|||
// under the License.
|
||||
package com.cloud.network;
|
||||
|
||||
import java.security.InvalidParameterException;
|
||||
import java.sql.PreparedStatement;
|
||||
import java.sql.ResultSet;
|
||||
import java.sql.SQLException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.TreeSet;
|
||||
|
||||
import javax.ejb.Local;
|
||||
import javax.naming.ConfigurationException;
|
||||
|
||||
import org.apache.log4j.Logger;
|
||||
|
||||
import org.apache.cloudstack.acl.ControlledEntity.ACLType;
|
||||
import org.apache.cloudstack.acl.SecurityChecker.AccessType;
|
||||
import org.apache.cloudstack.api.command.admin.usage.ListTrafficTypeImplementorsCmd;
|
||||
import org.apache.cloudstack.api.command.user.network.CreateNetworkCmd;
|
||||
import org.apache.cloudstack.api.command.user.network.ListNetworksCmd;
|
||||
import org.apache.cloudstack.api.command.user.network.RestartNetworkCmd;
|
||||
|
||||
import com.cloud.configuration.Config;
|
||||
import com.cloud.configuration.ConfigurationManager;
|
||||
import com.cloud.configuration.dao.ConfigurationDao;
|
||||
|
|
@ -58,17 +33,10 @@ import com.cloud.domain.DomainVO;
|
|||
import com.cloud.domain.dao.DomainDao;
|
||||
import com.cloud.event.ActionEvent;
|
||||
import com.cloud.event.EventTypes;
|
||||
import com.cloud.event.UsageEventVO;
|
||||
import com.cloud.event.UsageEventUtils;
|
||||
import com.cloud.event.dao.EventDao;
|
||||
import com.cloud.event.dao.UsageEventDao;
|
||||
import com.cloud.exception.ConcurrentOperationException;
|
||||
import com.cloud.exception.InsufficientAddressCapacityException;
|
||||
import com.cloud.exception.InsufficientCapacityException;
|
||||
import com.cloud.exception.InvalidParameterValueException;
|
||||
import com.cloud.exception.PermissionDeniedException;
|
||||
import com.cloud.exception.ResourceAllocationException;
|
||||
import com.cloud.exception.ResourceUnavailableException;
|
||||
import com.cloud.exception.UnsupportedServiceException;
|
||||
import com.cloud.exception.*;
|
||||
import com.cloud.network.IpAddress.State;
|
||||
import com.cloud.network.Network.Capability;
|
||||
import com.cloud.network.Network.GuestType;
|
||||
|
|
@ -79,16 +47,7 @@ import com.cloud.network.Networks.TrafficType;
|
|||
import com.cloud.network.PhysicalNetwork.BroadcastDomainRange;
|
||||
import com.cloud.network.VirtualRouterProvider.VirtualRouterProviderType;
|
||||
import com.cloud.network.addr.PublicIp;
|
||||
import com.cloud.network.dao.FirewallRulesDao;
|
||||
import com.cloud.network.dao.IPAddressDao;
|
||||
import com.cloud.network.dao.NetworkDao;
|
||||
import com.cloud.network.dao.NetworkDomainDao;
|
||||
import com.cloud.network.dao.NetworkServiceMapDao;
|
||||
import com.cloud.network.dao.PhysicalNetworkDao;
|
||||
import com.cloud.network.dao.PhysicalNetworkServiceProviderDao;
|
||||
import com.cloud.network.dao.PhysicalNetworkServiceProviderVO;
|
||||
import com.cloud.network.dao.PhysicalNetworkTrafficTypeDao;
|
||||
import com.cloud.network.dao.PhysicalNetworkTrafficTypeVO;
|
||||
import com.cloud.network.dao.*;
|
||||
import com.cloud.network.element.NetworkElement;
|
||||
import com.cloud.network.element.VirtualRouterElement;
|
||||
import com.cloud.network.element.VpcVirtualRouterElement;
|
||||
|
|
@ -109,13 +68,7 @@ import com.cloud.projects.ProjectManager;
|
|||
import com.cloud.server.ResourceTag.TaggedResourceType;
|
||||
import com.cloud.tags.ResourceTagVO;
|
||||
import com.cloud.tags.dao.ResourceTagDao;
|
||||
import com.cloud.user.Account;
|
||||
import com.cloud.user.AccountManager;
|
||||
import com.cloud.user.AccountVO;
|
||||
import com.cloud.user.DomainManager;
|
||||
import com.cloud.user.ResourceLimitService;
|
||||
import com.cloud.user.User;
|
||||
import com.cloud.user.UserContext;
|
||||
import com.cloud.user.*;
|
||||
import com.cloud.user.dao.AccountDao;
|
||||
import com.cloud.utils.AnnotationHelper;
|
||||
import com.cloud.utils.NumbersUtil;
|
||||
|
|
@ -123,25 +76,28 @@ import com.cloud.utils.Pair;
|
|||
import com.cloud.utils.component.Adapters;
|
||||
import com.cloud.utils.component.Inject;
|
||||
import com.cloud.utils.component.Manager;
|
||||
import com.cloud.utils.db.DB;
|
||||
import com.cloud.utils.db.Filter;
|
||||
import com.cloud.utils.db.JoinBuilder;
|
||||
import com.cloud.utils.db.SearchBuilder;
|
||||
import com.cloud.utils.db.SearchCriteria;
|
||||
import com.cloud.utils.db.*;
|
||||
import com.cloud.utils.db.SearchCriteria.Op;
|
||||
import com.cloud.utils.db.Transaction;
|
||||
import com.cloud.utils.exception.CloudRuntimeException;
|
||||
import com.cloud.utils.net.NetUtils;
|
||||
import com.cloud.vm.NicVO;
|
||||
import com.cloud.vm.ReservationContext;
|
||||
import com.cloud.vm.ReservationContextImpl;
|
||||
import com.cloud.vm.SecondaryStorageVmVO;
|
||||
import com.cloud.vm.UserVmVO;
|
||||
import com.cloud.vm.VMInstanceVO;
|
||||
import com.cloud.vm.VirtualMachine;
|
||||
import com.cloud.vm.*;
|
||||
import com.cloud.vm.dao.NicDao;
|
||||
import com.cloud.vm.dao.UserVmDao;
|
||||
import com.cloud.vm.dao.VMInstanceDao;
|
||||
import org.apache.cloudstack.acl.ControlledEntity.ACLType;
|
||||
import org.apache.cloudstack.api.command.admin.usage.ListTrafficTypeImplementorsCmd;
|
||||
import org.apache.cloudstack.api.command.user.network.CreateNetworkCmd;
|
||||
import org.apache.cloudstack.api.command.user.network.ListNetworksCmd;
|
||||
import org.apache.cloudstack.api.command.user.network.RestartNetworkCmd;
|
||||
import org.apache.log4j.Logger;
|
||||
|
||||
import javax.ejb.Local;
|
||||
import javax.naming.ConfigurationException;
|
||||
import java.security.InvalidParameterException;
|
||||
import java.sql.PreparedStatement;
|
||||
import java.sql.ResultSet;
|
||||
import java.sql.SQLException;
|
||||
import java.util.*;
|
||||
|
||||
/**
|
||||
* NetworkServiceImpl implements NetworkService.
|
||||
|
|
@ -1623,10 +1579,8 @@ public class NetworkServiceImpl implements NetworkService, Manager {
|
|||
continue;
|
||||
}
|
||||
long isDefault = (nic.isDefaultNic()) ? 1 : 0;
|
||||
UsageEventVO usageEvent = new UsageEventVO(EventTypes.EVENT_NETWORK_OFFERING_REMOVE, vm.getAccountId(), vm.getDataCenterIdToDeployIn(), vm.getId(), null, oldNetworkOfferingId, null, 0L);
|
||||
_usageEventDao.persist(usageEvent);
|
||||
usageEvent = new UsageEventVO(EventTypes.EVENT_NETWORK_OFFERING_ASSIGN, vm.getAccountId(), vm.getDataCenterIdToDeployIn(), vm.getId(), vm.getHostName(), networkOfferingId, null, isDefault);
|
||||
_usageEventDao.persist(usageEvent);
|
||||
UsageEventUtils.saveUsageEvent(EventTypes.EVENT_NETWORK_OFFERING_REMOVE, vm.getAccountId(), vm.getDataCenterIdToDeployIn(), vm.getId(), null, oldNetworkOfferingId, null, 0L);
|
||||
UsageEventUtils.saveUsageEvent(EventTypes.EVENT_NETWORK_OFFERING_ASSIGN, vm.getAccountId(), vm.getDataCenterIdToDeployIn(), vm.getId(), vm.getHostName(), networkOfferingId, null, isDefault);
|
||||
}
|
||||
txn.commit();
|
||||
} else {
|
||||
|
|
|
|||
|
|
@ -16,55 +16,31 @@
|
|||
// under the License.
|
||||
package com.cloud.network.firewall;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
import javax.ejb.Local;
|
||||
import javax.naming.ConfigurationException;
|
||||
|
||||
import org.apache.cloudstack.api.command.user.firewall.ListFirewallRulesCmd;
|
||||
import org.apache.log4j.Logger;
|
||||
|
||||
import com.cloud.configuration.Config;
|
||||
import com.cloud.configuration.dao.ConfigurationDao;
|
||||
import com.cloud.domain.dao.DomainDao;
|
||||
import com.cloud.event.ActionEvent;
|
||||
import com.cloud.event.EventTypes;
|
||||
import com.cloud.event.UsageEventUtils;
|
||||
import com.cloud.event.dao.EventDao;
|
||||
import com.cloud.event.dao.UsageEventDao;
|
||||
import com.cloud.event.UsageEventGenerator;
|
||||
import com.cloud.exception.InvalidParameterValueException;
|
||||
import com.cloud.exception.NetworkRuleConflictException;
|
||||
import com.cloud.exception.ResourceUnavailableException;
|
||||
import com.cloud.network.IPAddressVO;
|
||||
import com.cloud.network.IpAddress;
|
||||
import com.cloud.network.Network;
|
||||
import com.cloud.network.*;
|
||||
import com.cloud.network.Network.Capability;
|
||||
import com.cloud.network.Network.Service;
|
||||
import com.cloud.network.NetworkManager;
|
||||
import com.cloud.network.NetworkModel;
|
||||
import com.cloud.network.NetworkRuleApplier;
|
||||
import com.cloud.network.dao.FirewallRulesCidrsDao;
|
||||
import com.cloud.network.dao.FirewallRulesDao;
|
||||
import com.cloud.network.dao.IPAddressDao;
|
||||
import com.cloud.network.element.FirewallServiceProvider;
|
||||
import com.cloud.network.element.NetworkACLServiceProvider;
|
||||
import com.cloud.network.element.NetworkElement;
|
||||
import com.cloud.network.element.PortForwardingServiceProvider;
|
||||
import com.cloud.network.element.StaticNatServiceProvider;
|
||||
import com.cloud.network.rules.FirewallManager;
|
||||
import com.cloud.network.rules.FirewallRule;
|
||||
import com.cloud.network.rules.*;
|
||||
import com.cloud.network.rules.FirewallRule.FirewallRuleType;
|
||||
import com.cloud.network.rules.FirewallRule.Purpose;
|
||||
import com.cloud.network.rules.FirewallRule.State;
|
||||
import com.cloud.network.rules.FirewallRuleVO;
|
||||
import com.cloud.network.rules.PortForwardingRule;
|
||||
import com.cloud.network.rules.PortForwardingRuleVO;
|
||||
import com.cloud.network.rules.StaticNat;
|
||||
import com.cloud.network.rules.dao.PortForwardingRulesDao;
|
||||
import com.cloud.network.vpc.VpcManager;
|
||||
import com.cloud.projects.Project.ListProjectResourcesCriteria;
|
||||
|
|
@ -80,17 +56,18 @@ import com.cloud.utils.Ternary;
|
|||
import com.cloud.utils.component.Adapters;
|
||||
import com.cloud.utils.component.Inject;
|
||||
import com.cloud.utils.component.Manager;
|
||||
import com.cloud.utils.db.DB;
|
||||
import com.cloud.utils.db.Filter;
|
||||
import com.cloud.utils.db.JoinBuilder;
|
||||
import com.cloud.utils.db.SearchBuilder;
|
||||
import com.cloud.utils.db.SearchCriteria;
|
||||
import com.cloud.utils.db.*;
|
||||
import com.cloud.utils.db.SearchCriteria.Op;
|
||||
import com.cloud.utils.db.Transaction;
|
||||
import com.cloud.utils.exception.CloudRuntimeException;
|
||||
import com.cloud.utils.net.NetUtils;
|
||||
import com.cloud.vm.UserVmVO;
|
||||
import com.cloud.vm.dao.UserVmDao;
|
||||
import org.apache.cloudstack.api.command.user.firewall.ListFirewallRulesCmd;
|
||||
import org.apache.log4j.Logger;
|
||||
|
||||
import javax.ejb.Local;
|
||||
import javax.naming.ConfigurationException;
|
||||
import java.util.*;
|
||||
|
||||
@Local(value = { FirewallService.class, FirewallManager.class})
|
||||
public class FirewallManagerImpl implements FirewallService, FirewallManager, NetworkRuleApplier, Manager {
|
||||
|
|
@ -630,7 +607,8 @@ public class FirewallManagerImpl implements FirewallService, FirewallManager, Ne
|
|||
}
|
||||
|
||||
if (generateUsageEvent && needUsageEvent) {
|
||||
UsageEventGenerator.publishUsageEvent(EventTypes.EVENT_NET_RULE_DELETE, rule.getAccountId(), 0, rule.getId(), null);
|
||||
UsageEventUtils.publishUsageEvent(EventTypes.EVENT_NET_RULE_DELETE, rule.getAccountId(), 0, rule.getId(),
|
||||
null, rule.getClass().getName(), rule.getUuid());
|
||||
}
|
||||
|
||||
txn.commit();
|
||||
|
|
|
|||
|
|
@ -20,17 +20,16 @@ import java.util.List;
|
|||
|
||||
import javax.ejb.Local;
|
||||
|
||||
import com.cloud.event.ActionEventUtils;
|
||||
import org.apache.log4j.Logger;
|
||||
|
||||
import com.cloud.configuration.Config;
|
||||
import com.cloud.configuration.dao.ConfigurationDao;
|
||||
import com.cloud.dc.DataCenter;
|
||||
import com.cloud.dc.DataCenter.NetworkType;
|
||||
import com.cloud.dc.dao.DataCenterDao;
|
||||
import com.cloud.deploy.DeployDestination;
|
||||
import com.cloud.deploy.DeploymentPlan;
|
||||
import com.cloud.event.EventTypes;
|
||||
import com.cloud.event.EventUtils;
|
||||
import com.cloud.event.EventVO;
|
||||
import com.cloud.exception.InsufficientAddressCapacityException;
|
||||
import com.cloud.exception.InsufficientVirtualNetworkCapcityException;
|
||||
|
|
@ -42,9 +41,7 @@ import com.cloud.network.NetworkVO;
|
|||
import com.cloud.network.Networks.BroadcastDomainType;
|
||||
import com.cloud.network.PhysicalNetwork;
|
||||
import com.cloud.network.PhysicalNetwork.IsolationMethod;
|
||||
import com.cloud.network.PhysicalNetworkVO;
|
||||
import com.cloud.network.dao.NetworkDao;
|
||||
import com.cloud.network.dao.PhysicalNetworkDao;
|
||||
import com.cloud.network.rules.PortForwardingRuleVO;
|
||||
import com.cloud.network.rules.dao.PortForwardingRulesDao;
|
||||
import com.cloud.offering.NetworkOffering;
|
||||
|
|
@ -142,7 +139,7 @@ public class ExternalGuestNetworkGuru extends GuestNetworkGuru {
|
|||
}
|
||||
|
||||
implemented.setBroadcastUri(BroadcastDomainType.Vlan.toUri(vlanTag));
|
||||
EventUtils.saveActionEvent(UserContext.current().getCallerUserId(), config.getAccountId(), EventVO.LEVEL_INFO, EventTypes.EVENT_ZONE_VLAN_ASSIGN, "Assigned Zone Vlan: "+vnet+ " Network Id: "+config.getId(), 0);
|
||||
ActionEventUtils.onCompletedActionEvent(UserContext.current().getCallerUserId(), config.getAccountId(), EventVO.LEVEL_INFO, EventTypes.EVENT_ZONE_VLAN_ASSIGN, "Assigned Zone Vlan: " + vnet + " Network Id: " + config.getId(), 0);
|
||||
} else {
|
||||
vlanTag = Integer.parseInt(config.getBroadcastUri().getHost());
|
||||
implemented.setBroadcastUri(config.getBroadcastUri());
|
||||
|
|
|
|||
|
|
@ -19,12 +19,12 @@ package com.cloud.network.guru;
|
|||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Random;
|
||||
import java.util.Set;
|
||||
import java.util.SortedSet;
|
||||
import java.util.TreeSet;
|
||||
|
||||
import javax.ejb.Local;
|
||||
|
||||
import com.cloud.event.ActionEventUtils;
|
||||
import org.apache.log4j.Logger;
|
||||
|
||||
import com.cloud.configuration.Config;
|
||||
|
|
@ -36,7 +36,6 @@ import com.cloud.dc.dao.VlanDao;
|
|||
import com.cloud.deploy.DeployDestination;
|
||||
import com.cloud.deploy.DeploymentPlan;
|
||||
import com.cloud.event.EventTypes;
|
||||
import com.cloud.event.EventUtils;
|
||||
import com.cloud.event.EventVO;
|
||||
import com.cloud.exception.InsufficientAddressCapacityException;
|
||||
import com.cloud.exception.InsufficientVirtualNetworkCapcityException;
|
||||
|
|
@ -298,8 +297,8 @@ public abstract class GuestNetworkGuru extends AdapterBase implements NetworkGur
|
|||
"part of network " + network + " implement ", DataCenter.class, dcId);
|
||||
}
|
||||
implemented.setBroadcastUri(BroadcastDomainType.Vlan.toUri(vnet));
|
||||
EventUtils.saveActionEvent(UserContext.current().getCallerUserId(), network.getAccountId(),
|
||||
EventVO.LEVEL_INFO, EventTypes.EVENT_ZONE_VLAN_ASSIGN, "Assigned Zone Vlan: "+vnet+ " Network Id: "+network.getId(), 0);
|
||||
ActionEventUtils.onCompletedActionEvent(UserContext.current().getCallerUserId(), network.getAccountId(),
|
||||
EventVO.LEVEL_INFO, EventTypes.EVENT_ZONE_VLAN_ASSIGN, "Assigned Zone Vlan: " + vnet + " Network Id: " + network.getId(), 0);
|
||||
} else {
|
||||
implemented.setBroadcastUri(network.getBroadcastUri());
|
||||
}
|
||||
|
|
@ -433,9 +432,9 @@ public abstract class GuestNetworkGuru extends AdapterBase implements NetworkGur
|
|||
s_logger.debug("Releasing vnet for the network id=" + profile.getId());
|
||||
_dcDao.releaseVnet(profile.getBroadcastUri().getHost(), profile.getDataCenterId(),
|
||||
profile.getPhysicalNetworkId(), profile.getAccountId(), profile.getReservationId());
|
||||
EventUtils.saveActionEvent(UserContext.current().getCallerUserId(), profile.getAccountId(),
|
||||
ActionEventUtils.onCompletedActionEvent(UserContext.current().getCallerUserId(), profile.getAccountId(),
|
||||
EventVO.LEVEL_INFO, EventTypes.EVENT_ZONE_VLAN_RELEASE, "Released Zone Vlan: "
|
||||
+profile.getBroadcastUri().getHost()+" for Network: "+profile.getId(), 0);
|
||||
+ profile.getBroadcastUri().getHost() + " for Network: " + profile.getId(), 0);
|
||||
}
|
||||
profile.setBroadcastUri(null);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -30,6 +30,7 @@ import java.util.Set;
|
|||
import javax.ejb.Local;
|
||||
import javax.naming.ConfigurationException;
|
||||
|
||||
import com.cloud.event.UsageEventUtils;
|
||||
import org.apache.cloudstack.api.command.user.loadbalancer.*;
|
||||
import org.apache.log4j.Logger;
|
||||
|
||||
|
|
@ -47,7 +48,6 @@ import com.cloud.dc.dao.VlanDao;
|
|||
import com.cloud.domain.dao.DomainDao;
|
||||
import com.cloud.event.ActionEvent;
|
||||
import com.cloud.event.EventTypes;
|
||||
import com.cloud.event.UsageEventGenerator;
|
||||
import com.cloud.event.dao.EventDao;
|
||||
import com.cloud.event.dao.UsageEventDao;
|
||||
import com.cloud.exception.InsufficientAddressCapacityException;
|
||||
|
|
@ -93,7 +93,6 @@ import com.cloud.network.dao.LoadBalancerVMMapDao;
|
|||
import com.cloud.network.dao.NetworkDao;
|
||||
import com.cloud.network.dao.NetworkServiceMapDao;
|
||||
import com.cloud.network.element.LoadBalancingServiceProvider;
|
||||
import com.cloud.network.element.NetworkElement;
|
||||
import com.cloud.network.lb.LoadBalancingRule.LbAutoScalePolicy;
|
||||
import com.cloud.network.lb.LoadBalancingRule.LbAutoScaleVmGroup;
|
||||
import com.cloud.network.lb.LoadBalancingRule.LbAutoScaleVmProfile;
|
||||
|
|
@ -871,7 +870,8 @@ public class LoadBalancingRulesManagerImpl<Type> implements LoadBalancingRulesMa
|
|||
|
||||
if (generateUsageEvent) {
|
||||
// Generate usage event right after all rules were marked for revoke
|
||||
UsageEventGenerator.publishUsageEvent(EventTypes.EVENT_LOAD_BALANCER_DELETE, lb.getAccountId(), 0, lb.getId(), null);
|
||||
UsageEventUtils.publishUsageEvent(EventTypes.EVENT_LOAD_BALANCER_DELETE, lb.getAccountId(), 0, lb.getId(),
|
||||
null, LoadBalancingRule.class.getName(), lb.getUuid());
|
||||
}
|
||||
|
||||
txn.commit();
|
||||
|
|
@ -1102,7 +1102,8 @@ public class LoadBalancingRulesManagerImpl<Type> implements LoadBalancingRulesMa
|
|||
}
|
||||
s_logger.debug("Load balancer " + newRule.getId() + " for Ip address id=" + sourceIpId + ", public port " + srcPortStart + ", private port " + defPortStart + " is added successfully.");
|
||||
UserContext.current().setEventDetails("Load balancer Id: " + newRule.getId());
|
||||
UsageEventGenerator.publishUsageEvent(EventTypes.EVENT_LOAD_BALANCER_CREATE, ipAddr.getAllocatedToAccountId(), ipAddr.getDataCenterId(), newRule.getId(), null);
|
||||
UsageEventUtils.publishUsageEvent(EventTypes.EVENT_LOAD_BALANCER_CREATE, ipAddr.getAllocatedToAccountId(),
|
||||
ipAddr.getDataCenterId(), newRule.getId(), null, LoadBalancingRule.class.getName(), newRule.getUuid());
|
||||
txn.commit();
|
||||
|
||||
return newRule;
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@ import com.cloud.configuration.ConfigurationManager;
|
|||
import com.cloud.domain.dao.DomainDao;
|
||||
import com.cloud.event.ActionEvent;
|
||||
import com.cloud.event.EventTypes;
|
||||
import com.cloud.event.UsageEventGenerator;
|
||||
import com.cloud.event.UsageEventUtils;
|
||||
import com.cloud.event.dao.EventDao;
|
||||
import com.cloud.event.dao.UsageEventDao;
|
||||
import com.cloud.exception.InsufficientAddressCapacityException;
|
||||
|
|
@ -276,8 +276,9 @@ public class RulesManagerImpl implements RulesManager, RulesService, Manager {
|
|||
throw new CloudRuntimeException("Unable to update the state to add for " + newRule);
|
||||
}
|
||||
UserContext.current().setEventDetails("Rule Id: " + newRule.getId());
|
||||
UsageEventGenerator.publishUsageEvent(EventTypes.EVENT_NET_RULE_ADD, newRule.getAccountId(),
|
||||
ipAddress.getDataCenterId(), newRule.getId(), null);
|
||||
UsageEventUtils.publishUsageEvent(EventTypes.EVENT_NET_RULE_ADD, newRule.getAccountId(),
|
||||
ipAddress.getDataCenterId(), newRule.getId(), null, PortForwardingRule.class.getName(),
|
||||
newRule.getUuid());
|
||||
txn.commit();
|
||||
return newRule;
|
||||
} catch (Exception e) {
|
||||
|
|
@ -357,7 +358,8 @@ public class RulesManagerImpl implements RulesManager, RulesService, Manager {
|
|||
throw new CloudRuntimeException("Unable to update the state to add for " + newRule);
|
||||
}
|
||||
UserContext.current().setEventDetails("Rule Id: " + newRule.getId());
|
||||
UsageEventGenerator.publishUsageEvent(EventTypes.EVENT_NET_RULE_ADD, newRule.getAccountId(), 0, newRule.getId(), null);
|
||||
UsageEventUtils.publishUsageEvent(EventTypes.EVENT_NET_RULE_ADD, newRule.getAccountId(), 0, newRule.getId(),
|
||||
null, FirewallRule.class.getName(), newRule.getUuid());
|
||||
|
||||
txn.commit();
|
||||
StaticNatRule staticNatRule = new StaticNatRuleImpl(newRule, dstIp);
|
||||
|
|
|
|||
|
|
@ -16,30 +16,6 @@
|
|||
// under the License.
|
||||
package com.cloud.network.security;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.Comparator;
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Random;
|
||||
import java.util.Set;
|
||||
import java.util.TreeMap;
|
||||
import java.util.TreeSet;
|
||||
import java.util.concurrent.Executors;
|
||||
import java.util.concurrent.ScheduledExecutorService;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
import javax.ejb.Local;
|
||||
import javax.naming.ConfigurationException;
|
||||
|
||||
import org.apache.cloudstack.api.command.user.securitygroup.*;
|
||||
import org.apache.commons.codec.digest.DigestUtils;
|
||||
import org.apache.log4j.Logger;
|
||||
|
||||
import com.cloud.agent.AgentManager;
|
||||
import com.cloud.agent.api.NetworkRulesSystemVmCommand;
|
||||
import com.cloud.agent.api.SecurityGroupRulesCmd;
|
||||
|
|
@ -47,32 +23,20 @@ import com.cloud.agent.api.SecurityGroupRulesCmd.IpPortAndProto;
|
|||
import com.cloud.agent.manager.Commands;
|
||||
import com.cloud.api.query.dao.SecurityGroupJoinDao;
|
||||
import com.cloud.api.query.vo.SecurityGroupJoinVO;
|
||||
|
||||
import org.apache.cloudstack.api.command.user.securitygroup.RevokeSecurityGroupEgressCmd;
|
||||
import com.cloud.configuration.Config;
|
||||
import com.cloud.configuration.dao.ConfigurationDao;
|
||||
import com.cloud.domain.dao.DomainDao;
|
||||
import com.cloud.event.ActionEvent;
|
||||
import com.cloud.event.EventTypes;
|
||||
import com.cloud.event.UsageEventGenerator;
|
||||
import com.cloud.exception.AgentUnavailableException;
|
||||
import com.cloud.exception.InvalidParameterValueException;
|
||||
import com.cloud.exception.OperationTimedoutException;
|
||||
import com.cloud.exception.PermissionDeniedException;
|
||||
import com.cloud.exception.ResourceInUseException;
|
||||
import com.cloud.event.UsageEventUtils;
|
||||
import com.cloud.exception.*;
|
||||
import com.cloud.hypervisor.Hypervisor.HypervisorType;
|
||||
import com.cloud.network.Network;
|
||||
import com.cloud.network.NetworkManager;
|
||||
import com.cloud.network.NetworkModel;
|
||||
import com.cloud.network.security.SecurityGroupWork.Step;
|
||||
import com.cloud.network.security.SecurityRule.SecurityRuleType;
|
||||
import com.cloud.network.security.dao.SecurityGroupDao;
|
||||
import com.cloud.network.security.dao.SecurityGroupRuleDao;
|
||||
import com.cloud.network.security.dao.SecurityGroupRulesDao;
|
||||
import com.cloud.network.security.dao.SecurityGroupVMMapDao;
|
||||
import com.cloud.network.security.dao.SecurityGroupWorkDao;
|
||||
import com.cloud.network.security.dao.VmRulesetLogDao;
|
||||
import com.cloud.projects.Project.ListProjectResourcesCriteria;
|
||||
import com.cloud.network.security.dao.*;
|
||||
import com.cloud.projects.ProjectManager;
|
||||
import com.cloud.server.ManagementServer;
|
||||
import com.cloud.tags.dao.ResourceTagDao;
|
||||
|
|
@ -84,7 +48,6 @@ import com.cloud.user.dao.AccountDao;
|
|||
import com.cloud.uservm.UserVm;
|
||||
import com.cloud.utils.NumbersUtil;
|
||||
import com.cloud.utils.Pair;
|
||||
import com.cloud.utils.Ternary;
|
||||
import com.cloud.utils.component.ComponentLocator;
|
||||
import com.cloud.utils.component.Inject;
|
||||
import com.cloud.utils.component.Manager;
|
||||
|
|
@ -92,26 +55,26 @@ import com.cloud.utils.concurrency.NamedThreadFactory;
|
|||
import com.cloud.utils.db.DB;
|
||||
import com.cloud.utils.db.Filter;
|
||||
import com.cloud.utils.db.GlobalLock;
|
||||
import com.cloud.utils.db.SearchBuilder;
|
||||
import com.cloud.utils.db.SearchCriteria;
|
||||
import com.cloud.utils.db.Transaction;
|
||||
import com.cloud.utils.db.SearchCriteria.Func;
|
||||
import com.cloud.utils.exception.CloudRuntimeException;
|
||||
import com.cloud.utils.fsm.StateListener;
|
||||
import com.cloud.utils.net.NetUtils;
|
||||
import com.cloud.vm.Nic;
|
||||
import com.cloud.vm.NicProfile;
|
||||
import com.cloud.vm.UserVmManager;
|
||||
import com.cloud.vm.UserVmVO;
|
||||
import com.cloud.vm.VMInstanceVO;
|
||||
import com.cloud.vm.VirtualMachine;
|
||||
import com.cloud.vm.*;
|
||||
import com.cloud.vm.VirtualMachine.Event;
|
||||
import com.cloud.vm.VirtualMachine.State;
|
||||
import com.cloud.vm.VirtualMachineManager;
|
||||
import com.cloud.vm.dao.UserVmDao;
|
||||
import com.cloud.vm.dao.VMInstanceDao;
|
||||
|
||||
import edu.emory.mathcs.backport.java.util.Collections;
|
||||
import org.apache.cloudstack.api.command.user.securitygroup.*;
|
||||
import org.apache.commons.codec.digest.DigestUtils;
|
||||
import org.apache.log4j.Logger;
|
||||
|
||||
import javax.ejb.Local;
|
||||
import javax.naming.ConfigurationException;
|
||||
import java.util.*;
|
||||
import java.util.concurrent.Executors;
|
||||
import java.util.concurrent.ScheduledExecutorService;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
@Local(value = { SecurityGroupManager.class, SecurityGroupService.class })
|
||||
public class SecurityGroupManagerImpl implements SecurityGroupManager, SecurityGroupService, Manager, StateListener<State, VirtualMachine.Event, VirtualMachine> {
|
||||
|
|
@ -457,7 +420,9 @@ public class SecurityGroupManagerImpl implements SecurityGroupManager, SecurityG
|
|||
// For each group, find the security rules that allow the group
|
||||
for (SecurityGroupVMMapVO mapVO : groupsForVm) {// FIXME: use custom sql in the dao
|
||||
//Add usage events for security group assign
|
||||
UsageEventGenerator.publishUsageEvent(EventTypes.EVENT_SECURITY_GROUP_ASSIGN, vm.getAccountId(), vm.getDataCenterIdToDeployIn(), vm.getId(), mapVO.getSecurityGroupId());
|
||||
UsageEventUtils.publishUsageEvent(EventTypes.EVENT_SECURITY_GROUP_ASSIGN, vm.getAccountId(),
|
||||
vm.getDataCenterIdToDeployIn(), vm.getId(), mapVO.getSecurityGroupId(),
|
||||
vm.getClass().getName(), vm.getUuid());
|
||||
|
||||
List<SecurityGroupRuleVO> allowingRules = _securityGroupRuleDao.listByAllowedSecurityGroupId(mapVO.getSecurityGroupId());
|
||||
// For each security rule that allows a group that the vm belongs to, find the group it belongs to
|
||||
|
|
@ -472,7 +437,9 @@ public class SecurityGroupManagerImpl implements SecurityGroupManager, SecurityG
|
|||
// For each group, find the security rules rules that allow the group
|
||||
for (SecurityGroupVMMapVO mapVO : groupsForVm) {// FIXME: use custom sql in the dao
|
||||
//Add usage events for security group remove
|
||||
UsageEventGenerator.publishUsageEvent(EventTypes.EVENT_SECURITY_GROUP_REMOVE, vm.getAccountId(), vm.getDataCenterIdToDeployIn(), vm.getId(), mapVO.getSecurityGroupId());
|
||||
UsageEventUtils.publishUsageEvent(EventTypes.EVENT_SECURITY_GROUP_REMOVE,
|
||||
vm.getAccountId(), vm.getDataCenterIdToDeployIn(), vm.getId(), mapVO.getSecurityGroupId(),
|
||||
vm.getClass().getName(), vm.getUuid());
|
||||
|
||||
List<SecurityGroupRuleVO> allowingRules = _securityGroupRuleDao.listByAllowedSecurityGroupId(mapVO.getSecurityGroupId());
|
||||
// For each security rule that allows a group that the vm belongs to, find the group it belongs to
|
||||
|
|
|
|||
|
|
@ -16,45 +16,24 @@
|
|||
// under the License.
|
||||
package com.cloud.network.vpn;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Enumeration;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import javax.ejb.Local;
|
||||
import javax.naming.ConfigurationException;
|
||||
|
||||
import org.apache.cloudstack.api.command.user.vpn.ListVpnUsersCmd;
|
||||
import org.apache.log4j.Logger;
|
||||
|
||||
import org.apache.cloudstack.api.command.user.vpn.ListRemoteAccessVpnsCmd;
|
||||
import com.cloud.configuration.Config;
|
||||
import com.cloud.configuration.dao.ConfigurationDao;
|
||||
import com.cloud.domain.DomainVO;
|
||||
import com.cloud.domain.dao.DomainDao;
|
||||
import com.cloud.event.EventTypes;
|
||||
import com.cloud.event.UsageEventUtils;
|
||||
import com.cloud.event.dao.UsageEventDao;
|
||||
import com.cloud.event.UsageEventGenerator;
|
||||
import com.cloud.event.UsageEventGenerator;
|
||||
import com.cloud.exception.AccountLimitException;
|
||||
import com.cloud.exception.InvalidParameterValueException;
|
||||
import com.cloud.exception.NetworkRuleConflictException;
|
||||
import com.cloud.exception.ResourceUnavailableException;
|
||||
import com.cloud.network.IPAddressVO;
|
||||
import com.cloud.network.Network;
|
||||
import com.cloud.network.*;
|
||||
import com.cloud.network.Network.Service;
|
||||
import com.cloud.network.NetworkModel;
|
||||
import com.cloud.network.PublicIpAddress;
|
||||
import com.cloud.network.RemoteAccessVpn;
|
||||
import com.cloud.network.RemoteAccessVpnVO;
|
||||
import com.cloud.network.VpnUser;
|
||||
import com.cloud.network.VpnUser.State;
|
||||
import com.cloud.network.VpnUserVO;
|
||||
import com.cloud.network.dao.FirewallRulesDao;
|
||||
import com.cloud.network.dao.IPAddressDao;
|
||||
import com.cloud.network.dao.RemoteAccessVpnDao;
|
||||
import com.cloud.network.dao.VpnUserDao;
|
||||
import com.cloud.network.element.NetworkElement;
|
||||
import com.cloud.network.element.RemoteAccessVPNServiceProvider;
|
||||
import com.cloud.network.rules.FirewallManager;
|
||||
import com.cloud.network.rules.FirewallRule;
|
||||
|
|
@ -75,14 +54,19 @@ import com.cloud.utils.component.Adapters;
|
|||
import com.cloud.utils.component.ComponentLocator;
|
||||
import com.cloud.utils.component.Inject;
|
||||
import com.cloud.utils.component.Manager;
|
||||
import com.cloud.utils.db.DB;
|
||||
import com.cloud.utils.db.Filter;
|
||||
import com.cloud.utils.db.JoinBuilder;
|
||||
import com.cloud.utils.db.SearchBuilder;
|
||||
import com.cloud.utils.db.SearchCriteria;
|
||||
import com.cloud.utils.db.*;
|
||||
import com.cloud.utils.db.SearchCriteria.Op;
|
||||
import com.cloud.utils.db.Transaction;
|
||||
import com.cloud.utils.net.NetUtils;
|
||||
import org.apache.cloudstack.api.command.user.vpn.ListRemoteAccessVpnsCmd;
|
||||
import org.apache.cloudstack.api.command.user.vpn.ListVpnUsersCmd;
|
||||
import org.apache.log4j.Logger;
|
||||
|
||||
import javax.ejb.Local;
|
||||
import javax.naming.ConfigurationException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Enumeration;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
@Local(value = RemoteAccessVpnService.class)
|
||||
public class RemoteAccessVpnManagerImpl implements RemoteAccessVpnService, Manager {
|
||||
|
|
@ -282,7 +266,8 @@ public class RemoteAccessVpnManagerImpl implements RemoteAccessVpnService, Manag
|
|||
for(VpnUserVO user : vpnUsers){
|
||||
// VPN_USER_REMOVE event is already generated for users in Revoke state
|
||||
if(user.getState() != VpnUser.State.Revoke){
|
||||
UsageEventGenerator.publishUsageEvent(EventTypes.EVENT_VPN_USER_REMOVE, user.getAccountId(), 0, user.getId(), user.getUsername());
|
||||
UsageEventUtils.publishUsageEvent(EventTypes.EVENT_VPN_USER_REMOVE, user.getAccountId(),
|
||||
0, user.getId(), user.getUsername(), user.getClass().getName(), user.getUuid());
|
||||
}
|
||||
}
|
||||
if (vpnFwRules != null) {
|
||||
|
|
@ -333,7 +318,8 @@ public class RemoteAccessVpnManagerImpl implements RemoteAccessVpnService, Manag
|
|||
}
|
||||
|
||||
VpnUser user = _vpnUsersDao.persist(new VpnUserVO(vpnOwnerId, owner.getDomainId(), username, password));
|
||||
UsageEventGenerator.publishUsageEvent(EventTypes.EVENT_VPN_USER_ADD, user.getAccountId(), 0, user.getId(), user.getUsername());
|
||||
UsageEventUtils.publishUsageEvent(EventTypes.EVENT_VPN_USER_ADD, user.getAccountId(), 0, user.getId(),
|
||||
user.getUsername(), user.getClass().getName(), user.getUuid());
|
||||
txn.commit();
|
||||
return user;
|
||||
}
|
||||
|
|
@ -349,7 +335,8 @@ public class RemoteAccessVpnManagerImpl implements RemoteAccessVpnService, Manag
|
|||
txn.start();
|
||||
user.setState(State.Revoke);
|
||||
_vpnUsersDao.update(user.getId(), user);
|
||||
UsageEventGenerator.publishUsageEvent(EventTypes.EVENT_VPN_USER_REMOVE, user.getAccountId(), 0, user.getId(), user.getUsername());
|
||||
UsageEventUtils.publishUsageEvent(EventTypes.EVENT_VPN_USER_REMOVE, user.getAccountId(), 0, user.getId(),
|
||||
user.getUsername(), user.getClass().getName(), user.getUuid());
|
||||
txn.commit();
|
||||
return true;
|
||||
}
|
||||
|
|
@ -405,7 +392,8 @@ public class RemoteAccessVpnManagerImpl implements RemoteAccessVpnService, Manag
|
|||
List<VpnUserVO> vpnUsers = _vpnUsersDao.listByAccount(vpn.getAccountId());
|
||||
for(VpnUserVO user : vpnUsers){
|
||||
if(user.getState() != VpnUser.State.Revoke){
|
||||
UsageEventGenerator.publishUsageEvent(EventTypes.EVENT_VPN_USER_ADD, user.getAccountId(), 0, user.getId(), user.getUsername());
|
||||
UsageEventUtils.publishUsageEvent(EventTypes.EVENT_VPN_USER_ADD, user.getAccountId(), 0,
|
||||
user.getId(), user.getUsername(), user.getClass().getName(), user.getUuid());
|
||||
}
|
||||
}
|
||||
txn.commit();
|
||||
|
|
@ -480,7 +468,8 @@ public class RemoteAccessVpnManagerImpl implements RemoteAccessVpnService, Manag
|
|||
Transaction txn = Transaction.currentTxn();
|
||||
txn.start();
|
||||
_vpnUsersDao.remove(user.getId());
|
||||
UsageEventGenerator.publishUsageEvent(EventTypes.EVENT_VPN_USER_REMOVE, user.getAccountId(), 0, user.getId(), user.getUsername());
|
||||
UsageEventUtils.publishUsageEvent(EventTypes.EVENT_VPN_USER_REMOVE, user.getAccountId(),
|
||||
0, user.getId(), user.getUsername(), user.getClass().getName(), user.getUuid());
|
||||
txn.commit();
|
||||
}
|
||||
s_logger.warn("Failed to apply vpn for user " + user.getUsername() + ", accountId=" + user.getAccountId());
|
||||
|
|
|
|||
|
|
@ -29,7 +29,6 @@ import java.util.Date;
|
|||
import java.util.Enumeration;
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
|
@ -42,6 +41,7 @@ import java.util.concurrent.TimeUnit;
|
|||
import javax.crypto.Mac;
|
||||
import javax.crypto.spec.SecretKeySpec;
|
||||
|
||||
import com.cloud.event.ActionEventUtils;
|
||||
import org.apache.cloudstack.api.BaseUpdateTemplateOrIsoCmd;
|
||||
import org.apache.cloudstack.api.command.admin.cluster.ListClustersCmd;
|
||||
import org.apache.cloudstack.api.command.admin.config.ListCfgsByCmd;
|
||||
|
|
@ -60,7 +60,6 @@ import org.apache.cloudstack.api.command.user.ssh.RegisterSSHKeyPairCmd;
|
|||
import org.apache.cloudstack.api.command.user.template.ListTemplatesCmd;
|
||||
import org.apache.cloudstack.api.command.user.template.UpdateTemplateCmd;
|
||||
import org.apache.cloudstack.api.command.user.vm.GetVMPasswordCmd;
|
||||
import org.apache.cloudstack.api.command.user.zone.ListZonesByCmd;
|
||||
import org.apache.commons.codec.binary.Base64;
|
||||
import org.apache.log4j.Logger;
|
||||
|
||||
|
|
@ -128,7 +127,6 @@ import com.cloud.domain.DomainVO;
|
|||
import com.cloud.domain.dao.DomainDao;
|
||||
import com.cloud.event.ActionEvent;
|
||||
import com.cloud.event.EventTypes;
|
||||
import com.cloud.event.EventUtils;
|
||||
import com.cloud.event.EventVO;
|
||||
import com.cloud.event.dao.EventDao;
|
||||
import com.cloud.exception.ConcurrentOperationException;
|
||||
|
|
@ -230,7 +228,6 @@ import com.cloud.utils.net.MacAddress;
|
|||
import com.cloud.utils.net.NetUtils;
|
||||
import com.cloud.utils.ssh.SSHKeysHelper;
|
||||
import com.cloud.vm.ConsoleProxyVO;
|
||||
import com.cloud.vm.DomainRouterVO;
|
||||
import com.cloud.vm.InstanceGroupVO;
|
||||
import com.cloud.vm.SecondaryStorageVmVO;
|
||||
import com.cloud.vm.UserVmVO;
|
||||
|
|
@ -2421,12 +2418,12 @@ public class ManagementServerImpl implements ManagementServer {
|
|||
|
||||
@Override
|
||||
public Long saveStartedEvent(Long userId, Long accountId, String type, String description, long startEventId) {
|
||||
return EventUtils.saveStartedActionEvent(userId, accountId, type, description, startEventId);
|
||||
return ActionEventUtils.onStartedActionEvent(userId, accountId, type, description, startEventId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Long saveCompletedEvent(Long userId, Long accountId, String level, String type, String description, long startEventId) {
|
||||
return EventUtils.saveActionEvent(userId, accountId, level, type, description, startEventId);
|
||||
return ActionEventUtils.onCompletedActionEvent(userId, accountId, level, type, description, startEventId);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
|
|
@ -44,6 +44,7 @@ import java.util.concurrent.TimeUnit;
|
|||
import javax.ejb.Local;
|
||||
import javax.naming.ConfigurationException;
|
||||
|
||||
import com.cloud.event.UsageEventUtils;
|
||||
import org.apache.cloudstack.api.command.admin.storage.*;
|
||||
import org.apache.cloudstack.api.command.user.volume.CreateVolumeCmd;
|
||||
import org.apache.cloudstack.api.command.user.volume.UploadVolumeCmd;
|
||||
|
|
@ -104,7 +105,6 @@ import com.cloud.domain.Domain;
|
|||
import com.cloud.domain.dao.DomainDao;
|
||||
import com.cloud.event.ActionEvent;
|
||||
import com.cloud.event.EventTypes;
|
||||
import com.cloud.event.UsageEventGenerator;
|
||||
import com.cloud.event.dao.EventDao;
|
||||
import com.cloud.exception.AgentUnavailableException;
|
||||
import com.cloud.exception.ConcurrentOperationException;
|
||||
|
|
@ -650,9 +650,9 @@ public class StorageManagerImpl implements StorageManager, Manager, ClusterManag
|
|||
Pair<VolumeVO, String> volumeDetails = createVolumeFromSnapshot(volume, snapshot);
|
||||
if (volumeDetails != null) {
|
||||
createdVolume = volumeDetails.first();
|
||||
UsageEventGenerator.publishUsageEvent(EventTypes.EVENT_VOLUME_CREATE, createdVolume.getAccountId(),
|
||||
createdVolume.getDataCenterId(), createdVolume.getId(), createdVolume.getName(), createdVolume.getDiskOfferingId(),
|
||||
null, createdVolume.getSize());
|
||||
UsageEventUtils.publishUsageEvent(EventTypes.EVENT_VOLUME_CREATE, createdVolume.getAccountId(),
|
||||
createdVolume.getDataCenterId(), createdVolume.getId(), createdVolume.getName(), createdVolume.getDiskOfferingId(),
|
||||
null, createdVolume.getSize(), Volume.class.getName(), createdVolume.getUuid());
|
||||
}
|
||||
return createdVolume;
|
||||
}
|
||||
|
|
@ -772,7 +772,9 @@ public class StorageManagerImpl implements StorageManager, Manager, ClusterManag
|
|||
volume.setPoolId(destPool.getId());
|
||||
volume.setPodId(destPool.getPodId());
|
||||
stateTransitTo(volume, Event.CopySucceeded);
|
||||
UsageEventGenerator.publishUsageEvent(EventTypes.EVENT_VOLUME_CREATE, volume.getAccountId(), volume.getDataCenterId(), volume.getId(), volume.getName(), volume.getDiskOfferingId(), null, volume.getSize());
|
||||
UsageEventUtils.publishUsageEvent(EventTypes.EVENT_VOLUME_CREATE, volume.getAccountId(),
|
||||
volume.getDataCenterId(), volume.getId(), volume.getName(), volume.getDiskOfferingId(),
|
||||
null, volume.getSize(), Volume.class.getName(), volume.getUuid());
|
||||
_volumeHostDao.remove(volumeHostVO.getId());
|
||||
txn.commit();
|
||||
return volume;
|
||||
|
|
@ -2055,7 +2057,9 @@ public class StorageManagerImpl implements StorageManager, Manager, ClusterManag
|
|||
volume = _volsDao.persist(volume);
|
||||
if(cmd.getSnapshotId() == null){
|
||||
//for volume created from snapshot, create usage event after volume creation
|
||||
UsageEventGenerator.publishUsageEvent(EventTypes.EVENT_VOLUME_CREATE, volume.getAccountId(), volume.getDataCenterId(), volume.getId(), volume.getName(), diskOfferingId, null, size);
|
||||
UsageEventUtils.publishUsageEvent(EventTypes.EVENT_VOLUME_CREATE, volume.getAccountId(),
|
||||
volume.getDataCenterId(), volume.getId(), volume.getName(), diskOfferingId, null, size,
|
||||
Volume.class.getName(), volume.getUuid());
|
||||
}
|
||||
|
||||
UserContext.current().setEventDetails("Volume Id: " + volume.getId());
|
||||
|
|
@ -2300,7 +2304,9 @@ public class StorageManagerImpl implements StorageManager, Manager, ClusterManag
|
|||
// Decrement the resource count for volumes belonging user VM's only
|
||||
_resourceLimitMgr.decrementResourceCount(volume.getAccountId(), ResourceType.volume);
|
||||
// Log usage event for volumes belonging user VM's only
|
||||
UsageEventGenerator.publishUsageEvent(EventTypes.EVENT_VOLUME_DELETE, volume.getAccountId(), volume.getDataCenterId(), volume.getId(), volume.getName());
|
||||
UsageEventUtils.publishUsageEvent(EventTypes.EVENT_VOLUME_DELETE, volume.getAccountId(),
|
||||
volume.getDataCenterId(), volume.getId(), volume.getName(),
|
||||
Volume.class.getName(), volume.getUuid());
|
||||
}
|
||||
|
||||
try {
|
||||
|
|
@ -3134,7 +3140,9 @@ public class StorageManagerImpl implements StorageManager, Manager, ClusterManag
|
|||
|
||||
// Save usage event and update resource count for user vm volumes
|
||||
if (vm instanceof UserVm) {
|
||||
UsageEventGenerator.publishUsageEvent(EventTypes.EVENT_VOLUME_CREATE, vol.getAccountId(), vol.getDataCenterId(), vol.getId(), vol.getName(), offering.getId(), null, size);
|
||||
UsageEventUtils.publishUsageEvent(EventTypes.EVENT_VOLUME_CREATE, vol.getAccountId(),
|
||||
vol.getDataCenterId(), vol.getId(), vol.getName(), offering.getId(), null, size,
|
||||
Volume.class.getName(), vol.getUuid());
|
||||
_resourceLimitMgr.incrementResourceCount(vm.getAccountId(), ResourceType.volume);
|
||||
}
|
||||
return toDiskProfile(vol, offering);
|
||||
|
|
@ -3195,8 +3203,9 @@ public class StorageManagerImpl implements StorageManager, Manager, ClusterManag
|
|||
offeringId = offering.getId();
|
||||
}
|
||||
|
||||
UsageEventGenerator.publishUsageEvent(EventTypes.EVENT_VOLUME_CREATE, vol.getAccountId(), vol.getDataCenterId(), vol.getId(), vol.getName(), offeringId, template.getId(),
|
||||
vol.getSize());
|
||||
UsageEventUtils.publishUsageEvent(EventTypes.EVENT_VOLUME_CREATE, vol.getAccountId(),
|
||||
vol.getDataCenterId(), vol.getId(), vol.getName(), offeringId, template.getId(),
|
||||
vol.getSize(), Volume.class.getName(), vol.getUuid());
|
||||
|
||||
_resourceLimitMgr.incrementResourceCount(vm.getAccountId(), ResourceType.volume);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -16,36 +16,14 @@
|
|||
// under the License.
|
||||
package com.cloud.storage.download;
|
||||
|
||||
import java.net.URI;
|
||||
import java.net.URISyntaxException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.Timer;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
|
||||
import javax.ejb.Local;
|
||||
|
||||
import org.apache.log4j.Logger;
|
||||
|
||||
import com.cloud.agent.AgentManager;
|
||||
import com.cloud.agent.Listener;
|
||||
import com.cloud.agent.api.Answer;
|
||||
import com.cloud.agent.api.Command;
|
||||
import com.cloud.agent.api.storage.DeleteTemplateCommand;
|
||||
import com.cloud.agent.api.storage.DeleteVolumeCommand;
|
||||
import com.cloud.agent.api.storage.DownloadCommand;
|
||||
import com.cloud.agent.api.storage.ListVolumeAnswer;
|
||||
import com.cloud.agent.api.storage.ListVolumeCommand;
|
||||
import com.cloud.agent.api.storage.*;
|
||||
import com.cloud.agent.api.storage.DownloadCommand.Proxy;
|
||||
import com.cloud.agent.api.storage.DownloadCommand.ResourceType;
|
||||
import com.cloud.agent.api.storage.DownloadProgressCommand;
|
||||
import com.cloud.agent.api.storage.DownloadProgressCommand.RequestType;
|
||||
import com.cloud.agent.api.storage.ListTemplateAnswer;
|
||||
import com.cloud.agent.api.storage.ListTemplateCommand;
|
||||
import com.cloud.agent.manager.Commands;
|
||||
import com.cloud.alert.AlertManager;
|
||||
import com.cloud.configuration.Config;
|
||||
|
|
@ -54,7 +32,7 @@ import com.cloud.dc.DataCenterVO;
|
|||
import com.cloud.dc.dao.ClusterDao;
|
||||
import com.cloud.dc.dao.DataCenterDao;
|
||||
import com.cloud.event.EventTypes;
|
||||
import com.cloud.event.UsageEventGenerator;
|
||||
import com.cloud.event.UsageEventUtils;
|
||||
import com.cloud.exception.AgentUnavailableException;
|
||||
import com.cloud.exception.InvalidParameterValueException;
|
||||
import com.cloud.exception.StorageUnavailableException;
|
||||
|
|
@ -64,26 +42,9 @@ import com.cloud.host.dao.HostDao;
|
|||
import com.cloud.hypervisor.Hypervisor.HypervisorType;
|
||||
import com.cloud.resource.ResourceManager;
|
||||
import com.cloud.storage.Storage.ImageFormat;
|
||||
import com.cloud.storage.StorageManager;
|
||||
import com.cloud.storage.SwiftVO;
|
||||
import com.cloud.storage.VMTemplateHostVO;
|
||||
import com.cloud.storage.VMTemplateStorageResourceAssoc;
|
||||
import com.cloud.storage.Volume;
|
||||
import com.cloud.storage.VolumeHostVO;
|
||||
import com.cloud.storage.VolumeVO;
|
||||
import com.cloud.storage.*;
|
||||
import com.cloud.storage.VMTemplateStorageResourceAssoc.Status;
|
||||
import com.cloud.storage.Volume.Event;
|
||||
import com.cloud.storage.VMTemplateVO;
|
||||
import com.cloud.storage.VMTemplateZoneVO;
|
||||
import com.cloud.storage.dao.StoragePoolHostDao;
|
||||
import com.cloud.storage.dao.SwiftDao;
|
||||
import com.cloud.storage.dao.VMTemplateDao;
|
||||
import com.cloud.storage.dao.VMTemplateHostDao;
|
||||
import com.cloud.storage.dao.VMTemplatePoolDao;
|
||||
import com.cloud.storage.dao.VMTemplateSwiftDao;
|
||||
import com.cloud.storage.dao.VMTemplateZoneDao;
|
||||
import com.cloud.storage.dao.VolumeDao;
|
||||
import com.cloud.storage.dao.VolumeHostDao;
|
||||
import com.cloud.storage.dao.*;
|
||||
import com.cloud.storage.secondary.SecondaryStorageVmManager;
|
||||
import com.cloud.storage.swift.SwiftManager;
|
||||
import com.cloud.storage.template.TemplateConstants;
|
||||
|
|
@ -91,19 +52,21 @@ import com.cloud.storage.template.TemplateInfo;
|
|||
import com.cloud.user.Account;
|
||||
import com.cloud.user.ResourceLimitService;
|
||||
import com.cloud.utils.component.Inject;
|
||||
import com.cloud.utils.db.DB;
|
||||
import com.cloud.utils.db.JoinBuilder;
|
||||
import com.cloud.utils.db.SearchBuilder;
|
||||
import com.cloud.utils.db.SearchCriteria;
|
||||
import com.cloud.utils.db.Transaction;
|
||||
import com.cloud.utils.db.*;
|
||||
import com.cloud.utils.exception.CloudRuntimeException;
|
||||
import com.cloud.utils.fsm.NoTransitionException;
|
||||
import com.cloud.vm.SecondaryStorageVm;
|
||||
import com.cloud.vm.SecondaryStorageVmVO;
|
||||
import com.cloud.vm.UserVmManager;
|
||||
import com.cloud.vm.VirtualMachine.State;
|
||||
import com.cloud.vm.dao.SecondaryStorageVmDao;
|
||||
import edu.emory.mathcs.backport.java.util.Collections;
|
||||
import org.apache.log4j.Logger;
|
||||
|
||||
import javax.ejb.Local;
|
||||
import java.net.URI;
|
||||
import java.net.URISyntaxException;
|
||||
import java.util.*;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
|
||||
|
||||
@Local(value={DownloadMonitor.class})
|
||||
|
|
@ -511,7 +474,9 @@ public class DownloadMonitorImpl implements DownloadMonitor {
|
|||
eventType = EventTypes.EVENT_ISO_CREATE;
|
||||
}
|
||||
if(template.getAccountId() != Account.ACCOUNT_ID_SYSTEM){
|
||||
UsageEventGenerator.publishUsageEvent(eventType, template.getAccountId(), host.getDataCenterId(), template.getId(), template.getName(), null, template.getSourceTemplateId() , size);
|
||||
UsageEventUtils.publishUsageEvent(eventType, template.getAccountId(), host.getDataCenterId(),
|
||||
template.getId(), template.getName(), null, template.getSourceTemplateId(), size,
|
||||
template.getClass().getName(), template.getUuid());
|
||||
}
|
||||
}
|
||||
txn.commit();
|
||||
|
|
@ -543,7 +508,8 @@ public class DownloadMonitorImpl implements DownloadMonitor {
|
|||
}
|
||||
String eventType = EventTypes.EVENT_VOLUME_UPLOAD;
|
||||
if(volume.getAccountId() != Account.ACCOUNT_ID_SYSTEM){
|
||||
UsageEventGenerator.publishUsageEvent(eventType, volume.getAccountId(), host.getDataCenterId(), volume.getId(), volume.getName(), null, 0l , size);
|
||||
UsageEventUtils.publishUsageEvent(eventType, volume.getAccountId(), host.getDataCenterId(),
|
||||
volume.getId(), volume.getName(), null, 0l, size, volume.getClass().getName(), volume.getUuid());
|
||||
}
|
||||
}else if (dnldStatus == Status.DOWNLOAD_ERROR || dnldStatus == Status.ABANDONED || dnldStatus == Status.UNKNOWN){
|
||||
//Decrement the volume count
|
||||
|
|
|
|||
|
|
@ -16,37 +16,12 @@
|
|||
// under the License.
|
||||
package com.cloud.storage.snapshot;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.TimeZone;
|
||||
|
||||
import javax.ejb.Local;
|
||||
import javax.naming.ConfigurationException;
|
||||
|
||||
import org.apache.cloudstack.api.command.user.snapshot.CreateSnapshotPolicyCmd;
|
||||
import org.apache.cloudstack.api.command.user.snapshot.ListSnapshotsCmd;
|
||||
import org.apache.log4j.Logger;
|
||||
|
||||
import com.cloud.agent.AgentManager;
|
||||
import com.cloud.agent.api.Answer;
|
||||
import com.cloud.agent.api.BackupSnapshotAnswer;
|
||||
import com.cloud.agent.api.BackupSnapshotCommand;
|
||||
import com.cloud.agent.api.Command;
|
||||
import com.cloud.agent.api.DeleteSnapshotBackupCommand;
|
||||
import com.cloud.agent.api.DeleteSnapshotsDirCommand;
|
||||
import com.cloud.agent.api.DownloadSnapshotFromS3Command;
|
||||
import com.cloud.agent.api.ManageSnapshotAnswer;
|
||||
import com.cloud.agent.api.ManageSnapshotCommand;
|
||||
import com.cloud.agent.api.downloadSnapshotFromSwiftCommand;
|
||||
import com.cloud.agent.api.*;
|
||||
import com.cloud.agent.api.to.S3TO;
|
||||
import com.cloud.agent.api.to.SwiftTO;
|
||||
import com.cloud.alert.AlertManager;
|
||||
import org.apache.cloudstack.api.command.user.snapshot.DeleteSnapshotPoliciesCmd;
|
||||
import com.cloud.api.commands.ListRecurringSnapshotScheduleCmd;
|
||||
import org.apache.cloudstack.api.command.user.snapshot.ListSnapshotPoliciesCmd;
|
||||
import com.cloud.configuration.Config;
|
||||
import com.cloud.configuration.Resource.ResourceType;
|
||||
import com.cloud.configuration.dao.ConfigurationDao;
|
||||
|
|
@ -55,11 +30,7 @@ import com.cloud.dc.DataCenter;
|
|||
import com.cloud.dc.dao.ClusterDao;
|
||||
import com.cloud.dc.dao.DataCenterDao;
|
||||
import com.cloud.domain.dao.DomainDao;
|
||||
import com.cloud.event.ActionEvent;
|
||||
import com.cloud.event.EventTypes;
|
||||
import com.cloud.event.EventUtils;
|
||||
import com.cloud.event.EventVO;
|
||||
import com.cloud.event.UsageEventGenerator;
|
||||
import com.cloud.event.*;
|
||||
import com.cloud.event.dao.EventDao;
|
||||
import com.cloud.event.dao.UsageEventDao;
|
||||
import com.cloud.exception.InvalidParameterValueException;
|
||||
|
|
@ -69,44 +40,21 @@ import com.cloud.exception.StorageUnavailableException;
|
|||
import com.cloud.host.HostVO;
|
||||
import com.cloud.host.dao.HostDao;
|
||||
import com.cloud.hypervisor.Hypervisor.HypervisorType;
|
||||
import com.cloud.network.PhysicalNetworkTrafficType;
|
||||
import com.cloud.org.Grouping;
|
||||
import com.cloud.projects.Project.ListProjectResourcesCriteria;
|
||||
import com.cloud.resource.ResourceManager;
|
||||
import com.cloud.server.ResourceTag.TaggedResourceType;
|
||||
import com.cloud.storage.Snapshot;
|
||||
import com.cloud.storage.*;
|
||||
import com.cloud.storage.Snapshot.Status;
|
||||
import com.cloud.storage.Snapshot.Type;
|
||||
import com.cloud.storage.SnapshotPolicyVO;
|
||||
import com.cloud.storage.SnapshotScheduleVO;
|
||||
import com.cloud.storage.SnapshotVO;
|
||||
import com.cloud.storage.Storage;
|
||||
import com.cloud.storage.Storage.StoragePoolType;
|
||||
import com.cloud.storage.StorageManager;
|
||||
import com.cloud.storage.StoragePool;
|
||||
import com.cloud.storage.StoragePoolVO;
|
||||
import com.cloud.storage.VMTemplateVO;
|
||||
import com.cloud.storage.Volume;
|
||||
import com.cloud.storage.VolumeVO;
|
||||
import com.cloud.storage.dao.DiskOfferingDao;
|
||||
import com.cloud.storage.dao.SnapshotDao;
|
||||
import com.cloud.storage.dao.SnapshotPolicyDao;
|
||||
import com.cloud.storage.dao.SnapshotScheduleDao;
|
||||
import com.cloud.storage.dao.StoragePoolDao;
|
||||
import com.cloud.storage.dao.VMTemplateDao;
|
||||
import com.cloud.storage.dao.VolumeDao;
|
||||
import com.cloud.storage.dao.*;
|
||||
import com.cloud.storage.s3.S3Manager;
|
||||
import com.cloud.storage.secondary.SecondaryStorageVmManager;
|
||||
import com.cloud.storage.swift.SwiftManager;
|
||||
import com.cloud.tags.ResourceTagVO;
|
||||
import com.cloud.tags.dao.ResourceTagDao;
|
||||
import com.cloud.user.Account;
|
||||
import com.cloud.user.AccountManager;
|
||||
import com.cloud.user.AccountVO;
|
||||
import com.cloud.user.DomainManager;
|
||||
import com.cloud.user.ResourceLimitService;
|
||||
import com.cloud.user.User;
|
||||
import com.cloud.user.UserContext;
|
||||
import com.cloud.user.*;
|
||||
import com.cloud.user.dao.AccountDao;
|
||||
import com.cloud.utils.DateUtil;
|
||||
import com.cloud.utils.DateUtil.IntervalType;
|
||||
|
|
@ -116,18 +64,22 @@ import com.cloud.utils.Ternary;
|
|||
import com.cloud.utils.component.ComponentLocator;
|
||||
import com.cloud.utils.component.Inject;
|
||||
import com.cloud.utils.component.Manager;
|
||||
import com.cloud.utils.db.DB;
|
||||
import com.cloud.utils.db.Filter;
|
||||
import com.cloud.utils.db.JoinBuilder;
|
||||
import com.cloud.utils.db.SearchBuilder;
|
||||
import com.cloud.utils.db.SearchCriteria;
|
||||
import com.cloud.utils.db.Transaction;
|
||||
import com.cloud.utils.db.*;
|
||||
import com.cloud.utils.exception.CloudRuntimeException;
|
||||
import com.cloud.vm.UserVmVO;
|
||||
import com.cloud.vm.VMInstanceVO;
|
||||
import com.cloud.vm.VirtualMachine;
|
||||
import com.cloud.vm.VirtualMachine.State;
|
||||
import com.cloud.vm.dao.UserVmDao;
|
||||
import org.apache.cloudstack.api.command.user.snapshot.CreateSnapshotPolicyCmd;
|
||||
import org.apache.cloudstack.api.command.user.snapshot.DeleteSnapshotPoliciesCmd;
|
||||
import org.apache.cloudstack.api.command.user.snapshot.ListSnapshotPoliciesCmd;
|
||||
import org.apache.cloudstack.api.command.user.snapshot.ListSnapshotsCmd;
|
||||
import org.apache.log4j.Logger;
|
||||
|
||||
import javax.ejb.Local;
|
||||
import javax.naming.ConfigurationException;
|
||||
import java.util.*;
|
||||
|
||||
@Local(value = { SnapshotManager.class, SnapshotService.class })
|
||||
public class SnapshotManagerImpl implements SnapshotManager, SnapshotService, Manager {
|
||||
|
|
@ -444,8 +396,9 @@ public class SnapshotManagerImpl implements SnapshotManager, SnapshotService, Ma
|
|||
//Check if the snapshot was removed while backingUp. If yes, do not log snapshot create usage event
|
||||
SnapshotVO freshSnapshot = _snapshotDao.findById(snapshot.getId());
|
||||
if ((freshSnapshot != null) && backedUp) {
|
||||
UsageEventGenerator.publishUsageEvent(EventTypes.EVENT_SNAPSHOT_CREATE, snapshot.getAccountId(), snapshot.getDataCenterId(), snapshotId, snapshot.getName(), null, null,
|
||||
volume.getSize());
|
||||
UsageEventUtils.publishUsageEvent(EventTypes.EVENT_SNAPSHOT_CREATE, snapshot.getAccountId(),
|
||||
snapshot.getDataCenterId(), snapshotId, snapshot.getName(), null, null,
|
||||
volume.getSize(), snapshot.getClass().getName(), snapshot.getUuid());
|
||||
}
|
||||
if( !backedUp ) {
|
||||
|
||||
|
|
@ -766,7 +719,7 @@ public class SnapshotManagerImpl implements SnapshotManager, SnapshotService, Ma
|
|||
s_logger.debug("Max snaps: " + policy.getMaxSnaps() + " exceeded for snapshot policy with Id: " + policyId + ". Deleting oldest snapshot: " + oldSnapId);
|
||||
if(deleteSnapshotInternal(oldSnapId)){
|
||||
//log Snapshot delete event
|
||||
EventUtils.saveActionEvent(User.UID_SYSTEM, oldestSnapshot.getAccountId(), EventVO.LEVEL_INFO, EventTypes.EVENT_SNAPSHOT_DELETE, "Successfully deleted oldest snapshot: " + oldSnapId, 0);
|
||||
ActionEventUtils.onCompletedActionEvent(User.UID_SYSTEM, oldestSnapshot.getAccountId(), EventVO.LEVEL_INFO, EventTypes.EVENT_SNAPSHOT_DELETE, "Successfully deleted oldest snapshot: " + oldSnapId, 0);
|
||||
}
|
||||
snaps.remove(oldestSnapshot);
|
||||
}
|
||||
|
|
@ -812,7 +765,9 @@ public class SnapshotManagerImpl implements SnapshotManager, SnapshotService, Ma
|
|||
txn.start();
|
||||
_snapshotDao.remove(snapshotId);
|
||||
if (snapshot.getStatus() == Snapshot.Status.BackedUp) {
|
||||
UsageEventGenerator.publishUsageEvent(EventTypes.EVENT_SNAPSHOT_DELETE, snapshot.getAccountId(), snapshot.getDataCenterId(), snapshotId, snapshot.getName(), null, null, 0L);
|
||||
UsageEventUtils.publishUsageEvent(EventTypes.EVENT_SNAPSHOT_DELETE, snapshot.getAccountId(),
|
||||
snapshot.getDataCenterId(), snapshotId, snapshot.getName(), null, null, 0L,
|
||||
snapshot.getClass().getName(), snapshot.getUuid());
|
||||
}
|
||||
_resourceLimitMgr.decrementResourceCount(snapshot.getAccountId(), ResourceType.snapshot);
|
||||
txn.commit();
|
||||
|
|
@ -1113,8 +1068,9 @@ public class SnapshotManagerImpl implements SnapshotManager, SnapshotService, Ma
|
|||
}
|
||||
|
||||
// Log event after successful deletion
|
||||
UsageEventGenerator.publishUsageEvent(EventTypes.EVENT_SNAPSHOT_DELETE, snapshot.getAccountId(), volume.getDataCenterId(), snapshot.getId(), snapshot.getName(), null, null,
|
||||
volume.getSize());
|
||||
UsageEventUtils.publishUsageEvent(EventTypes.EVENT_SNAPSHOT_DELETE, snapshot.getAccountId(),
|
||||
volume.getDataCenterId(), snapshot.getId(), snapshot.getName(), null, null,
|
||||
volume.getSize(), snapshot.getClass().getName(), snapshot.getUuid());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -26,6 +26,7 @@ import java.util.TimerTask;
|
|||
import javax.ejb.Local;
|
||||
import javax.naming.ConfigurationException;
|
||||
|
||||
import com.cloud.event.ActionEventUtils;
|
||||
import org.apache.cloudstack.api.command.user.snapshot.CreateSnapshotCmd;
|
||||
import org.apache.log4j.Logger;
|
||||
|
||||
|
|
@ -39,7 +40,6 @@ import com.cloud.async.AsyncJobVO;
|
|||
import com.cloud.async.dao.AsyncJobDao;
|
||||
import com.cloud.configuration.dao.ConfigurationDao;
|
||||
import com.cloud.event.EventTypes;
|
||||
import com.cloud.event.EventUtils;
|
||||
import com.cloud.storage.Snapshot;
|
||||
import com.cloud.storage.SnapshotPolicyVO;
|
||||
import com.cloud.storage.SnapshotScheduleVO;
|
||||
|
|
@ -232,8 +232,8 @@ public class SnapshotSchedulerImpl implements SnapshotScheduler {
|
|||
|
||||
|
||||
tmpSnapshotScheduleVO = _snapshotScheduleDao.acquireInLockTable(snapshotScheId);
|
||||
Long eventId = EventUtils.saveScheduledActionEvent(User.UID_SYSTEM, Account.ACCOUNT_ID_SYSTEM,
|
||||
EventTypes.EVENT_SNAPSHOT_CREATE, "creating snapshot for volume Id:"+volumeId,0);
|
||||
Long eventId = ActionEventUtils.onScheduledActionEvent(User.UID_SYSTEM, Account.ACCOUNT_ID_SYSTEM,
|
||||
EventTypes.EVENT_SNAPSHOT_CREATE, "creating snapshot for volume Id:" + volumeId, 0);
|
||||
|
||||
Map<String, String> params = new HashMap<String, String>();
|
||||
params.put(ApiConstants.VOLUME_ID, "" + volumeId);
|
||||
|
|
|
|||
|
|
@ -16,28 +16,13 @@
|
|||
// under the License.
|
||||
package com.cloud.template;
|
||||
|
||||
import java.net.Inet6Address;
|
||||
import java.net.InetAddress;
|
||||
import java.net.URI;
|
||||
import java.net.URISyntaxException;
|
||||
import java.net.UnknownHostException;
|
||||
import java.util.List;
|
||||
|
||||
import javax.ejb.Local;
|
||||
|
||||
import org.apache.cloudstack.api.command.user.iso.DeleteIsoCmd;
|
||||
import org.apache.cloudstack.api.command.user.iso.RegisterIsoCmd;
|
||||
import org.apache.log4j.Logger;
|
||||
|
||||
import com.cloud.agent.AgentManager;
|
||||
import com.cloud.agent.api.Answer;
|
||||
import com.cloud.agent.api.storage.DeleteTemplateCommand;
|
||||
import org.apache.cloudstack.api.command.user.template.DeleteTemplateCmd;
|
||||
import org.apache.cloudstack.api.command.user.template.RegisterTemplateCmd;
|
||||
import com.cloud.configuration.Resource.ResourceType;
|
||||
import com.cloud.dc.DataCenterVO;
|
||||
import com.cloud.event.EventTypes;
|
||||
import com.cloud.event.UsageEventGenerator;
|
||||
import com.cloud.event.UsageEventUtils;
|
||||
import com.cloud.exception.InvalidParameterValueException;
|
||||
import com.cloud.exception.ResourceAllocationException;
|
||||
import com.cloud.host.HostVO;
|
||||
|
|
@ -53,6 +38,15 @@ import com.cloud.user.Account;
|
|||
import com.cloud.utils.component.Inject;
|
||||
import com.cloud.utils.db.DB;
|
||||
import com.cloud.utils.exception.CloudRuntimeException;
|
||||
import org.apache.cloudstack.api.command.user.iso.DeleteIsoCmd;
|
||||
import org.apache.cloudstack.api.command.user.iso.RegisterIsoCmd;
|
||||
import org.apache.cloudstack.api.command.user.template.DeleteTemplateCmd;
|
||||
import org.apache.cloudstack.api.command.user.template.RegisterTemplateCmd;
|
||||
import org.apache.log4j.Logger;
|
||||
|
||||
import javax.ejb.Local;
|
||||
import java.net.*;
|
||||
import java.util.List;
|
||||
|
||||
@Local(value=TemplateAdapter.class)
|
||||
public class HyervisorTemplateAdapter extends TemplateAdapterBase implements TemplateAdapter {
|
||||
|
|
@ -202,7 +196,7 @@ public class HyervisorTemplateAdapter extends TemplateAdapterBase implements Tem
|
|||
success = false;
|
||||
break;
|
||||
}
|
||||
UsageEventGenerator.publishUsageEvent(eventType, account.getId(), sZoneId, templateId, null);
|
||||
UsageEventUtils.publishUsageEvent(eventType, account.getId(), sZoneId, templateId, null, null, null);
|
||||
templateHostVO.setDestroyed(true);
|
||||
_tmpltHostDao.update(templateHostVO.getId(), templateHostVO);
|
||||
String installPath = templateHostVO.getInstallPath();
|
||||
|
|
|
|||
|
|
@ -16,41 +16,14 @@
|
|||
// under the License.
|
||||
package com.cloud.template;
|
||||
|
||||
import java.net.Inet6Address;
|
||||
import java.net.InetAddress;
|
||||
import java.net.URI;
|
||||
import java.net.URISyntaxException;
|
||||
import java.net.UnknownHostException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.ExecutorService;
|
||||
import java.util.concurrent.Executors;
|
||||
import java.util.concurrent.ScheduledExecutorService;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
import javax.ejb.Local;
|
||||
import javax.naming.ConfigurationException;
|
||||
|
||||
import org.apache.cloudstack.api.BaseListTemplateOrIsoPermissionsCmd;
|
||||
import org.apache.cloudstack.api.BaseUpdateTemplateOrIsoPermissionsCmd;
|
||||
import org.apache.cloudstack.api.command.user.iso.*;
|
||||
import org.apache.cloudstack.api.command.user.template.*;
|
||||
import org.apache.log4j.Logger;
|
||||
|
||||
import org.apache.cloudstack.acl.SecurityChecker.AccessType;
|
||||
import com.cloud.agent.AgentManager;
|
||||
import com.cloud.agent.api.Answer;
|
||||
import com.cloud.agent.api.downloadTemplateFromSwiftToSecondaryStorageCommand;
|
||||
import com.cloud.agent.api.uploadTemplateToSwiftFromSecondaryStorageCommand;
|
||||
import com.cloud.agent.api.storage.DestroyCommand;
|
||||
import com.cloud.agent.api.storage.PrimaryStorageDownloadAnswer;
|
||||
import com.cloud.agent.api.storage.PrimaryStorageDownloadCommand;
|
||||
import com.cloud.agent.api.to.SwiftTO;
|
||||
import org.apache.cloudstack.api.command.user.iso.RegisterIsoCmd;
|
||||
import org.apache.cloudstack.api.command.user.template.RegisterTemplateCmd;
|
||||
import com.cloud.agent.api.uploadTemplateToSwiftFromSecondaryStorageCommand;
|
||||
import com.cloud.async.AsyncJobManager;
|
||||
import com.cloud.async.AsyncJobVO;
|
||||
import com.cloud.configuration.Config;
|
||||
|
|
@ -63,9 +36,9 @@ import com.cloud.dc.dao.DataCenterDao;
|
|||
import com.cloud.domain.dao.DomainDao;
|
||||
import com.cloud.event.ActionEvent;
|
||||
import com.cloud.event.EventTypes;
|
||||
import com.cloud.event.UsageEventUtils;
|
||||
import com.cloud.event.dao.EventDao;
|
||||
import com.cloud.event.dao.UsageEventDao;
|
||||
import com.cloud.event.UsageEventGenerator;
|
||||
import com.cloud.exception.InvalidParameterValueException;
|
||||
import com.cloud.exception.PermissionDeniedException;
|
||||
import com.cloud.exception.ResourceAllocationException;
|
||||
|
|
@ -77,51 +50,19 @@ import com.cloud.hypervisor.Hypervisor.HypervisorType;
|
|||
import com.cloud.hypervisor.HypervisorGuruManager;
|
||||
import com.cloud.projects.Project;
|
||||
import com.cloud.projects.ProjectManager;
|
||||
import com.cloud.storage.LaunchPermissionVO;
|
||||
import com.cloud.storage.SnapshotVO;
|
||||
import com.cloud.storage.Storage;
|
||||
import com.cloud.storage.*;
|
||||
import com.cloud.storage.Storage.ImageFormat;
|
||||
import com.cloud.storage.Storage.TemplateType;
|
||||
import com.cloud.storage.StorageManager;
|
||||
import com.cloud.storage.StoragePool;
|
||||
import com.cloud.storage.StoragePoolHostVO;
|
||||
import com.cloud.storage.StoragePoolStatus;
|
||||
import com.cloud.storage.StoragePoolVO;
|
||||
import com.cloud.storage.Upload;
|
||||
import com.cloud.storage.Upload.Type;
|
||||
import com.cloud.storage.UploadVO;
|
||||
import com.cloud.storage.VMTemplateHostVO;
|
||||
import com.cloud.storage.VMTemplateStoragePoolVO;
|
||||
import com.cloud.storage.VMTemplateStorageResourceAssoc;
|
||||
import com.cloud.storage.VMTemplateStorageResourceAssoc.Status;
|
||||
import com.cloud.storage.VMTemplateSwiftVO;
|
||||
import com.cloud.storage.VMTemplateVO;
|
||||
import com.cloud.storage.VMTemplateZoneVO;
|
||||
import com.cloud.storage.VolumeVO;
|
||||
import com.cloud.storage.dao.LaunchPermissionDao;
|
||||
import com.cloud.storage.dao.SnapshotDao;
|
||||
import com.cloud.storage.dao.StoragePoolDao;
|
||||
import com.cloud.storage.dao.StoragePoolHostDao;
|
||||
import com.cloud.storage.dao.UploadDao;
|
||||
import com.cloud.storage.dao.VMTemplateDao;
|
||||
import com.cloud.storage.dao.VMTemplateHostDao;
|
||||
import com.cloud.storage.dao.VMTemplatePoolDao;
|
||||
import com.cloud.storage.dao.VMTemplateS3Dao;
|
||||
import com.cloud.storage.dao.VMTemplateSwiftDao;
|
||||
import com.cloud.storage.dao.VMTemplateZoneDao;
|
||||
import com.cloud.storage.dao.VolumeDao;
|
||||
import com.cloud.storage.dao.*;
|
||||
import com.cloud.storage.download.DownloadMonitor;
|
||||
import com.cloud.storage.s3.S3Manager;
|
||||
import com.cloud.storage.secondary.SecondaryStorageVmManager;
|
||||
import com.cloud.storage.swift.SwiftManager;
|
||||
import com.cloud.storage.upload.UploadMonitor;
|
||||
import com.cloud.template.TemplateAdapter.TemplateAdapterType;
|
||||
import com.cloud.user.Account;
|
||||
import com.cloud.user.AccountManager;
|
||||
import com.cloud.user.AccountService;
|
||||
import com.cloud.user.AccountVO;
|
||||
import com.cloud.user.ResourceLimitService;
|
||||
import com.cloud.user.UserContext;
|
||||
import com.cloud.user.*;
|
||||
import com.cloud.user.dao.AccountDao;
|
||||
import com.cloud.user.dao.UserAccountDao;
|
||||
import com.cloud.user.dao.UserDao;
|
||||
|
|
@ -132,12 +73,7 @@ import com.cloud.utils.component.ComponentLocator;
|
|||
import com.cloud.utils.component.Inject;
|
||||
import com.cloud.utils.component.Manager;
|
||||
import com.cloud.utils.concurrency.NamedThreadFactory;
|
||||
import com.cloud.utils.db.DB;
|
||||
import com.cloud.utils.db.GlobalLock;
|
||||
import com.cloud.utils.db.JoinBuilder;
|
||||
import com.cloud.utils.db.SearchBuilder;
|
||||
import com.cloud.utils.db.SearchCriteria;
|
||||
import com.cloud.utils.db.Transaction;
|
||||
import com.cloud.utils.db.*;
|
||||
import com.cloud.utils.exception.CloudRuntimeException;
|
||||
import com.cloud.vm.UserVmManager;
|
||||
import com.cloud.vm.UserVmVO;
|
||||
|
|
@ -145,6 +81,21 @@ import com.cloud.vm.VMInstanceVO;
|
|||
import com.cloud.vm.VirtualMachine.State;
|
||||
import com.cloud.vm.dao.UserVmDao;
|
||||
import com.cloud.vm.dao.VMInstanceDao;
|
||||
import org.apache.cloudstack.acl.SecurityChecker.AccessType;
|
||||
import org.apache.cloudstack.api.BaseListTemplateOrIsoPermissionsCmd;
|
||||
import org.apache.cloudstack.api.BaseUpdateTemplateOrIsoPermissionsCmd;
|
||||
import org.apache.cloudstack.api.command.user.iso.*;
|
||||
import org.apache.cloudstack.api.command.user.template.*;
|
||||
import org.apache.log4j.Logger;
|
||||
|
||||
import javax.ejb.Local;
|
||||
import javax.naming.ConfigurationException;
|
||||
import java.net.*;
|
||||
import java.util.*;
|
||||
import java.util.concurrent.ExecutorService;
|
||||
import java.util.concurrent.Executors;
|
||||
import java.util.concurrent.ScheduledExecutorService;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
|
||||
@Local(value={TemplateManager.class, TemplateService.class})
|
||||
|
|
@ -823,7 +774,8 @@ public class TemplateManagerImpl implements TemplateManager, Manager, TemplateSe
|
|||
_tmpltDao.addTemplateToZone(template, dstZoneId);
|
||||
|
||||
if(account.getId() != Account.ACCOUNT_ID_SYSTEM){
|
||||
UsageEventGenerator.publishUsageEvent(copyEventType, account.getId(), dstZoneId, tmpltId, null, null, null, srcTmpltHost.getSize());
|
||||
UsageEventUtils.publishUsageEvent(copyEventType, account.getId(), dstZoneId, tmpltId, null,
|
||||
null, null, srcTmpltHost.getSize(), template.getClass().getName(), template.getUuid());
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -36,6 +36,7 @@ import javax.crypto.spec.SecretKeySpec;
|
|||
import javax.ejb.Local;
|
||||
import javax.naming.ConfigurationException;
|
||||
|
||||
import com.cloud.event.ActionEventUtils;
|
||||
import org.apache.cloudstack.acl.ControlledEntity;
|
||||
import org.apache.cloudstack.acl.RoleType;
|
||||
import org.apache.cloudstack.acl.SecurityChecker;
|
||||
|
|
@ -64,7 +65,6 @@ import com.cloud.domain.DomainVO;
|
|||
import com.cloud.domain.dao.DomainDao;
|
||||
import com.cloud.event.ActionEvent;
|
||||
import com.cloud.event.EventTypes;
|
||||
import com.cloud.event.EventUtils;
|
||||
import com.cloud.exception.AgentUnavailableException;
|
||||
import com.cloud.exception.CloudAuthenticationException;
|
||||
import com.cloud.exception.ConcurrentOperationException;
|
||||
|
|
@ -1744,7 +1744,7 @@ public class AccountManagerImpl implements AccountManager, AccountService, Manag
|
|||
public void logoutUser(Long userId) {
|
||||
UserAccount userAcct = _userAccountDao.findById(userId);
|
||||
if (userAcct != null) {
|
||||
EventUtils.saveActionEvent(userId, userAcct.getAccountId(), userAcct.getDomainId(), EventTypes.EVENT_USER_LOGOUT, "user has logged out");
|
||||
ActionEventUtils.onActionEvent(userId, userAcct.getAccountId(), userAcct.getDomainId(), EventTypes.EVENT_USER_LOGOUT, "user has logged out");
|
||||
} // else log some kind of error event? This likely means the user doesn't exist, or has been deleted...
|
||||
}
|
||||
|
||||
|
|
@ -1875,10 +1875,10 @@ public class AccountManagerImpl implements AccountManager, AccountService, Manag
|
|||
s_logger.debug("User: " + username + " in domain " + domainId + " has successfully logged in");
|
||||
}
|
||||
if (NetUtils.isValidIp(loginIpAddress)) {
|
||||
EventUtils.saveActionEvent(user.getId(), user.getAccountId(), user.getDomainId(), EventTypes.EVENT_USER_LOGIN,
|
||||
ActionEventUtils.onActionEvent(user.getId(), user.getAccountId(), user.getDomainId(), EventTypes.EVENT_USER_LOGIN,
|
||||
"user has logged in from IP Address " + loginIpAddress);
|
||||
} else {
|
||||
EventUtils.saveActionEvent(user.getId(), user.getAccountId(), user.getDomainId(), EventTypes.EVENT_USER_LOGIN,
|
||||
ActionEventUtils.onActionEvent(user.getId(), user.getAccountId(), user.getDomainId(), EventTypes.EVENT_USER_LOGIN,
|
||||
"user has logged in. The IP Address cannot be determined");
|
||||
}
|
||||
return user;
|
||||
|
|
|
|||
|
|
@ -49,7 +49,7 @@ import com.cloud.domain.DomainVO;
|
|||
import com.cloud.domain.dao.DomainDao;
|
||||
import com.cloud.event.ActionEvent;
|
||||
import com.cloud.event.EventTypes;
|
||||
import com.cloud.event.UsageEventGenerator;
|
||||
import com.cloud.event.UsageEventUtils;
|
||||
import com.cloud.event.dao.UsageEventDao;
|
||||
import com.cloud.exception.*;
|
||||
import com.cloud.ha.HighAvailabilityManager;
|
||||
|
|
@ -726,7 +726,7 @@ public class UserVmManagerImpl implements UserVmManager, UserVmService, Manager
|
|||
}
|
||||
|
||||
@Override
|
||||
@ActionEvent(eventType = EventTypes.EVENT_VOLUME_DETACH, eventDescription = "detaching volume", async = true)
|
||||
@ActionEvent(eventType = EventTypes.EVENT_VOLUME_DETACH, eventDescription = "detaching volume", async = true)
|
||||
public Volume detachVolumeFromVM(DetachVolumeCmd cmmd) {
|
||||
Account caller = UserContext.current().getCaller();
|
||||
if ((cmmd.getId() == null && cmmd.getDeviceId() == null && cmmd.getVirtualMachineId() == null) || (cmmd.getId() != null && (cmmd.getDeviceId() != null || cmmd.getVirtualMachineId() != null))
|
||||
|
|
@ -1026,7 +1026,9 @@ public class UserVmManagerImpl implements UserVmManager, UserVmService, Manager
|
|||
offeringId = offering.getId();
|
||||
}
|
||||
}
|
||||
UsageEventGenerator.publishUsageEvent(EventTypes.EVENT_VOLUME_CREATE, volume.getAccountId(), volume.getDataCenterId(), volume.getId(), volume.getName(), offeringId, templateId, volume.getSize());
|
||||
UsageEventUtils.publishUsageEvent(EventTypes.EVENT_VOLUME_CREATE, volume.getAccountId(),
|
||||
volume.getDataCenterId(), volume.getId(), volume.getName(), offeringId, templateId,
|
||||
volume.getSize(), Volume.class.getName(), volume.getUuid());
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -1544,8 +1546,10 @@ public class UserVmManagerImpl implements UserVmManager, UserVmService, Manager
|
|||
templateHostVO.setPhysicalSize(answer.getphysicalSize());
|
||||
_templateHostDao.persist(templateHostVO);
|
||||
|
||||
UsageEventGenerator.publishUsageEvent(EventTypes.EVENT_TEMPLATE_CREATE, privateTemplate.getAccountId(), secondaryStorageHost.getDataCenterId(), privateTemplate.getId(),
|
||||
privateTemplate.getName(), null, privateTemplate.getSourceTemplateId(), templateHostVO.getSize());
|
||||
UsageEventUtils.publishUsageEvent(EventTypes.EVENT_TEMPLATE_CREATE, privateTemplate.getAccountId(),
|
||||
secondaryStorageHost.getDataCenterId(), privateTemplate.getId(),
|
||||
privateTemplate.getName(), null, privateTemplate.getSourceTemplateId(),
|
||||
templateHostVO.getSize(), VirtualMachineTemplate.class.getName(), privateTemplate.getUuid());
|
||||
txn.commit();
|
||||
}
|
||||
} finally {
|
||||
|
|
@ -2490,7 +2494,9 @@ public class UserVmManagerImpl implements UserVmManager, UserVmService, Manager
|
|||
}
|
||||
UserContext.current().setEventDetails("Vm Id: " + vm.getId());
|
||||
|
||||
UsageEventGenerator.publishUsageEvent(EventTypes.EVENT_VM_CREATE, accountId, zone.getId(), vm.getId(), vm.getHostName(), offering.getId(), template.getId(), hypervisorType.toString());
|
||||
UsageEventUtils.publishUsageEvent(EventTypes.EVENT_VM_CREATE, accountId, zone.getId(), vm.getId(),
|
||||
vm.getHostName(), offering.getId(), template.getId(), hypervisorType.toString(),
|
||||
VirtualMachine.class.getName(), vm.getUuid());
|
||||
|
||||
_resourceLimitMgr.incrementResourceCount(accountId, ResourceType.user_vm);
|
||||
txn.commit();
|
||||
|
|
@ -2660,7 +2666,9 @@ public class UserVmManagerImpl implements UserVmManager, UserVmService, Manager
|
|||
for (NicVO nic : nics) {
|
||||
NetworkVO network = _networkDao.findById(nic.getNetworkId());
|
||||
long isDefault = (nic.isDefaultNic()) ? 1 : 0;
|
||||
UsageEventGenerator.publishUsageEvent(EventTypes.EVENT_NETWORK_OFFERING_ASSIGN, vm.getAccountId(), vm.getDataCenterIdToDeployIn(), vm.getId(), vm.getHostName(), network.getNetworkOfferingId(), null, isDefault);
|
||||
UsageEventUtils.publishUsageEvent(EventTypes.EVENT_NETWORK_OFFERING_ASSIGN, vm.getAccountId(),
|
||||
vm.getDataCenterIdToDeployIn(), vm.getId(), vm.getHostName(), network.getNetworkOfferingId(),
|
||||
null, isDefault, VirtualMachine.class.getName(), vm.getUuid());
|
||||
if (network.getTrafficType() == TrafficType.Guest) {
|
||||
originalIp = nic.getIp4Address();
|
||||
guestNic = nic;
|
||||
|
|
@ -2923,7 +2931,9 @@ public class UserVmManagerImpl implements UserVmManager, UserVmService, Manager
|
|||
List<VolumeVO> volumes = _volsDao.findByInstance(vmId);
|
||||
for (VolumeVO volume : volumes) {
|
||||
if (volume.getVolumeType().equals(Volume.Type.ROOT)) {
|
||||
UsageEventGenerator.publishUsageEvent(EventTypes.EVENT_VOLUME_DELETE, volume.getAccountId(), volume.getDataCenterId(), volume.getId(), volume.getName());
|
||||
UsageEventUtils.publishUsageEvent(EventTypes.EVENT_VOLUME_DELETE, volume.getAccountId(),
|
||||
volume.getDataCenterId(), volume.getId(), volume.getName(), Volume.class.getName(),
|
||||
volume.getUuid());
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -3373,8 +3383,9 @@ public class UserVmManagerImpl implements UserVmManager, UserVmService, Manager
|
|||
Transaction txn = Transaction.currentTxn();
|
||||
txn.start();
|
||||
//generate destroy vm event for usage
|
||||
UsageEventGenerator.publishUsageEvent(EventTypes.EVENT_VM_DESTROY, vm.getAccountId(), vm.getDataCenterIdToDeployIn(), vm.getId(),
|
||||
vm.getHostName(), vm.getServiceOfferingId(), vm.getTemplateId(), vm.getHypervisorType().toString());
|
||||
UsageEventUtils.publishUsageEvent(EventTypes.EVENT_VM_DESTROY, vm.getAccountId(), vm.getDataCenterIdToDeployIn(), vm.getId(),
|
||||
vm.getHostName(), vm.getServiceOfferingId(), vm.getTemplateId(), vm.getHypervisorType().toString(),
|
||||
VirtualMachine.class.getName(), vm.getUuid());
|
||||
// update resource counts
|
||||
_resourceLimitMgr.decrementResourceCount(oldAccount.getAccountId(), ResourceType.user_vm);
|
||||
|
||||
|
|
@ -3386,13 +3397,16 @@ public class UserVmManagerImpl implements UserVmManager, UserVmService, Manager
|
|||
// OS 2: update volume
|
||||
List<VolumeVO> volumes = _volsDao.findByInstance(cmd.getVmId());
|
||||
for (VolumeVO volume : volumes) {
|
||||
UsageEventGenerator.publishUsageEvent(EventTypes.EVENT_VOLUME_DELETE, volume.getAccountId(), volume.getDataCenterId(), volume.getId(), volume.getName());
|
||||
UsageEventUtils.publishUsageEvent(EventTypes.EVENT_VOLUME_DELETE, volume.getAccountId(),
|
||||
volume.getDataCenterId(), volume.getId(), volume.getName(), Volume.class.getName(), volume.getUuid());
|
||||
_resourceLimitMgr.decrementResourceCount(oldAccount.getAccountId(), ResourceType.volume);
|
||||
volume.setAccountId(newAccount.getAccountId());
|
||||
_volsDao.persist(volume);
|
||||
_resourceLimitMgr.incrementResourceCount(newAccount.getAccountId(), ResourceType.volume);
|
||||
UsageEventGenerator.publishUsageEvent(EventTypes.EVENT_VOLUME_CREATE, volume.getAccountId(), volume.getDataCenterId(), volume.getId(), volume.getName(),
|
||||
volume.getDiskOfferingId(), volume.getTemplateId(), volume.getSize());
|
||||
UsageEventUtils.publishUsageEvent(EventTypes.EVENT_VOLUME_CREATE, volume.getAccountId(),
|
||||
volume.getDataCenterId(), volume.getId(), volume.getName(),
|
||||
volume.getDiskOfferingId(), volume.getTemplateId(), volume.getSize(), Volume.class.getName(),
|
||||
volume.getUuid());
|
||||
//snapshots: mark these removed in db
|
||||
List<SnapshotVO> snapshots = _snapshotDao.listByVolumeIdIncludingRemoved(volume.getId());
|
||||
for (SnapshotVO snapshot: snapshots){
|
||||
|
|
@ -3402,8 +3416,9 @@ public class UserVmManagerImpl implements UserVmManager, UserVmService, Manager
|
|||
|
||||
_resourceLimitMgr.incrementResourceCount(newAccount.getAccountId(), ResourceType.user_vm);
|
||||
//generate usage events to account for this change
|
||||
UsageEventGenerator.publishUsageEvent(EventTypes.EVENT_VM_CREATE, vm.getAccountId(), vm.getDataCenterIdToDeployIn(), vm.getId(),
|
||||
vm.getHostName(), vm.getServiceOfferingId(), vm.getTemplateId(), vm.getHypervisorType().toString());
|
||||
UsageEventUtils.publishUsageEvent(EventTypes.EVENT_VM_CREATE, vm.getAccountId(), vm.getDataCenterIdToDeployIn(), vm.getId(),
|
||||
vm.getHostName(), vm.getServiceOfferingId(), vm.getTemplateId(), vm.getHypervisorType().toString(),
|
||||
VirtualMachine.class.getName(), vm.getUuid());
|
||||
|
||||
txn.commit();
|
||||
|
||||
|
|
|
|||
|
|
@ -16,10 +16,8 @@
|
|||
// under the License.
|
||||
package com.cloud.vm;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.cloud.event.EventTypes;
|
||||
import com.cloud.event.UsageEventVO;
|
||||
import com.cloud.event.UsageEventUtils;
|
||||
import com.cloud.event.dao.UsageEventDao;
|
||||
import com.cloud.network.NetworkVO;
|
||||
import com.cloud.network.dao.NetworkDao;
|
||||
|
|
@ -28,6 +26,8 @@ import com.cloud.vm.VirtualMachine.Event;
|
|||
import com.cloud.vm.VirtualMachine.State;
|
||||
import com.cloud.vm.dao.NicDao;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class UserVmStateListener implements StateListener<State, VirtualMachine.Event, VirtualMachine> {
|
||||
|
||||
protected UsageEventDao _usageEventDao;
|
||||
|
|
@ -56,26 +56,21 @@ public class UserVmStateListener implements StateListener<State, VirtualMachine.
|
|||
}
|
||||
|
||||
if (VirtualMachine.State.isVmCreated(oldState, event, newState)) {
|
||||
UsageEventVO usageEvent = new UsageEventVO(EventTypes.EVENT_VM_CREATE, vo.getAccountId(), vo.getDataCenterIdToDeployIn(), vo.getId(), vo.getHostName(), vo.getServiceOfferingId(),
|
||||
UsageEventUtils.saveUsageEvent(EventTypes.EVENT_VM_CREATE, vo.getAccountId(), vo.getDataCenterIdToDeployIn(), vo.getId(), vo.getHostName(), vo.getServiceOfferingId(),
|
||||
vo.getTemplateId(), vo.getHypervisorType().toString());
|
||||
_usageEventDao.persist(usageEvent);
|
||||
} else if (VirtualMachine.State.isVmStarted(oldState, event, newState)) {
|
||||
UsageEventVO usageEvent = new UsageEventVO(EventTypes.EVENT_VM_START, vo.getAccountId(), vo.getDataCenterIdToDeployIn(), vo.getId(), vo.getHostName(), vo.getServiceOfferingId(),
|
||||
UsageEventUtils.saveUsageEvent(EventTypes.EVENT_VM_START, vo.getAccountId(), vo.getDataCenterIdToDeployIn(), vo.getId(), vo.getHostName(), vo.getServiceOfferingId(),
|
||||
vo.getTemplateId(), vo.getHypervisorType().toString());
|
||||
_usageEventDao.persist(usageEvent);
|
||||
} else if (VirtualMachine.State.isVmStopped(oldState, event, newState)) {
|
||||
UsageEventVO usageEvent = new UsageEventVO(EventTypes.EVENT_VM_STOP, vo.getAccountId(), vo.getDataCenterIdToDeployIn(), vo.getId(), vo.getHostName());
|
||||
_usageEventDao.persist(usageEvent);
|
||||
UsageEventUtils.saveUsageEvent(EventTypes.EVENT_VM_STOP, vo.getAccountId(), vo.getDataCenterIdToDeployIn(), vo.getId(), vo.getHostName());
|
||||
List<NicVO> nics = _nicDao.listByVmId(vo.getId());
|
||||
for (NicVO nic : nics) {
|
||||
NetworkVO network = _networkDao.findById(nic.getNetworkId());
|
||||
usageEvent = new UsageEventVO(EventTypes.EVENT_NETWORK_OFFERING_REMOVE, vo.getAccountId(), vo.getDataCenterIdToDeployIn(), vo.getId(), null, network.getNetworkOfferingId(), null, 0L);
|
||||
_usageEventDao.persist(usageEvent);
|
||||
UsageEventUtils.saveUsageEvent(EventTypes.EVENT_NETWORK_OFFERING_REMOVE, vo.getAccountId(), vo.getDataCenterIdToDeployIn(), vo.getId(), null, network.getNetworkOfferingId(), null, 0L);
|
||||
}
|
||||
} else if (VirtualMachine.State.isVmDestroyed(oldState, event, newState)) {
|
||||
UsageEventVO usageEvent = new UsageEventVO(EventTypes.EVENT_VM_DESTROY, vo.getAccountId(), vo.getDataCenterIdToDeployIn(), vo.getId(), vo.getHostName(), vo.getServiceOfferingId(),
|
||||
UsageEventUtils.saveUsageEvent(EventTypes.EVENT_VM_DESTROY, vo.getAccountId(), vo.getDataCenterIdToDeployIn(), vo.getId(), vo.getHostName(), vo.getServiceOfferingId(),
|
||||
vo.getTemplateId(), vo.getHypervisorType().toString());
|
||||
_usageEventDao.persist(usageEvent);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue