This is an automated email from the ASF dual-hosted git repository.
dahn pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/cloudstack.git
The following commit(s) were added to refs/heads/main by this push:
new 407990650f6 Improvements on information about disk sizes and offerings
on VM deployment wizard's InfoCard (#9249)
407990650f6 is described below
commit 407990650f6202e1955bc29d956187d8b7c52ef3
Author: Fabricio Duarte <[email protected]>
AuthorDate: Fri Jul 12 10:13:47 2024 -0300
Improvements on information about disk sizes and offerings on VM deployment
wizard's InfoCard (#9249)
---
ui/src/components/view/InfoCard.vue | 13 +++++++--
ui/src/views/compute/DeployVM.vue | 58 +++++++++++++++++++++++++++----------
2 files changed, 53 insertions(+), 18 deletions(-)
diff --git a/ui/src/components/view/InfoCard.vue
b/ui/src/components/view/InfoCard.vue
index 267a759b28f..213078f2991 100644
--- a/ui/src/components/view/InfoCard.vue
+++ b/ui/src/components/view/InfoCard.vue
@@ -551,12 +551,19 @@
<span v-else>{{ resource.serviceofferingname ||
resource.serviceofferingid }}</span>
</div>
</div>
- <div class="resource-detail-item" v-if="resource.diskofferingname &&
resource.diskofferingid">
+ <div class="resource-detail-item" v-if="resource.rootdiskofferingid &&
resource.rootdiskofferingdisplaytext || resource.datadiskofferingid &&
resource.datadiskofferingdisplaytext">
<div class="resource-detail-item__label">{{ $t('label.diskoffering')
}}</div>
<div class="resource-detail-item__details">
<hdd-outlined />
- <router-link v-if="!isStatic && $router.resolve('/diskoffering/' +
resource.diskofferingid).matched[0].redirect !== '/exception/404'" :to="{ path:
'/diskoffering/' + resource.diskofferingid }">{{ resource.diskofferingname ||
resource.diskofferingid }} </router-link>
- <span v-else>{{ resource.diskofferingname ||
resource.diskofferingid }}</span>
+ <div v-if="resource.rootdiskofferingid">
+ <router-link v-if="!isStatic && $router.resolve('/diskoffering/'
+ resource.rootdiskofferingid).matched[0].redirect !== '/exception/404'" :to="{
path: '/diskoffering/' + resource.rootdiskofferingid }">{{
resource.rootdiskofferingdisplaytext }}</router-link>
+ <span v-else>{{ resource.rootdiskofferingdisplaytext }}</span>
+ </div>
+ <span v-if="resource.rootdiskofferingid &&
resource.datadiskofferingid"> | </span>
+ <div v-if="resource.datadiskofferingid">
+ <router-link v-if="!isStatic && $router.resolve('/diskoffering/'
+ resource.datadiskofferingid).matched[0].redirect !== '/exception/404'" :to="{
path: '/diskoffering/' + resource.datadiskofferingid }">{{
resource.datadiskofferingdisplaytext }}</router-link>
+ <span v-else>{{ resource.datadiskofferingdisplaytext }}</span>
+ </div>
</div>
</div>
<div class="resource-detail-item" v-if="resource.backupofferingid">
diff --git a/ui/src/views/compute/DeployVM.vue
b/ui/src/views/compute/DeployVM.vue
index 746841e65a1..5720e545b24 100644
--- a/ui/src/views/compute/DeployVM.vue
+++ b/ui/src/views/compute/DeployVM.vue
@@ -1078,26 +1078,55 @@ export default {
return ['User'].includes(this.$store.getters.userInfo.roletype) ||
store.getters.project.id
},
diskSize () {
+ const customRootDiskSize = _.get(this.instanceConfig, 'rootdisksize',
null)
+ const customDataDiskSize = _.get(this.instanceConfig, 'size', null)
+ let computeOfferingDiskSize = _.get(this.serviceOffering,
'rootdisksize', null)
+ computeOfferingDiskSize = computeOfferingDiskSize > 0 ?
computeOfferingDiskSize : null
+ const diskOfferingDiskSize = _.get(this.diskOffering, 'disksize', null)
+ const overrideDiskOfferingDiskSize = _.get(this.overrideDiskOffering,
'disksize', null)
+
+ let rootDiskSize
let dataDiskSize
- let rootDiskSize = _.get(this.instanceConfig, 'rootdisksize', 0)
- const diskOfferingDiskSize = _.get(this.diskOffering, 'disksize', 0)
- const customDiskSize = _.get(this.instanceConfig, 'size', 0)
-
if (this.vm.isoid != null) {
- rootDiskSize = diskOfferingDiskSize > 0 ? diskOfferingDiskSize :
customDiskSize
+ rootDiskSize = this.diskOffering?.iscustomized ? customDataDiskSize :
diskOfferingDiskSize
} else {
- dataDiskSize = diskOfferingDiskSize > 0 ? diskOfferingDiskSize :
customDiskSize
+ rootDiskSize = this.overrideDiskOffering?.iscustomized ?
customRootDiskSize : overrideDiskOfferingDiskSize || computeOfferingDiskSize ||
this.dataPreFill.minrootdisksize
+ dataDiskSize = this.diskOffering?.iscustomized ? customDataDiskSize :
diskOfferingDiskSize
}
const size = []
- if (rootDiskSize > 0) {
+ if (rootDiskSize) {
size.push(`${rootDiskSize} GB (Root)`)
}
- if (dataDiskSize > 0) {
+ if (dataDiskSize) {
size.push(`${dataDiskSize} GB (Data)`)
}
return size.join(' | ')
},
+ rootDiskOffering () {
+ const rootDiskOffering = this.vm.isoid != null ? this.diskOffering :
this.overrideDiskOffering
+
+ const id = _.get(rootDiskOffering, 'id', null)
+ const displayText = _.get(rootDiskOffering, 'displaytext', null)
+
+ return {
+ id: id,
+ displayText: `${displayText} (Root)`
+ }
+ },
+ dataDiskOffering () {
+ if (this.vm.isoid != null) {
+ return null
+ }
+
+ const id = _.get(this.diskOffering, 'id', null)
+ const displayText = _.get(this.diskOffering, 'displaytext', null)
+
+ return {
+ id: id,
+ displayText: `${displayText} (Data)`
+ }
+ },
affinityGroupIds () {
return _.map(this.affinityGroups, 'id')
},
@@ -1439,18 +1468,12 @@ export default {
this.vm.hostname = host.name
}
- if (this.serviceOffering?.rootdisksize) {
- this.vm.disksizetotalgb = this.serviceOffering.rootdisksize
- } else if (this.diskSize) {
+ if (this.diskSize) {
this.vm.disksizetotalgb = this.diskSize
} else {
this.vm.disksizetotalgb = null
}
- if (this.diskSize) {
- this.vm.disksizetotalgb = this.diskSize
- }
-
if (this.networks) {
this.vm.networks = this.networks
this.vm.defaultnetworkid = this.defaultnetworkid
@@ -1498,6 +1521,11 @@ export default {
this.vm.diskofferingsize = this.diskOffering.disksize
}
+ this.vm.rootdiskofferingid = this.rootDiskOffering?.id
+ this.vm.rootdiskofferingdisplaytext =
this.rootDiskOffering?.displayText
+ this.vm.datadiskofferingid = this.dataDiskOffering?.id
+ this.vm.datadiskofferingdisplaytext =
this.dataDiskOffering?.displayText
+
if (this.affinityGroups) {
this.vm.affinitygroup = this.affinityGroups
}