DaanHoogland commented on code in PR #10712:
URL: https://github.com/apache/cloudstack/pull/10712#discussion_r2071197800


##########
usage/src/main/java/com/cloud/usage/UsageManagerImpl.java:
##########
@@ -2162,6 +2177,13 @@ private void handleVpcEvent(UsageEventVO event) {
         if (EventTypes.EVENT_VPC_DELETE.equals(event.getType())) {
             usageVpcDao.remove(event.getResourceId(), event.getCreateDate());
         } else if (EventTypes.EVENT_VPC_CREATE.equals(event.getType())) {
+            List<UsageVpcVO> entries = 
usageVpcDao.listAll(event.getResourceId());
+            if (!entries.isEmpty()) {
+                s_logger.warn(String.format("Active helper entries already 
exist for VPC [%s]; therefore, we will not create a new one.",
+                        event.getResourceId()));
+                return;
+            }
+            s_logger.debug(String.format("Creating a helper entry for VPC 
[%s].", event.getResourceId()));
             UsageVpcVO usageVPCVO = new UsageVpcVO(event.getResourceId(), 
event.getZoneId(), event.getAccountId(), domainId, Vpc.State.Enabled.name(), 
event.getCreateDate(), null);

Review Comment:
   could be a new method (again, return needs to be handled with a checked 
exception)



##########
usage/src/main/java/com/cloud/usage/UsageManagerImpl.java:
##########
@@ -2142,15 +2143,29 @@ private void createBackupEvent(final UsageEventVO 
event) {
     }
 
     private void handleNetworkEvent(UsageEventVO event) {
+        long networkId = event.getResourceId();
         Account account = 
_accountDao.findByIdIncludingRemoved(event.getAccountId());
         long domainId = account.getDomainId();
         if (EventTypes.EVENT_NETWORK_DELETE.equals(event.getType())) {
-            usageNetworksDao.remove(event.getResourceId(), 
event.getCreateDate());
+            usageNetworksDao.remove(networkId, event.getCreateDate());
         } else if (EventTypes.EVENT_NETWORK_CREATE.equals(event.getType())) {
-            UsageNetworksVO usageNetworksVO = new 
UsageNetworksVO(event.getResourceId(), event.getOfferingId(), 
event.getZoneId(), event.getAccountId(), domainId, 
Network.State.Allocated.name(), event.getCreateDate(), null);
+            List<UsageNetworksVO> entries = 
usageNetworksDao.listAll(networkId);
+            if (!entries.isEmpty()) {
+                s_logger.warn(String.format("Received a NETWORK.CREATE event 
for a network [%s] that already has helper entries; " +
+                                "therefore, we will not create a new one.", 
networkId));
+                return;
+            }
+            s_logger.debug(String.format("Creating a helper entry for network 
[%s].", networkId));
+            UsageNetworksVO usageNetworksVO = new UsageNetworksVO(networkId, 
event.getOfferingId(), event.getZoneId(),
+                    event.getAccountId(), domainId, 
Network.State.Allocated.name(), event.getCreateDate(), null);
             usageNetworksDao.persist(usageNetworksVO);

Review Comment:
   could be a new method (if the return is handled with a checked exception)



##########
usage/src/main/java/com/cloud/usage/UsageManagerImpl.java:
##########
@@ -2142,15 +2143,29 @@ private void createBackupEvent(final UsageEventVO 
event) {
     }
 
     private void handleNetworkEvent(UsageEventVO event) {
+        long networkId = event.getResourceId();
         Account account = 
_accountDao.findByIdIncludingRemoved(event.getAccountId());
         long domainId = account.getDomainId();
         if (EventTypes.EVENT_NETWORK_DELETE.equals(event.getType())) {
-            usageNetworksDao.remove(event.getResourceId(), 
event.getCreateDate());
+            usageNetworksDao.remove(networkId, event.getCreateDate());
         } else if (EventTypes.EVENT_NETWORK_CREATE.equals(event.getType())) {
-            UsageNetworksVO usageNetworksVO = new 
UsageNetworksVO(event.getResourceId(), event.getOfferingId(), 
event.getZoneId(), event.getAccountId(), domainId, 
Network.State.Allocated.name(), event.getCreateDate(), null);
+            List<UsageNetworksVO> entries = 
usageNetworksDao.listAll(networkId);
+            if (!entries.isEmpty()) {
+                s_logger.warn(String.format("Received a NETWORK.CREATE event 
for a network [%s] that already has helper entries; " +
+                                "therefore, we will not create a new one.", 
networkId));
+                return;
+            }
+            s_logger.debug(String.format("Creating a helper entry for network 
[%s].", networkId));
+            UsageNetworksVO usageNetworksVO = new UsageNetworksVO(networkId, 
event.getOfferingId(), event.getZoneId(),
+                    event.getAccountId(), domainId, 
Network.State.Allocated.name(), event.getCreateDate(), null);
             usageNetworksDao.persist(usageNetworksVO);
         } else if (EventTypes.EVENT_NETWORK_UPDATE.equals(event.getType())) {
-            usageNetworksDao.update(event.getResourceId(), 
event.getOfferingId(), event.getResourceType());
+            s_logger.debug(String.format("Marking previous helper entries of 
network [%s] as removed.", networkId));
+            usageNetworksDao.remove(networkId, event.getCreateDate());
+            s_logger.debug(String.format("Creating an updated helper entry for 
network [%s].", networkId));
+            UsageNetworksVO usageNetworksVO = new UsageNetworksVO(networkId, 
event.getOfferingId(), event.getZoneId(),
+                    event.getAccountId(), domainId, event.getResourceType(), 
event.getCreateDate(), null);
+            usageNetworksDao.persist(usageNetworksVO);

Review Comment:
   could be a new method



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscr...@cloudstack.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to