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 <fabricio.duarte...@gmail.com>
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">&nbsp;|&nbsp;</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
         }

Reply via email to