Skip to content

Commit 3b317e0

Browse files
committed
Minor ui fixes and null checks
1 parent b1a86b8 commit 3b317e0

File tree

6 files changed

+47
-20
lines changed

6 files changed

+47
-20
lines changed

server/src/main/java/org/apache/cloudstack/backup/BackupManagerImpl.java

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -311,7 +311,9 @@ public Map<String, String> getBackupVmDetails(VirtualMachine vm) {
311311
for (UserVmJoinVO userVmJoinVO : userVmJoinVOs) {
312312
networkIds.add(userVmJoinVO.getNetworkUuid());
313313
}
314-
details.put(ApiConstants.NETWORK_IDS, String.join(",", networkIds));
314+
if (!networkIds.isEmpty()) {
315+
details.put(ApiConstants.NETWORK_IDS, String.join(",", networkIds));
316+
}
315317
}
316318
return details;
317319
}
@@ -334,10 +336,12 @@ public Map<String, String> getBackupDiskOfferingDetails(Long vmId) {
334336
minIops.add(vol.getMinIops());
335337
maxIops.add(vol.getMaxIops());
336338
}
337-
details.put(ApiConstants.DISK_OFFERING_IDS, String.join(",", diskOfferingIds));
338-
details.put(ApiConstants.DISK_SIZES, String.join(",", diskSizes.stream().map(String::valueOf).collect(Collectors.toList())));
339-
details.put(ApiConstants.MIN_IOPS, String.join(",", minIops.stream().map(String::valueOf).collect(Collectors.toList())));
340-
details.put(ApiConstants.MAX_IOPS, String.join(",", maxIops.stream().map(String::valueOf).collect(Collectors.toList())));
339+
if (!diskOfferingIds.isEmpty()) {
340+
details.put(ApiConstants.DISK_OFFERING_IDS, String.join(",", diskOfferingIds));
341+
details.put(ApiConstants.DISK_SIZES, String.join(",", diskSizes.stream().map(String::valueOf).collect(Collectors.toList())));
342+
details.put(ApiConstants.MIN_IOPS, String.join(",", minIops.stream().map(String::valueOf).collect(Collectors.toList())));
343+
details.put(ApiConstants.MAX_IOPS, String.join(",", maxIops.stream().map(String::valueOf).collect(Collectors.toList())));
344+
}
341345
return details;
342346
}
343347

@@ -820,7 +824,12 @@ public List<DiskOfferingInfo> getDataDiskOfferingListFromBackup(Backup backup) {
820824
List<Long> minIopsList;
821825
List<Long> maxIopsList;
822826

823-
diskOfferings = Stream.of(backup.getDetail(ApiConstants.DISK_OFFERING_IDS).split(","))
827+
String diskOfferingIds = backup.getDetail(ApiConstants.DISK_OFFERING_IDS);
828+
if (diskOfferingIds == null) {
829+
return null;
830+
}
831+
832+
diskOfferings = Stream.of(diskOfferingIds.split(","))
824833
.map(uuid -> diskOfferingDao.findByUuid(uuid))
825834
.collect(Collectors.toList());
826835
diskSizes = Stream.of(backup.getDetail(ApiConstants.DISK_SIZES).split(","))

ui/public/locales/en.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -612,6 +612,7 @@
612612
"label.create.backup": "Start backup",
613613
"label.create.sharedfs": "Create Shared FileSystem",
614614
"label.create.network": "Create new Network",
615+
"label.create.new.instance.from.backup": "Create new instance from backup",
615616
"label.create.nfs.secondary.staging.storage": "Create NFS secondary staging storage",
616617
"label.create.project": "Create project",
617618
"label.create.project.role": "Create project role",

ui/src/views/AutogenView.vue

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -556,6 +556,10 @@ export default {
556556
if (this.$route.path === '/vm' || this.$route.path.includes('/vm/')) {
557557
this.fetchData()
558558
}
559+
if (this.$route.path === '/backup') {
560+
this.$router.push('/vm')
561+
this.fetchData()
562+
}
559563
})
560564
eventBus.on('refresh-icon', () => {
561565
if (this.$showIcon()) {

ui/src/views/compute/DeployVMFromBackup.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1774,7 +1774,7 @@ export default {
17741774
deployVmData.projectid = this.owner.projectid
17751775
}
17761776
1777-
const title = this.$t('label.launch.vm')
1777+
const title = this.$t('label.create.new.instance.from.backup')
17781778
const description = values.name || ''
17791779
const password = this.$t('label.password')
17801780

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

Lines changed: 21 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -137,6 +137,7 @@ export default {
137137
loading: false,
138138
diskOfferings: [],
139139
validOfferings: {},
140+
tablerows: {},
140141
selectedCustomDiskOffering: null,
141142
values: {
142143
offering: '',
@@ -149,9 +150,9 @@ export default {
149150
},
150151
computed: {
151152
tableSource () {
152-
return this.items.map(item => {
153-
var disk = { ...item, disabled: this.validOfferings[item.id] && this.validOfferings[item.id].length === 0 }
154-
disk.name = `${item.name} (${item.size} GB)`
153+
return this.tablerows.map(row => {
154+
var disk = { ...row, disabled: this.validOfferings[row.id] && this.validOfferings[row.id].length === 0 }
155+
disk.name = `${this.items.find(item => item.id === row.id).name} (${this.items.find(item => item.id === row.id).size} GB)`
155156
return disk
156157
})
157158
}
@@ -170,6 +171,7 @@ export default {
170171
},
171172
created () {
172173
this.fetchDiskOfferings()
174+
this.tablerows = JSON.parse(JSON.stringify(this.items))
173175
},
174176
methods: {
175177
fetchDiskOfferings () {
@@ -204,8 +206,11 @@ export default {
204206
this.values = {}
205207
for (const item of this.items) {
206208
this.values[item.id] = {
207-
offering: this.validOfferings[item.id]?.[0]?.id || '',
208-
size: this.validOfferings[item.id]?.[0]?.disksize || ''
209+
offering: item.diskofferingid,
210+
size: item.size,
211+
miniops: item.miniops,
212+
maxiops: item.maxiops,
213+
iscustomizediops: this.diskOfferings.find(x => x.id === item.diskofferingid)?.iscustomizediops || false
209214
}
210215
}
211216
this.sendValues()
@@ -226,15 +231,24 @@ export default {
226231
this.values[diskId].offering = value
227232
if (this.diskOfferings.find(x => x.id === value)?.iscustomized) {
228233
this.values[diskId].size = this.items[diskId].size
234+
this.tablerows[diskId].size = this.items[diskId].size
229235
} else {
230236
this.values[diskId].size = this.diskOfferings.find(x => x.id === value)?.disksize
237+
this.tablerows[diskId].size = this.diskOfferings.find(x => x.id === value)?.disksize
231238
}
232239
233240
this.values[diskId].iscustomizediops = this.diskOfferings.find(x => x.id === value)?.iscustomizediops || false
234241
235242
if (this.values[diskId].iscustomizediops) {
236-
this.values[diskId].miniops = this.diskOfferings.find(x => x.id === value)?.miniops
237-
this.values[diskId].maxiops = this.diskOfferings.find(x => x.id === value)?.maxiops
243+
this.values[diskId].miniops = this.items[diskId].miniops
244+
this.values[diskId].maxiops = this.items[diskId].maxiops
245+
this.tablerows[diskId].miniops = this.items[diskId].miniops
246+
this.tablerows[diskId].maxiops = this.items[diskId].maxiops
247+
} else {
248+
this.values[diskId].miniops = ''
249+
this.values[diskId].maxiops = ''
250+
this.tablerows[diskId].miniops = ''
251+
this.tablerows[diskId].maxiops = ''
238252
}
239253
240254
this.custom[diskId] = this.diskOfferings.find(x => x.id === value)?.iscustomized

ui/src/views/storage/CreateVMFromBackup.vue

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -75,11 +75,10 @@ export default {
7575
this.dataPreFill.backupid = this.resource.id
7676
this.dataPreFill.computeofferingid = this.resource.vmdetails.serviceofferingid
7777
this.dataPreFill.templateid = this.resource.vmdetails.templateid
78-
this.dataPreFill.networkids = (this.resource.vmdetails.networkids || '').split(',').map(item => item.trim())
79-
this.diskofferingids = (this.resource.vmdetails.diskofferingids || '').split(',').map(item => item.trim())
80-
this.miniops = (this.resource.vmdetails.miniops || '').split(',').map(item => item.trim())
81-
this.maxiops = (this.resource.vmdetails.maxiops || '').split(',').map(item => item.trim())
82-
console.log(this.diskofferingids)
78+
this.dataPreFill.networkids = (this.resource.vmdetails.networkids || '').split(',')
79+
this.diskofferingids = (this.resource.vmdetails.diskofferingids || '').split(',')
80+
this.miniops = (this.resource.vmdetails.miniops || '').split(',').map(item => item === 'null' ? '' : item)
81+
this.maxiops = (this.resource.vmdetails.maxiops || '').split(',').map(item => item === 'null' ? '' : item)
8382
const volumes = JSON.parse(this.resource.volumes).slice(1)
8483
const datadisksdetails = volumes.map((volume, index) => ({
8584
id: index,
@@ -108,7 +107,7 @@ export default {
108107
args.zoneid = this.resource.zoneid
109108
args.backupid = this.resource.id
110109
111-
const title = this.$t('label.launch.vm')
110+
const title = this.$t('label.create.new.instance.from.backup')
112111
const description = ''
113112
const password = this.$t('label.password')
114113

0 commit comments

Comments
 (0)