migrate Vmware to KVM ui issues (#10413)

This commit is contained in:
dahn 2025-02-19 12:53:10 +01:00 committed by GitHub
parent b9ebc7b721
commit 66f8a351dd
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 29 additions and 11 deletions

View File

@ -1591,6 +1591,8 @@
"label.prepare.for.shutdown": "Prepare for Shutdown", "label.prepare.for.shutdown": "Prepare for Shutdown",
"label.prepareformaintenance": "Prepare for Maintenance", "label.prepareformaintenance": "Prepare for Maintenance",
"label.presetup": "PreSetup", "label.presetup": "PreSetup",
"label.press.enter": "Press enter when done.",
"label.press.enter.tooltip": "On leaving a any of these fields above, when they all contain values, or on pressing enter, ESXi hosts will be retrieved. If this is successful, a dropdown will appear with the list of ESXi hosts.",
"label.prev": "Prev", "label.prev": "Prev",
"label.previous": "Previous", "label.previous": "Previous",
"label.primera.username.tooltip": "The username with edit privileges", "label.primera.username.tooltip": "The username with edit privileges",
@ -3006,7 +3008,7 @@
"message.license.agreements.not.accepted": "License agreements not accepted.", "message.license.agreements.not.accepted": "License agreements not accepted.",
"message.linstor.resourcegroup.description": "Linstor resource group to use for primary storage.", "message.linstor.resourcegroup.description": "Linstor resource group to use for primary storage.",
"message.list.zone.vmware.datacenter.empty": "No VMware Datacenter exists in the selected Zone", "message.list.zone.vmware.datacenter.empty": "No VMware Datacenter exists in the selected Zone",
"message.list.zone.vmware.hosts.empty": "No VMware hosts were found in the selected Datacenter", "message.list.zone.vmware.hosts.empty": "No EXSi hosts were found in the selected Datacenter.\nAre the entered credentials correct?\n",
"message.listnsp.not.return.providerid": "error: listNetworkServiceProviders API doesn't return VirtualRouter provider ID.", "message.listnsp.not.return.providerid": "error: listNetworkServiceProviders API doesn't return VirtualRouter provider ID.",
"message.load.host.failed": "Failed to load hosts.", "message.load.host.failed": "Failed to load hosts.",
"message.loadbalancer.stickypolicy.configuration": "Customize the load balancer stickiness policy:", "message.loadbalancer.stickypolicy.configuration": "Customize the load balancer stickiness policy:",

View File

@ -89,7 +89,8 @@
<a-input <a-input
v-model:value="vcenter" v-model:value="vcenter"
:placeholder="apiParams.vcenter.description" :placeholder="apiParams.vcenter.description"
@change="onSelectExternalVmwareDatacenter" @blur="onSelectExternalVmwareDatacenter"
@pressEnter="onSelectExternalVmwareDatacenter"
/> />
</a-form-item> </a-form-item>
<a-form-item ref="datacenter" name="datacenter"> <a-form-item ref="datacenter" name="datacenter">
@ -99,7 +100,8 @@
<a-input <a-input
v-model:value="datacenter" v-model:value="datacenter"
:placeholder="apiParams.datacentername.description" :placeholder="apiParams.datacentername.description"
@change="onSelectExternalVmwareDatacenter" @blur="onSelectExternalVmwareDatacenter"
@pressEnter="onSelectExternalVmwareDatacenter"
/> />
</a-form-item> </a-form-item>
<a-form-item ref="username" name="username"> <a-form-item ref="username" name="username">
@ -109,7 +111,8 @@
<a-input <a-input
v-model:value="username" v-model:value="username"
:placeholder="apiParams.username.description" :placeholder="apiParams.username.description"
@change="onSelectExternalVmwareDatacenter" @blur="onSelectExternalVmwareDatacenter"
@pressEnter="onSelectExternalVmwareDatacenter"
/> />
</a-form-item> </a-form-item>
<a-form-item ref="password" name="password"> <a-form-item ref="password" name="password">
@ -119,13 +122,16 @@
<a-input-password <a-input-password
v-model:value="password" v-model:value="password"
:placeholder="apiParams.password.description" :placeholder="apiParams.password.description"
@change="onSelectExternalVmwareDatacenter" @blur="onSelectExternalVmwareDatacenter"
@pressEnter="onSelectExternalVmwareDatacenter"
/> />
</a-form-item> </a-form-item>
&nbsp;
<tooltip-label :title="$t('label.press.enter')" :tooltip="$t('label.press.enter.tooltip')"/>
</div> </div>
<div <div
v-if="selectedExistingVcenterId || (vcenterSelectedOption === 'new')"> v-if="selectedExistingVcenterId || (vcenterSelectedOption === 'new')">
<a-form-item :label="$t('label.vcenter.host')" ref="host" name="host" v-if="hosts.length > 0"> <a-form-item :label="$t('label.esx.host')" ref="host" name="host" v-if="hosts.length > 0">
<a-select <a-select
v-model:value="form.host" v-model:value="form.host"
:loading="loading" :loading="loading"
@ -133,8 +139,9 @@
:filterOption="(input, option) => { :filterOption="(input, option) => {
return option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0 return option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0
}" }"
:placeholder="$t('label.vcenter.host')" :placeholder="$t('label.esx.host')"
@change="onSelectExistingVmwareHost"> @change="onSelectExistingVmwareHost">
<a-select-option key="" label="">{{ }}</a-select-option>
<a-select-option v-for="opt in hosts" :key="opt.name"> <a-select-option v-for="opt in hosts" :key="opt.name">
{{ 'ESXi: ' + opt.name }} {{ 'ESXi: ' + opt.name }}
</a-select-option> </a-select-option>
@ -283,7 +290,7 @@ export default {
this.loading = false this.loading = false
}) })
}, },
listZoneVmwareDcHosts () { loadZoneVmwareDcHosts (doNotify) {
this.loading = true this.loading = true
const params = {} const params = {}
if (this.vcenterSelectedOption === 'new') { if (this.vcenterSelectedOption === 'new') {
@ -299,18 +306,23 @@ export default {
this.hosts = response.listvmwaredchostsresponse.host this.hosts = response.listvmwaredchostsresponse.host
} }
}).catch(error => { }).catch(error => {
if (doNotify) {
this.$notifyError(error) this.$notifyError(error)
}
this.hosts = []
return false
}).finally(() => { }).finally(() => {
this.loading = false this.loading = false
return true
}) })
}, },
onSelectExistingVmwareDatacenter (value) { onSelectExistingVmwareDatacenter (value) {
this.selectedExistingVcenterId = value this.selectedExistingVcenterId = value
this.listZoneVmwareDcHosts() this.loadZoneVmwareDcHosts(true)
}, },
onSelectExternalVmwareDatacenter (value) { onSelectExternalVmwareDatacenter (value) {
if (this.vcenterSelectedOption === 'new' && !(this.vcenter === '' || this.datacentername === '' || this.username === '' || this.password === '')) { if (this.vcenterSelectedOption === 'new' && !(this.vcenter === '' || this.datacentername === '' || this.username === '' || this.password === '')) {
this.listZoneVmwareDcHosts() this.loadZoneVmwareDcHosts(false)
} }
}, },
onSelectExistingVmwareHost (value) { onSelectExistingVmwareHost (value) {

View File

@ -33,6 +33,7 @@ import com.vmware.vim25.ObjectContent;
import com.vmware.vim25.RetrieveResult; import com.vmware.vim25.RetrieveResult;
import java.lang.reflect.InvocationTargetException; import java.lang.reflect.InvocationTargetException;
import java.util.ArrayList;
import java.util.List; import java.util.List;
public class BaseMO { public class BaseMO {
@ -65,6 +66,9 @@ public class BaseMO {
if (s_logger.isDebugEnabled()) { if (s_logger.isDebugEnabled()) {
s_logger.debug("vmware result : " + ReflectionToStringBuilderUtils.reflectCollection(result)); s_logger.debug("vmware result : " + ReflectionToStringBuilderUtils.reflectCollection(result));
} }
if (result == null) {
return new Pair<>(null, new ArrayList<>());
}
String tokenForRetrievingNewResults = result.getToken(); String tokenForRetrievingNewResults = result.getToken();
List<ObjectContent> listOfObjects = result.getObjects(); List<ObjectContent> listOfObjects = result.getObjects();
return new Pair<>(tokenForRetrievingNewResults, listOfObjects); return new Pair<>(tokenForRetrievingNewResults, listOfObjects);