|
16 | 16 | // under the License. |
17 | 17 | package com.cloud.usage; |
18 | 18 |
|
| 19 | +import static com.cloud.utils.NumbersUtil.toHumanReadableSize; |
| 20 | + |
| 21 | +import java.net.InetAddress; |
| 22 | +import java.sql.SQLException; |
| 23 | +import java.util.ArrayList; |
| 24 | +import java.util.Calendar; |
| 25 | +import java.util.Date; |
| 26 | +import java.util.HashMap; |
| 27 | +import java.util.List; |
| 28 | +import java.util.Map; |
| 29 | +import java.util.TimeZone; |
| 30 | +import java.util.concurrent.Executors; |
| 31 | +import java.util.concurrent.Future; |
| 32 | +import java.util.concurrent.ScheduledExecutorService; |
| 33 | +import java.util.concurrent.TimeUnit; |
| 34 | + |
| 35 | +import javax.inject.Inject; |
| 36 | +import javax.naming.ConfigurationException; |
| 37 | +import javax.persistence.EntityExistsException; |
| 38 | + |
| 39 | +import org.apache.cloudstack.framework.config.dao.ConfigurationDao; |
| 40 | +import org.apache.cloudstack.managed.context.ManagedContextRunnable; |
| 41 | +import org.apache.cloudstack.quota.QuotaAlertManager; |
| 42 | +import org.apache.cloudstack.quota.QuotaManager; |
| 43 | +import org.apache.cloudstack.quota.QuotaStatement; |
| 44 | +import org.apache.cloudstack.usage.UsageTypes; |
| 45 | +import org.apache.cloudstack.utils.usage.UsageUtils; |
| 46 | +import org.apache.commons.collections.CollectionUtils; |
| 47 | +import org.springframework.stereotype.Component; |
| 48 | + |
19 | 49 | import com.cloud.alert.AlertManager; |
20 | 50 | import com.cloud.event.EventTypes; |
21 | 51 | import com.cloud.event.UsageEventDetailsVO; |
|
71 | 101 | import com.cloud.utils.db.SearchCriteria; |
72 | 102 | import com.cloud.utils.db.TransactionLegacy; |
73 | 103 | import com.cloud.utils.exception.CloudRuntimeException; |
74 | | -import org.apache.cloudstack.framework.config.dao.ConfigurationDao; |
75 | | -import org.apache.cloudstack.managed.context.ManagedContextRunnable; |
76 | | -import org.apache.cloudstack.quota.QuotaAlertManager; |
77 | | -import org.apache.cloudstack.quota.QuotaManager; |
78 | | -import org.apache.cloudstack.quota.QuotaStatement; |
79 | | -import org.apache.cloudstack.usage.UsageTypes; |
80 | | -import org.apache.cloudstack.utils.usage.UsageUtils; |
81 | | -import org.apache.commons.collections.CollectionUtils; |
82 | | -import org.springframework.stereotype.Component; |
83 | | - |
84 | | -import javax.inject.Inject; |
85 | | -import javax.naming.ConfigurationException; |
86 | | -import java.net.InetAddress; |
87 | | -import java.sql.SQLException; |
88 | | -import java.util.ArrayList; |
89 | | -import java.util.Calendar; |
90 | | -import java.util.Date; |
91 | | -import java.util.HashMap; |
92 | | -import java.util.List; |
93 | | -import java.util.Map; |
94 | | -import java.util.TimeZone; |
95 | | -import java.util.concurrent.Executors; |
96 | | -import java.util.concurrent.Future; |
97 | | -import java.util.concurrent.ScheduledExecutorService; |
98 | | -import java.util.concurrent.TimeUnit; |
99 | | - |
100 | | -import static com.cloud.utils.NumbersUtil.toHumanReadableSize; |
101 | 104 |
|
102 | 105 | @Component |
103 | 106 | public class UsageManagerImpl extends ManagerBase implements UsageManager, Runnable { |
@@ -1036,34 +1039,38 @@ private boolean parseHelperTables(AccountVO account, Date currentStartDate, Date |
1036 | 1039 |
|
1037 | 1040 | private void createHelperRecord(UsageEventVO event) { |
1038 | 1041 | String eventType = event.getType(); |
1039 | | - if (isVMEvent(eventType)) { |
1040 | | - createVMHelperEvent(event); |
1041 | | - } else if (isIPEvent(eventType)) { |
1042 | | - createIPHelperEvent(event); |
1043 | | - } else if (isVolumeEvent(eventType)) { |
1044 | | - createVolumeHelperEvent(event); |
1045 | | - } else if (isTemplateEvent(eventType)) { |
1046 | | - createTemplateHelperEvent(event); |
1047 | | - } else if (isISOEvent(eventType)) { |
1048 | | - createISOHelperEvent(event); |
1049 | | - } else if (isSnapshotEvent(eventType)) { |
1050 | | - createSnapshotHelperEvent(event); |
1051 | | - } else if (isLoadBalancerEvent(eventType)) { |
1052 | | - createLoadBalancerHelperEvent(event); |
1053 | | - } else if (isPortForwardingEvent(eventType)) { |
1054 | | - createPortForwardingHelperEvent(event); |
1055 | | - } else if (isNetworkOfferingEvent(eventType)) { |
1056 | | - createNetworkOfferingEvent(event); |
1057 | | - } else if (isVPNUserEvent(eventType)) { |
1058 | | - handleVpnUserEvent(event); |
1059 | | - } else if (isSecurityGroupEvent(eventType)) { |
1060 | | - createSecurityGroupEvent(event); |
1061 | | - } else if (isVmSnapshotEvent(eventType)) { |
1062 | | - handleVMSnapshotEvent(event); |
1063 | | - } else if (isVmSnapshotOnPrimaryEvent(eventType)) { |
1064 | | - createVmSnapshotOnPrimaryEvent(event); |
1065 | | - } else if (isBackupEvent(eventType)) { |
1066 | | - createBackupEvent(event); |
| 1042 | + try { |
| 1043 | + if (isVMEvent(eventType)) { |
| 1044 | + createVMHelperEvent(event); |
| 1045 | + } else if (isIPEvent(eventType)) { |
| 1046 | + createIPHelperEvent(event); |
| 1047 | + } else if (isVolumeEvent(eventType)) { |
| 1048 | + createVolumeHelperEvent(event); |
| 1049 | + } else if (isTemplateEvent(eventType)) { |
| 1050 | + createTemplateHelperEvent(event); |
| 1051 | + } else if (isISOEvent(eventType)) { |
| 1052 | + createISOHelperEvent(event); |
| 1053 | + } else if (isSnapshotEvent(eventType)) { |
| 1054 | + createSnapshotHelperEvent(event); |
| 1055 | + } else if (isLoadBalancerEvent(eventType)) { |
| 1056 | + createLoadBalancerHelperEvent(event); |
| 1057 | + } else if (isPortForwardingEvent(eventType)) { |
| 1058 | + createPortForwardingHelperEvent(event); |
| 1059 | + } else if (isNetworkOfferingEvent(eventType)) { |
| 1060 | + createNetworkOfferingEvent(event); |
| 1061 | + } else if (isVPNUserEvent(eventType)) { |
| 1062 | + handleVpnUserEvent(event); |
| 1063 | + } else if (isSecurityGroupEvent(eventType)) { |
| 1064 | + createSecurityGroupEvent(event); |
| 1065 | + } else if (isVmSnapshotEvent(eventType)) { |
| 1066 | + handleVMSnapshotEvent(event); |
| 1067 | + } else if (isVmSnapshotOnPrimaryEvent(eventType)) { |
| 1068 | + createVmSnapshotOnPrimaryEvent(event); |
| 1069 | + } else if (isBackupEvent(eventType)) { |
| 1070 | + createBackupEvent(event); |
| 1071 | + } |
| 1072 | + } catch (EntityExistsException e) { |
| 1073 | + logger.warn(String.format("Failed to create usage event id: %d type: %s due to %s", event.getId(), eventType, e.getMessage()), e); |
1067 | 1074 | } |
1068 | 1075 | } |
1069 | 1076 |
|
|
0 commit comments