|
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