mirror of
https://github.com/projectacrn/acrn-hypervisor.git
synced 2025-05-01 05:03:55 +00:00
For STANDARD_VM 'own_pcpu' default value is 'n'. But RTVM always own pCPUs. So check 'own_pcpu' of RTVM and make sure it's set to 'y'. Tracked-On: #8253 Signed-off-by: Yuanyua Zhao <yuanyuan.zhao@linux.intel.com> Reviewed-by: Junjie Mao <junjie.mao@intel.com>
68 lines
1.9 KiB
Python
68 lines
1.9 KiB
Python
#!/usr/bin/env python3
|
|
#
|
|
# Copyright (C) 2022 Intel Corporation.
|
|
#
|
|
# SPDX-License-Identifier: BSD-3-Clause
|
|
#
|
|
|
|
__package__ = 'configurator.pyodide'
|
|
|
|
from pathlib import Path
|
|
from tempfile import TemporaryDirectory
|
|
from xml.etree.ElementTree import tostring
|
|
|
|
from scenario_config.pipeline import PipelineObject, PipelineEngine
|
|
from scenario_config.xml_loader import XMLLoadStage
|
|
from scenario_config.default_populator import DefaultValuePopulatingStage
|
|
|
|
from .pyodide import write_temp_file, nuc11_scenario, scenario_xml_schema_path, convert_result
|
|
from .loadScenario import load_scenario_xml
|
|
|
|
|
|
def main(scenario):
|
|
pipeline = PipelineEngine(["schema_path", "scenario_path"])
|
|
pipeline.add_stages([
|
|
XMLLoadStage("schema"),
|
|
XMLLoadStage("scenario"),
|
|
DefaultValuePopulatingStage(),
|
|
])
|
|
with TemporaryDirectory() as tmpdir:
|
|
write_temp_file(tmpdir, {
|
|
'scenario.xml': scenario
|
|
})
|
|
scenario_file_path = Path(tmpdir) / 'scenario.xml'
|
|
|
|
obj = PipelineObject(
|
|
scenario_path=scenario_file_path,
|
|
schema_path=scenario_xml_schema_path,
|
|
)
|
|
pipeline.run(obj)
|
|
|
|
# Clean up the VM_NAME and/or vm_name which does not exist
|
|
etree = obj.get("scenario_etree").getroot()
|
|
vmNames = [name.text for name in etree.findall(".//vm/name")]
|
|
for name in etree.findall(".//IVSHMEM_VM/VM_NAME") + \
|
|
etree.findall(".//vuart_connection/endpoint/vm_name"):
|
|
if name.text not in vmNames:
|
|
name.text = ""
|
|
|
|
own_pcpus = etree.findall(".//vm[vm_type = 'RTVM']/own_pcpu")
|
|
for o in own_pcpus:
|
|
o.text = 'y'
|
|
|
|
result = tostring(obj.get("scenario_etree").getroot())
|
|
result = result.decode()
|
|
result = convert_result({
|
|
'xml': result,
|
|
'json': load_scenario_xml(result)
|
|
})
|
|
return result
|
|
|
|
|
|
def test():
|
|
main(nuc11_scenario)
|
|
|
|
|
|
if __name__ == '__main__':
|
|
test()
|