Skip to content

Commit bb24484

Browse files
committed
Merge remote-tracking branch 'apache/4.19'
2 parents 92bfb4d + 0780f0e commit bb24484

File tree

3 files changed

+71
-79
lines changed

3 files changed

+71
-79
lines changed

ui/src/views/compute/DeployVM.vue

+8-24
Original file line numberDiff line numberDiff line change
@@ -1358,36 +1358,20 @@ export default {
13581358
}
13591359
13601360
this.serviceOffering = _.find(this.options.serviceOfferings, (option) => option.id === instanceConfig.computeofferingid)
1361-
if (this.serviceOffering?.diskofferingid) {
1362-
if (iso) {
1363-
this.diskOffering = _.find(this.options.diskOfferings, (option) => option.id === this.serviceOffering.diskofferingid)
1364-
} else {
1365-
instanceConfig.overridediskofferingid = this.serviceOffering.diskofferingid
1366-
}
1367-
}
1368-
if (!iso && this.diskSelected) {
1369-
this.diskOffering = _.find(this.options.diskOfferings, (option) => option.id === instanceConfig.diskofferingid)
1370-
}
1371-
if (this.rootDiskSelected?.id) {
1372-
instanceConfig.overridediskofferingid = this.rootDiskSelected.id
1373-
}
1361+
1362+
instanceConfig.overridediskofferingid = this.rootDiskSelected?.id || this.serviceOffering?.diskofferingid
13741363
if (instanceConfig.overridediskofferingid) {
13751364
this.overrideDiskOffering = _.find(this.options.diskOfferings, (option) => option.id === instanceConfig.overridediskofferingid)
13761365
} else {
13771366
this.overrideDiskOffering = null
13781367
}
13791368
1380-
if (!iso && this.diskSelected) {
1369+
if (iso && this.serviceOffering?.diskofferingid) {
1370+
this.diskOffering = _.find(this.options.diskOfferings, (option) => option.id === this.serviceOffering.diskofferingid)
1371+
} else if (!iso && this.diskSelected) {
13811372
this.diskOffering = _.find(this.options.diskOfferings, (option) => option.id === instanceConfig.diskofferingid)
13821373
}
1383-
if (this.rootDiskSelected?.id) {
1384-
instanceConfig.overridediskofferingid = this.rootDiskSelected.id
1385-
}
1386-
if (instanceConfig.overridediskofferingid) {
1387-
this.overrideDiskOffering = _.find(this.options.diskOfferings, (option) => option.id === instanceConfig.overridediskofferingid)
1388-
} else {
1389-
this.overrideDiskOffering = null
1390-
}
1374+
13911375
this.zone = _.find(this.options.zones, (option) => option.id === instanceConfig.zoneid)
13921376
this.affinityGroups = _.filter(this.options.affinityGroups, (option) => _.includes(instanceConfig.affinitygroupids, option.id))
13931377
this.networks = this.getSelectedNetworksWithExistingConfig(_.filter(this.options.networks, (option) => _.includes(instanceConfig.networkids, option.id)))
@@ -1664,6 +1648,7 @@ export default {
16641648
this.showRootDiskSizeChanger = false
16651649
} else {
16661650
this.rootDiskSelected = null
1651+
this.form.overridediskofferingid = undefined
16671652
}
16681653
this.showOverrideDiskOfferingOption = val
16691654
},
@@ -1905,7 +1890,6 @@ export default {
19051890
if (this.loading.deploy) return
19061891
this.formRef.value.validate().then(async () => {
19071892
const values = toRaw(this.form)
1908-
19091893
if (!values.templateid && !values.isoid) {
19101894
this.$notification.error({
19111895
message: this.$t('message.request.failed'),
@@ -1994,7 +1978,7 @@ export default {
19941978
if (this.selectedTemplateConfiguration) {
19951979
deployVmData['details[0].configurationId'] = this.selectedTemplateConfiguration.id
19961980
}
1997-
if (!this.serviceOffering.diskofferingstrictness && values.overridediskofferingid) {
1981+
if (!this.serviceOffering.diskofferingstrictness && values.overridediskofferingid && !values.isoid) {
19981982
deployVmData.overridediskofferingid = values.overridediskofferingid
19991983
if (values.rootdisksize && values.rootdisksize > 0) {
20001984
deployVmData.rootdisksize = values.rootdisksize

ui/src/views/compute/wizard/DiskOfferingSelection.vue

+1
Original file line numberDiff line numberDiff line change
@@ -233,6 +233,7 @@ export default {
233233
this.selectedRowKeys = value
234234
this.$emit('select-disk-offering-item', value[0])
235235
this.$emit('on-selected-disk-size', this.diskSelected)
236+
this.$emit('on-selected-root-disk-size', this.diskSelected)
236237
},
237238
handleSearch (value) {
238239
this.filter = value

usage/src/main/java/com/cloud/usage/UsageManagerImpl.java

+62-55
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,36 @@
1616
// under the License.
1717
package com.cloud.usage;
1818

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+
1949
import com.cloud.alert.AlertManager;
2050
import com.cloud.event.EventTypes;
2151
import com.cloud.event.UsageEventDetailsVO;
@@ -71,33 +101,6 @@
71101
import com.cloud.utils.db.SearchCriteria;
72102
import com.cloud.utils.db.TransactionLegacy;
73103
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;
101104

102105
@Component
103106
public class UsageManagerImpl extends ManagerBase implements UsageManager, Runnable {
@@ -1036,34 +1039,38 @@ private boolean parseHelperTables(AccountVO account, Date currentStartDate, Date
10361039

10371040
private void createHelperRecord(UsageEventVO event) {
10381041
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);
10671074
}
10681075
}
10691076

0 commit comments

Comments
 (0)