Skip to content

Commit 3d9d2ba

Browse files
committed
pre-populate editvm.vue with extraconfig
1 parent 4d2ef00 commit 3d9d2ba

File tree

3 files changed

+20
-7
lines changed

3 files changed

+20
-7
lines changed

server/src/main/java/com/cloud/vm/UserVmManagerImpl.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6277,7 +6277,7 @@ public UserVm createVirtualMachine(DeployVMCmd cmd) throws InsufficientCapacityE
62776277
protected void persistExtraConfigVmware(String decodedUrl, UserVm vm) {
62786278
boolean isValidConfig = isValidKeyValuePair(decodedUrl);
62796279
if (isValidConfig) {
6280-
String[] extraConfigs = decodedUrl.split("\\r?\\n");
6280+
String[] extraConfigs = decodedUrl.split("\\r?\\n+");
62816281
for (String cfg : extraConfigs) {
62826282
// Validate cfg against unsupported operations set by admin here
62836283
String[] allowedKeyList = VmwareAdditionalConfigAllowList.value().split(",");
@@ -6305,7 +6305,7 @@ protected void persistExtraConfigVmware(String decodedUrl, UserVm vm) {
63056305
protected void persistExtraConfigXenServer(String decodedUrl, UserVm vm) {
63066306
boolean isValidConfig = isValidKeyValuePair(decodedUrl);
63076307
if (isValidConfig) {
6308-
String[] extraConfigs = decodedUrl.split("\\r?\\n");
6308+
String[] extraConfigs = decodedUrl.split("\\r?\\n+");
63096309
int i = 1;
63106310
String extraConfigKey = ApiConstants.EXTRA_CONFIG + "-";
63116311
for (String cfg : extraConfigs) {

ui/src/views/compute/DeployVM.vue

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -724,7 +724,7 @@
724724
</div>
725725
</a-card>
726726
</a-form-item>
727-
<a-form-item v-if="extraConfigEnabledValue" name="extraconfig" ref="extraconfig">
727+
<a-form-item v-if="extraConfigEnabled" name="extraconfig" ref="extraconfig">
728728
<template #label>
729729
<tooltip-label :title="$t('label.extraconfig')" :tooltip="$t('label.extraconfig.tooltip')"/>
730730
</template>
@@ -1424,7 +1424,7 @@ export default {
14241424
dynamicScalingVmConfigValue () {
14251425
return this.$store.getters.features.dynamicscalingenabled
14261426
},
1427-
extraConfigEnabledValue () {
1427+
extraConfigEnabled () {
14281428
return this.$store.getters.features.additionalconfigenabled
14291429
},
14301430
isCustomizedDiskIOPS () {

ui/src/views/compute/EditVM.vue

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -170,8 +170,20 @@ export default {
170170
groups: {
171171
loading: false,
172172
opts: []
173-
},
174-
extraConfigEnabled: this.$store.getters.features.additionalconfigenabled
173+
}
174+
}
175+
},
176+
computed: {
177+
extraConfigEnabled () {
178+
return this.$store.getters.features.additionalconfigenabled
179+
},
180+
combinedExtraConfig () {
181+
if (!this.extraConfigEnabled || !this.resource.details) return ''
182+
const configs = Object.keys(this.resource.details)
183+
.filter(key => key.startsWith('extraconfig-'))
184+
.map(key => this.resource.details[key] || '')
185+
.filter(val => val.trim())
186+
return configs.join('\n\n')
175187
}
176188
},
177189
beforeCreate () {
@@ -192,7 +204,8 @@ export default {
192204
deleteprotection: this.resource.deleteprotection,
193205
group: this.resource.group,
194206
userdata: '',
195-
haenable: this.resource.haenable
207+
haenable: this.resource.haenable,
208+
extraconfig: this.combinedExtraConfig
196209
})
197210
this.rules = reactive({})
198211
},

0 commit comments

Comments
 (0)