[config_tool] vUART widget address for pre-launched VM doesn't update

when the VM of a vUART endpoint changes the configurator can clear its corresponding I/O port or BDF settings automatically

Tracked-On: #8033
Signed-off-by: Chuang-Ke <chuangx.ke@intel.com>
Reviewed-by: Junjie Mao <junjie.mao@intel.com>
This commit is contained in:
Chuang Ke 2022-08-22 16:12:25 +08:00 committed by acrnsi-robot
parent cbfe1fe61f
commit 1f7399d78e

View File

@ -9,14 +9,17 @@
<label> <label>
<n-popover trigger="hover" placement="top-start"> <n-popover trigger="hover" placement="top-start">
<template #trigger> <template #trigger>
<IconInfo/> <IconInfo/>
</template> </template>
<span v-html="this.VMConfigType.properties.name.description"></span> <span v-html="this.VMConfigType.properties.name.description"></span>
</n-popover>{{vmNameTitle}} </n-popover>
{{ vmNameTitle }}
</label> </label>
</b-col> </b-col>
<b-col md="4"> <b-col md="4">
<b-form-select :state="validation(VUARTConn.endpoint[0].vm_name)" v-model="VUARTConn.endpoint[0].vm_name" :options="vmNames"></b-form-select> <b-form-select :state="validation(VUARTConn.endpoint[0].vm_name)" v-model="VUARTConn.endpoint[0].vm_name"
:options="vmNames"
@input="selectChange(VUARTConn.endpoint[0].vm_name,VUARTConn.endpoint[0],0)"></b-form-select>
<b-form-invalid-feedback> <b-form-invalid-feedback>
must have value must have value
</b-form-invalid-feedback> </b-form-invalid-feedback>
@ -34,14 +37,17 @@
<label> <label>
<n-popover trigger="hover" placement="top-start"> <n-popover trigger="hover" placement="top-start">
<template #trigger> <template #trigger>
<IconInfo/> <IconInfo/>
</template> </template>
<span v-html="this.VMConfigType.properties.name.description"></span> <span v-html="this.VMConfigType.properties.name.description"></span>
</n-popover>{{vmNameTitle}}: </n-popover>
{{ vmNameTitle }}:
</label> </label>
</b-col> </b-col>
<b-col md="4"> <b-col md="4">
<b-form-select :state="validation(VUARTConn.endpoint[1].vm_name)" v-model="VUARTConn.endpoint[1].vm_name" :options="vmNames"></b-form-select> <b-form-select :state="validation(VUARTConn.endpoint[1].vm_name)" v-model="VUARTConn.endpoint[1].vm_name"
:options="vmNames"
@input="selectChange(VUARTConn.endpoint[1].vm_name,VUARTConn.endpoint[1],1)"></b-form-select>
<b-form-invalid-feedback> <b-form-invalid-feedback>
must have value must have value
</b-form-invalid-feedback> </b-form-invalid-feedback>
@ -53,14 +59,16 @@
<label> <label>
<n-popover trigger="hover" placement="top-start"> <n-popover trigger="hover" placement="top-start">
<template #trigger> <template #trigger>
<IconInfo/> <IconInfo/>
</template> </template>
<span v-html="this.VuartConnectionType.properties.type.description"></span> <span v-html="this.VuartConnectionType.properties.type.description"></span>
</n-popover>{{vuartConnectionTypeTitle}}: </n-popover>
{{ vuartConnectionTypeTitle }}:
</label> </label>
</b-col> </b-col>
<b-col md="4"> <b-col md="4">
<b-form-select :state="validation(VUARTConn.type)" v-model="VUARTConn.type" :options="VuartType"></b-form-select> <b-form-select :state="validation(VUARTConn.type)" v-model="VUARTConn.type"
:options="VuartType"></b-form-select>
<b-form-invalid-feedback> <b-form-invalid-feedback>
must have value must have value
</b-form-invalid-feedback> </b-form-invalid-feedback>
@ -72,41 +80,46 @@
<p></p> <p></p>
<b-row class="justify-content-sm-start"> <b-row class="justify-content-sm-start">
<b-col sm="4"> <b-col sm="4">
{{vuartEndpointTitle}}: {{ vuartEndpointTitle }}:
</b-col> </b-col>
<b-col sm="4" v-if="VUARTConn.type === 'legacy'"> <b-col sm="4" v-if="VUARTConn.type === 'legacy'">
<n-popover trigger="hover" placement="top-start"> <n-popover trigger="hover" placement="top-start">
<template #trigger> <template #trigger>
<IconInfo/> <IconInfo/>
</template> </template>
<span v-html="this.VuartEndpointType.io_port.description"></span> <span v-html="this.VuartEndpointType.io_port.description"></span>
</n-popover> </n-popover>
{{vuartVIoPortTitle}}: {{ vuartVIoPortTitle }}:
</b-col> </b-col>
<b-col sm="4" v-else-if="VUARTConn.type === 'pci'"> <b-col sm="4" v-else-if="VUARTConn.type === 'pci'">
<n-popover trigger="hover" placement="top-start"> <n-popover trigger="hover" placement="top-start">
<template #trigger> <template #trigger>
<IconInfo/> <IconInfo/>
</template> </template>
<span v-html="this.VuartEndpointType.vbdf.description"></span> <span v-html="this.VuartEndpointType.vbdf.description"></span>
</n-popover>{{vuartVBDFTitle}} </n-popover>
{{ vuartVBDFTitle }}
</b-col> </b-col>
</b-row> </b-row>
<b-row class="justify-content-sm-start align-items-center"> <b-row class="justify-content-sm-start align-items-center">
<b-col sm="4"> Connection_{{ index + 1 }}-{{ VUARTConn.endpoint[0].vm_name }} </b-col> <b-col sm="4"> Connection_{{ index + 1 }}-{{ VUARTConn.endpoint[0].vm_name }}</b-col>
<b-col sm="4"> <b-col sm="4">
<b-form-input v-model="VUARTConn.endpoint[0].io_port" v-if="VUARTConn.type === 'legacy'" :placeholder="vIoPortPlaceholder"/> <b-form-input v-model="VUARTConn.endpoint[0].io_port" v-if="VUARTConn.type === 'legacy'"
<b-form-input :state="validateVBDF(VUARTConn.endpoint[0].vbdf)" v-model="VUARTConn.endpoint[0].vbdf" v-else-if="VUARTConn.type === 'pci'" :placeholder="vBDFPlaceholder"/> :placeholder="vIoPortPlaceholder"/>
<b-form-input :state="validateVBDF(VUARTConn.endpoint[0].vbdf)" v-model="VUARTConn.endpoint[0].vbdf"
v-else-if="VUARTConn.type === 'pci'" :placeholder="vBDFPlaceholder"/>
<b-form-invalid-feedback> <b-form-invalid-feedback>
{{ this.VBDFType["err:pattern"] }} {{ this.VBDFType["err:pattern"] }}
</b-form-invalid-feedback> </b-form-invalid-feedback>
</b-col> </b-col>
</b-row> </b-row>
<b-row class="justify-content-sm-start align-items-center"> <b-row class="justify-content-sm-start align-items-center">
<b-col sm="4"> Connection_{{ index + 1 }}-{{ VUARTConn.endpoint[1].vm_name }} </b-col> <b-col sm="4"> Connection_{{ index + 1 }}-{{ VUARTConn.endpoint[1].vm_name }}</b-col>
<b-col sm="4"> <b-col sm="4">
<b-form-input v-model="VUARTConn.endpoint[1].io_port" v-if="VUARTConn.type === 'legacy'" :placeholder="vIoPortPlaceholder"/> <b-form-input v-model="VUARTConn.endpoint[1].io_port" v-if="VUARTConn.type === 'legacy'"
<b-form-input :state="validateVBDF(VUARTConn.endpoint[1].vbdf)" v-model="VUARTConn.endpoint[1].vbdf" v-else-if="VUARTConn.type === 'pci'" :placeholder="vBDFPlaceholder"/> :placeholder="vIoPortPlaceholder"/>
<b-form-input :state="validateVBDF(VUARTConn.endpoint[1].vbdf)" v-model="VUARTConn.endpoint[1].vbdf"
v-else-if="VUARTConn.type === 'pci'" :placeholder="vBDFPlaceholder"/>
<b-form-invalid-feedback> <b-form-invalid-feedback>
{{ this.VBDFType["err:pattern"] }} {{ this.VBDFType["err:pattern"] }}
</b-form-invalid-feedback> </b-form-invalid-feedback>
@ -175,11 +188,12 @@ export default {
let enumNames = this.rootSchema.definitions['VuartType']['enumNames'] let enumNames = this.rootSchema.definitions['VuartType']['enumNames']
let VuartType = [] let VuartType = []
enumValue.forEach((item, i) => { enumValue.forEach((item, i) => {
VuartType.push({value:item, text:enumNames[i]}) VuartType.push({value: item, text: enumNames[i]})
}) })
let epTypeProp = this.rootSchema.definitions.VuartEndpointType.properties let epTypeProp = this.rootSchema.definitions.VuartEndpointType.properties
let conTypeProp = this.rootSchema.definitions.VuartConnectionType.properties let conTypeProp = this.rootSchema.definitions.VuartConnectionType.properties
return { return {
selected: {0: {oldValue: ""}, 1: {oldValue: ""}},
VuartEndpointType: this.rootSchema.definitions['VuartEndpointType']['properties'], VuartEndpointType: this.rootSchema.definitions['VuartEndpointType']['properties'],
vmNameTitle: epTypeProp.vm_name.title, vmNameTitle: epTypeProp.vm_name.title,
vuartConnectionTypeTitle: conTypeProp.type.title, vuartConnectionTypeTitle: conTypeProp.type.title,
@ -244,7 +258,14 @@ export default {
} }
] ]
}) })
} },
selectChange(value, obj, endpoint) {
if (this.selected[endpoint].oldValue != value) {
obj.vbdf = ""
obj.io_port = ""
}
this.selected[endpoint].oldValue = value
},
} }
}; };
</script> </script>