From 1d0a650fd43a2b801db2ec3a6be218e0b00ab501 Mon Sep 17 00:00:00 2001 From: Vishesh Date: Thu, 29 Feb 2024 12:34:00 +0530 Subject: [PATCH 1/2] Fixup usage entity exists exception --- .../com/cloud/usage/UsageManagerImpl.java | 61 ++++++++++--------- 1 file changed, 33 insertions(+), 28 deletions(-) diff --git a/usage/src/main/java/com/cloud/usage/UsageManagerImpl.java b/usage/src/main/java/com/cloud/usage/UsageManagerImpl.java index 21a81ad5c02c..ddb17d4e06e2 100644 --- a/usage/src/main/java/com/cloud/usage/UsageManagerImpl.java +++ b/usage/src/main/java/com/cloud/usage/UsageManagerImpl.java @@ -32,6 +32,7 @@ import javax.inject.Inject; import javax.naming.ConfigurationException; +import javax.persistence.EntityExistsException; import org.apache.cloudstack.quota.QuotaAlertManager; import org.apache.cloudstack.quota.QuotaManager; @@ -983,34 +984,38 @@ private boolean parseHelperTables(AccountVO account, Date currentStartDate, Date private void createHelperRecord(UsageEventVO event) { String eventType = event.getType(); - if (isVMEvent(eventType)) { - createVMHelperEvent(event); - } else if (isIPEvent(eventType)) { - createIPHelperEvent(event); - } else if (isVolumeEvent(eventType)) { - createVolumeHelperEvent(event); - } else if (isTemplateEvent(eventType)) { - createTemplateHelperEvent(event); - } else if (isISOEvent(eventType)) { - createISOHelperEvent(event); - } else if (isSnapshotEvent(eventType)) { - createSnapshotHelperEvent(event); - } else if (isLoadBalancerEvent(eventType)) { - createLoadBalancerHelperEvent(event); - } else if (isPortForwardingEvent(eventType)) { - createPortForwardingHelperEvent(event); - } else if (isNetworkOfferingEvent(eventType)) { - createNetworkOfferingEvent(event); - } else if (isVPNUserEvent(eventType)) { - handleVpnUserEvent(event); - } else if (isSecurityGroupEvent(eventType)) { - createSecurityGroupEvent(event); - } else if (isVmSnapshotEvent(eventType)) { - handleVMSnapshotEvent(event); - } else if (isVmSnapshotOnPrimaryEvent(eventType)) { - createVmSnapshotOnPrimaryEvent(event); - } else if (isBackupEvent(eventType)) { - createBackupEvent(event); + try { + if (isVMEvent(eventType)) { + createVMHelperEvent(event); + } else if (isIPEvent(eventType)) { + createIPHelperEvent(event); + } else if (isVolumeEvent(eventType)) { + createVolumeHelperEvent(event); + } else if (isTemplateEvent(eventType)) { + createTemplateHelperEvent(event); + } else if (isISOEvent(eventType)) { + createISOHelperEvent(event); + } else if (isSnapshotEvent(eventType)) { + createSnapshotHelperEvent(event); + } else if (isLoadBalancerEvent(eventType)) { + createLoadBalancerHelperEvent(event); + } else if (isPortForwardingEvent(eventType)) { + createPortForwardingHelperEvent(event); + } else if (isNetworkOfferingEvent(eventType)) { + createNetworkOfferingEvent(event); + } else if (isVPNUserEvent(eventType)) { + handleVpnUserEvent(event); + } else if (isSecurityGroupEvent(eventType)) { + createSecurityGroupEvent(event); + } else if (isVmSnapshotEvent(eventType)) { + handleVMSnapshotEvent(event); + } else if (isVmSnapshotOnPrimaryEvent(eventType)) { + createVmSnapshotOnPrimaryEvent(event); + } else if (isBackupEvent(eventType)) { + createBackupEvent(event); + } + } catch (EntityExistsException e) { + s_logger.error(String.format("Failed to create usage event: %d due to %s", event.getId(), e.getMessage())); } } From 30556abc6818da6d35ff9f4a4783ffed72168964 Mon Sep 17 00:00:00 2001 From: Vishesh Date: Thu, 29 Feb 2024 16:26:52 +0530 Subject: [PATCH 2/2] Resolve comments --- usage/src/main/java/com/cloud/usage/UsageManagerImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/usage/src/main/java/com/cloud/usage/UsageManagerImpl.java b/usage/src/main/java/com/cloud/usage/UsageManagerImpl.java index ddb17d4e06e2..dd838f2f3ff8 100644 --- a/usage/src/main/java/com/cloud/usage/UsageManagerImpl.java +++ b/usage/src/main/java/com/cloud/usage/UsageManagerImpl.java @@ -1015,7 +1015,7 @@ private void createHelperRecord(UsageEventVO event) { createBackupEvent(event); } } catch (EntityExistsException e) { - s_logger.error(String.format("Failed to create usage event: %d due to %s", event.getId(), e.getMessage())); + s_logger.warn(String.format("Failed to create usage event id: %d type: %s due to %s", event.getId(), eventType, e.getMessage()), e); } }