[config_tool] Duplicate VM name

Added check and error prompt for duplicate names of VM
before save scenario.
Tracked-On: projectacrn#7486
Signed-off-by: Ziheng Li <ziheng.li@intel.com>
This commit is contained in:
Ziheng Li 2022-05-17 09:12:50 +08:00 committed by acrnsi-robot
parent 398184f3a6
commit 859f6b803c

View File

@ -308,7 +308,26 @@ export default {
vmConfig['@id'] = vmIndex vmConfig['@id'] = vmIndex
}) })
}, },
confirmVmName() {
let vmNameArr = []
let errorFlag = false
for (let i = 0; i < this.scenario.vm.length; i++) {
vmNameArr.push(this.scenario.vm[i].name)
}
vmNameArr.sort()
console.log(vmNameArr)
for (let i = 0; i < vmNameArr.length - 1; i++) {
if (vmNameArr[i] === vmNameArr[i + 1]) {
alert("There are duplicate VM name with" + vmNameArr[i]
+ ",\n please your VM name");
errorFlag = true
}
}
return errorFlag
},
saveScenario() { saveScenario() {
let errorFlag = false
errorFlag = this.confirmVmName()
this.assignVMID() this.assignVMID()
let msg = ["Scenario xml saved\n", let msg = ["Scenario xml saved\n",
".xml settings validated\n", ".xml settings validated\n",
@ -332,31 +351,33 @@ export default {
this.updateCurrentFormData() this.updateCurrentFormData()
// get scenario XML with defaults // get scenario XML with defaults
scenarioXMLData = scenarioWithDefault.xml scenarioXMLData = scenarioWithDefault.xml
// begin write down and verify if (!errorFlag) {
configurator.writeFile(this.WorkingFolder + 'scenario.xml', scenarioXMLData) // begin write down and verify
.then(() => { configurator.writeFile(this.WorkingFolder + 'scenario.xml', scenarioXMLData)
step = 1 .then(() => {
configurator.pythonObject.validateScenario(this.board.content, scenarioXMLData) step = 1
}) configurator.pythonObject.validateScenario(this.board.content, scenarioXMLData)
.then(() => { })
step = 2 .then(() => {
let launchScripts = configurator.pythonObject.generateLaunchScript(this.board.content, scenarioXMLData) step = 2
for (let filename in launchScripts) { let launchScripts = configurator.pythonObject.generateLaunchScript(this.board.content, scenarioXMLData)
configurator.writeFile(this.WorkingFolder + filename, launchScripts[filename]) for (let filename in launchScripts) {
} configurator.writeFile(this.WorkingFolder + filename, launchScripts[filename])
}) }
.then(() => { })
alert(`${msg.join('')} \n All files successfully saved to your working folder ${this.WorkingFolder}`) .then(() => {
}) alert(`${msg.join('')} \n All files successfully saved to your working folder ${this.WorkingFolder}`)
.catch((err) => { })
console.log(err) .catch((err) => {
let outmsg = '' console.log(err)
for (var i = 0; i < step; i++) let outmsg = ''
outmsg += msg[i] for (var i = 0; i < step; i++)
for (i = step; i < 3; i++) outmsg += msg[i]
outmsg += errmsg[i] for (i = step; i < 3; i++)
alert(`${outmsg} \n Please check your configuration`) outmsg += errmsg[i]
}) alert(`${outmsg} \n Please check your configuration`)
})
}
} }
} }
} }