diff --git a/api/src/com/cloud/event/EventTypes.java b/api/src/com/cloud/event/EventTypes.java index d9aa3f45f69..a856bd908d0 100755 --- a/api/src/com/cloud/event/EventTypes.java +++ b/api/src/com/cloud/event/EventTypes.java @@ -19,6 +19,13 @@ package com.cloud.event; import java.util.HashMap; import java.util.Map; +import com.cloud.network.IpAddress; +import com.cloud.network.Site2SiteVpnGateway; +import com.cloud.network.rules.FirewallRule; +import com.cloud.network.rules.HealthCheckPolicy; +import com.cloud.network.rules.StickinessPolicy; +import com.cloud.network.vpc.NetworkACL; +import com.cloud.network.vpc.NetworkACLItem; import com.cloud.server.ResourceTag; import com.cloud.vm.ConsoleProxy; import com.cloud.vm.SecondaryStorageVm; @@ -35,7 +42,6 @@ import com.cloud.network.Network; import com.cloud.network.PhysicalNetwork; import com.cloud.network.PhysicalNetworkServiceProvider; import com.cloud.network.PhysicalNetworkTrafficType; -import com.cloud.network.PublicIpAddress; import com.cloud.network.RemoteAccessVpn; import com.cloud.network.as.AutoScaleCounter; import com.cloud.network.as.AutoScalePolicy; @@ -539,21 +545,27 @@ public class EventTypes { entityEventDetails.put(EVENT_NETWORK_DELETE, Network.class); entityEventDetails.put(EVENT_NETWORK_UPDATE, Network.class); entityEventDetails.put(EVENT_NETWORK_RESTART, Network.class); - entityEventDetails.put(EVENT_NET_IP_ASSIGN, PublicIpAddress.class); - entityEventDetails.put(EVENT_NET_IP_RELEASE, PublicIpAddress.class); - entityEventDetails.put(EVENT_NET_RULE_ADD, Network.class); - entityEventDetails.put(EVENT_NET_RULE_DELETE, Network.class); - entityEventDetails.put(EVENT_NET_RULE_MODIFY, Network.class); - entityEventDetails.put(EVENT_FIREWALL_OPEN, Network.class); - entityEventDetails.put(EVENT_FIREWALL_CLOSE, Network.class); + entityEventDetails.put(EVENT_NET_IP_ASSIGN, IpAddress.class); + entityEventDetails.put(EVENT_PORTABLE_IP_ASSIGN, IpAddress.class); + entityEventDetails.put(EVENT_PORTABLE_IP_RELEASE, IpAddress.class); + entityEventDetails.put(EVENT_NET_IP_RELEASE, IpAddress.class); + entityEventDetails.put(EVENT_NET_RULE_ADD, FirewallRule.class); + entityEventDetails.put(EVENT_NET_RULE_DELETE, FirewallRule.class); + entityEventDetails.put(EVENT_NET_RULE_MODIFY, FirewallRule.class); + entityEventDetails.put(EVENT_FIREWALL_OPEN, FirewallRule.class); + entityEventDetails.put(EVENT_FIREWALL_CLOSE, FirewallRule.class); // Load Balancers entityEventDetails.put(EVENT_ASSIGN_TO_LOAD_BALANCER_RULE, LoadBalancer.class); entityEventDetails.put(EVENT_REMOVE_FROM_LOAD_BALANCER_RULE, LoadBalancer.class); entityEventDetails.put(EVENT_LOAD_BALANCER_CREATE, LoadBalancer.class); entityEventDetails.put(EVENT_LOAD_BALANCER_DELETE, LoadBalancer.class); - entityEventDetails.put(EVENT_LB_STICKINESSPOLICY_CREATE, LoadBalancer.class); - entityEventDetails.put(EVENT_LB_STICKINESSPOLICY_DELETE, LoadBalancer.class); + entityEventDetails.put(EVENT_LB_STICKINESSPOLICY_CREATE, StickinessPolicy.class); + entityEventDetails.put(EVENT_LB_STICKINESSPOLICY_UPDATE, StickinessPolicy.class); + entityEventDetails.put(EVENT_LB_STICKINESSPOLICY_DELETE, StickinessPolicy.class); + entityEventDetails.put(EVENT_LB_HEALTHCHECKPOLICY_CREATE, HealthCheckPolicy.class); + entityEventDetails.put(EVENT_LB_HEALTHCHECKPOLICY_UPDATE, HealthCheckPolicy.class); + entityEventDetails.put(EVENT_LB_HEALTHCHECKPOLICY_DELETE, HealthCheckPolicy.class); entityEventDetails.put(EVENT_LOAD_BALANCER_UPDATE, LoadBalancer.class); entityEventDetails.put(EVENT_LB_CERT_UPLOAD, LoadBalancer.class); entityEventDetails.put(EVENT_LB_CERT_DELETE, LoadBalancer.class); @@ -693,8 +705,8 @@ public class EventTypes { entityEventDetails.put(EVENT_REMOTE_ACCESS_VPN_DESTROY, RemoteAccessVpn.class); entityEventDetails.put(EVENT_VPN_USER_ADD, RemoteAccessVpn.class); entityEventDetails.put(EVENT_VPN_USER_REMOVE, RemoteAccessVpn.class); - entityEventDetails.put(EVENT_S2S_VPN_GATEWAY_CREATE, RemoteAccessVpn.class); - entityEventDetails.put(EVENT_S2S_VPN_GATEWAY_DELETE, RemoteAccessVpn.class); + entityEventDetails.put(EVENT_S2S_VPN_GATEWAY_CREATE, Site2SiteVpnGateway.class); + entityEventDetails.put(EVENT_S2S_VPN_GATEWAY_DELETE, Site2SiteVpnGateway.class); entityEventDetails.put(EVENT_S2S_VPN_CUSTOMER_GATEWAY_CREATE, RemoteAccessVpn.class); entityEventDetails.put(EVENT_S2S_VPN_CUSTOMER_GATEWAY_DELETE, RemoteAccessVpn.class); entityEventDetails.put(EVENT_S2S_VPN_CUSTOMER_GATEWAY_UPDATE, RemoteAccessVpn.class); @@ -757,6 +769,15 @@ public class EventTypes { entityEventDetails.put(EVENT_EXTERNAL_FIREWALL_DEVICE_DELETE, PhysicalNetwork.class); entityEventDetails.put(EVENT_EXTERNAL_FIREWALL_DEVICE_CONFIGURE, PhysicalNetwork.class); + // Network ACL + entityEventDetails.put(EVENT_NETWORK_ACL_CREATE, NetworkACL.class); + entityEventDetails.put(EVENT_NETWORK_ACL_DELETE, NetworkACL.class); + entityEventDetails.put(EVENT_NETWORK_ACL_REPLACE, NetworkACL.class); + entityEventDetails.put(EVENT_NETWORK_ACL_UPDATE, NetworkACL.class); + entityEventDetails.put(EVENT_NETWORK_ACL_ITEM_CREATE, NetworkACLItem.class); + entityEventDetails.put(EVENT_NETWORK_ACL_ITEM_UPDATE, NetworkACLItem.class); + entityEventDetails.put(EVENT_NETWORK_ACL_ITEM_DELETE, NetworkACLItem.class); + // VPC entityEventDetails.put(EVENT_VPC_CREATE, Vpc.class); entityEventDetails.put(EVENT_VPC_UPDATE, Vpc.class); diff --git a/api/src/com/cloud/network/vpc/NetworkACL.java b/api/src/com/cloud/network/vpc/NetworkACL.java index 193a48c60f3..b0c87cc112f 100644 --- a/api/src/com/cloud/network/vpc/NetworkACL.java +++ b/api/src/com/cloud/network/vpc/NetworkACL.java @@ -18,9 +18,10 @@ package com.cloud.network.vpc; import org.apache.cloudstack.api.Displayable; +import org.apache.cloudstack.api.Identity; import org.apache.cloudstack.api.InternalIdentity; -public interface NetworkACL extends InternalIdentity, Displayable { +public interface NetworkACL extends InternalIdentity, Identity, Displayable { public static final long DEFAULT_DENY = 1; public static final long DEFAULT_ALLOW = 2; diff --git a/api/src/com/cloud/network/vpc/NetworkACLItem.java b/api/src/com/cloud/network/vpc/NetworkACLItem.java index 8e288a2b967..75153fd7c5a 100644 --- a/api/src/com/cloud/network/vpc/NetworkACLItem.java +++ b/api/src/com/cloud/network/vpc/NetworkACLItem.java @@ -19,9 +19,10 @@ package com.cloud.network.vpc; import java.util.List; import org.apache.cloudstack.api.Displayable; +import org.apache.cloudstack.api.Identity; import org.apache.cloudstack.api.InternalIdentity; -public interface NetworkACLItem extends InternalIdentity, Displayable { +public interface NetworkACLItem extends InternalIdentity, Identity, Displayable { String getUuid(); diff --git a/api/src/org/apache/cloudstack/api/command/user/vpn/CreateRemoteAccessVpnCmd.java b/api/src/org/apache/cloudstack/api/command/user/vpn/CreateRemoteAccessVpnCmd.java index 14b781d2361..2bef64e1c61 100644 --- a/api/src/org/apache/cloudstack/api/command/user/vpn/CreateRemoteAccessVpnCmd.java +++ b/api/src/org/apache/cloudstack/api/command/user/vpn/CreateRemoteAccessVpnCmd.java @@ -147,12 +147,8 @@ public class CreateRemoteAccessVpnCmd extends BaseAsyncCreateCmd { try { RemoteAccessVpn vpn = _ravService.createRemoteAccessVpn(publicIpId, ipRange, getOpenFirewall(), isDisplay()); if (vpn != null) { - setEntityId(vpn.getServerAddressId()); - // find uuid for server ip address - IpAddress ipAddr = _entityMgr.findById(IpAddress.class, vpn.getServerAddressId()); - if (ipAddr != null) { - setEntityUuid(ipAddr.getUuid()); - } + setEntityId(vpn.getId()); + setEntityUuid(vpn.getUuid()); } else { throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, "Failed to create remote access vpn"); } diff --git a/server/src/com/cloud/event/ActionEventUtils.java b/server/src/com/cloud/event/ActionEventUtils.java index a30ec48007a..fa9d40da86e 100755 --- a/server/src/com/cloud/event/ActionEventUtils.java +++ b/server/src/com/cloud/event/ActionEventUtils.java @@ -288,8 +288,8 @@ public class ActionEventUtils { CallContext context = CallContext.current(); Map contextMap = context.getContextParameters(); - try{ - for(Map.Entry entry : contextMap.entrySet()){ + for(Map.Entry entry : contextMap.entrySet()){ + try{ Object key = entry.getKey(); Class clz = Class.forName((String)key); if(clz instanceof Class && Identity.class.isAssignableFrom(clz)){ @@ -297,9 +297,9 @@ public class ActionEventUtils { String uuid = ((Identity) objVO).getUuid(); eventDescription.put(ReflectUtil.getEntityName(clz), uuid); } + } catch (Exception e){ + s_logger.trace("Caught exception while populating first class entities for event bus, moving on"); } - }catch (Exception e){ - s_logger.debug("Caught exception while populating first class entities for event bus, moving on", e); } } diff --git a/server/src/com/cloud/network/vpc/NetworkACLServiceImpl.java b/server/src/com/cloud/network/vpc/NetworkACLServiceImpl.java index 19a26c16277..f871b8ef371 100644 --- a/server/src/com/cloud/network/vpc/NetworkACLServiceImpl.java +++ b/server/src/com/cloud/network/vpc/NetworkACLServiceImpl.java @@ -108,6 +108,7 @@ public class NetworkACLServiceImpl extends ManagerBase implements NetworkACLServ } @Override + @ActionEvent(eventType = EventTypes.EVENT_NETWORK_ACL_CREATE, eventDescription = "creating network acl list", async = true) public NetworkACL getNetworkACL(long id) { return _networkAclMgr.getNetworkACL(id); } @@ -471,6 +472,7 @@ public class NetworkACLServiceImpl extends ManagerBase implements NetworkACLServ } @Override + @ActionEvent(eventType = EventTypes.EVENT_NETWORK_ACL_ITEM_CREATE, eventDescription = "Applying Network ACL Item", async = true) public boolean applyNetworkACL(long aclId) throws ResourceUnavailableException { return _networkAclMgr.applyNetworkACL(aclId); } @@ -601,6 +603,7 @@ public class NetworkACLServiceImpl extends ManagerBase implements NetworkACLServ } @Override + @ActionEvent(eventType = EventTypes.EVENT_NETWORK_ACL_ITEM_DELETE, eventDescription = "Deleting Network ACL Item", async = true) public boolean revokeNetworkACLItem(long ruleId) { NetworkACLItemVO aclItem = _networkACLItemDao.findById(ruleId); if(aclItem != null){ @@ -620,6 +623,7 @@ public class NetworkACLServiceImpl extends ManagerBase implements NetworkACLServ } @Override + @ActionEvent(eventType = EventTypes.EVENT_NETWORK_ACL_ITEM_UPDATE, eventDescription = "Updating Network ACL Item", async = true) public NetworkACLItem updateNetworkACLItem(Long id, String protocol, List sourceCidrList, NetworkACLItem.TrafficType trafficType, String action, Integer number, Integer sourcePortStart, Integer sourcePortEnd, Integer icmpCode, Integer icmpType, String newUUID, Boolean forDisplay) throws ResourceUnavailableException { NetworkACLItemVO aclItem = _networkACLItemDao.findById(id); diff --git a/server/src/com/cloud/network/vpn/RemoteAccessVpnManagerImpl.java b/server/src/com/cloud/network/vpn/RemoteAccessVpnManagerImpl.java index 757f618eeb8..f4d89478246 100755 --- a/server/src/com/cloud/network/vpn/RemoteAccessVpnManagerImpl.java +++ b/server/src/com/cloud/network/vpn/RemoteAccessVpnManagerImpl.java @@ -285,6 +285,7 @@ public class RemoteAccessVpnManagerImpl extends ManagerBase implements RemoteAcc @Override @DB + @ActionEvent(eventType = EventTypes.EVENT_REMOTE_ACCESS_VPN_DESTROY, eventDescription = "removing remote access vpn", async = true) public boolean destroyRemoteAccessVpnForIp(long ipId, Account caller) throws ResourceUnavailableException { final RemoteAccessVpnVO vpn = _remoteAccessVpnDao.findByPublicIpAddress(ipId); if (vpn == null) { @@ -449,6 +450,7 @@ public class RemoteAccessVpnManagerImpl extends ManagerBase implements RemoteAcc @Override @DB + @ActionEvent(eventType = EventTypes.EVENT_REMOTE_ACCESS_VPN_CREATE, eventDescription = "creating remote access vpn", async = true) public RemoteAccessVpnVO startRemoteAccessVpn(long ipAddressId, boolean openFirewall) throws ResourceUnavailableException { Account caller = CallContext.current().getCallingAccount(); diff --git a/server/src/com/cloud/vm/UserVmManagerImpl.java b/server/src/com/cloud/vm/UserVmManagerImpl.java index f699ee1ff0c..f97ce7496fc 100755 --- a/server/src/com/cloud/vm/UserVmManagerImpl.java +++ b/server/src/com/cloud/vm/UserVmManagerImpl.java @@ -957,6 +957,7 @@ public class UserVmManagerImpl extends ManagerBase implements UserVmManager, Vir } @Override + @ActionEvent(eventType = EventTypes.EVENT_NIC_CREATE, eventDescription = "Creating Nic", async = true) public UserVm addNicToVirtualMachine(AddNicToVMCmd cmd) throws InvalidParameterValueException, PermissionDeniedException, CloudRuntimeException { Long vmId = cmd.getVmId(); Long networkId = cmd.getNetworkId(); @@ -1041,6 +1042,7 @@ public class UserVmManagerImpl extends ManagerBase implements UserVmManager, Vir } @Override + @ActionEvent(eventType = EventTypes.EVENT_NIC_DELETE, eventDescription = "Removing Nic", async = true) public UserVm removeNicFromVirtualMachine(RemoveNicFromVMCmd cmd) throws InvalidParameterValueException, PermissionDeniedException, CloudRuntimeException { Long vmId = cmd.getVmId(); Long nicId = cmd.getNicId(); @@ -1097,6 +1099,7 @@ public class UserVmManagerImpl extends ManagerBase implements UserVmManager, Vir } @Override + @ActionEvent(eventType = EventTypes.EVENT_NIC_UPDATE, eventDescription = "Creating Nic", async = true) public UserVm updateDefaultNicForVirtualMachine(UpdateDefaultNicForVMCmd cmd) throws InvalidParameterValueException, CloudRuntimeException { Long vmId = cmd.getVmId(); Long nicId = cmd.getNicId();