config_tools: fix UI issue that don't export xml file successfully

call default_populator.py to expand the default value in the
scenario XML file to fix the issue that don't export xml successfully
in UI when user to click the 'Export XML' button to export scenario xml
file because that the unexpanded xml does not conform to schema check.

Tracked-On: #6292
Signed-off-by: Kunhui-Li <kunhuix.li@intel.com>
This commit is contained in:
Kunhui-Li 2021-10-19 14:54:22 +08:00 committed by wenlingz
parent aceae3a30f
commit 0caf214cf1
1 changed files with 15 additions and 4 deletions

View File

@ -25,6 +25,7 @@ from scenario_config.scenario_cfg_gen import validate_scenario_setting
from launch_config.launch_cfg_gen import get_launch_item_values
from launch_config.launch_cfg_gen import validate_launch_setting
from library.common import MAX_VM_NUM
import scenario_config.default_populator as default_populator
CONFIG_APP = Blueprint('CONFIG_APP', __name__, template_folder='templates')
@ -618,12 +619,17 @@ def create_setting():
src_file_name = os.path.join(current_app.config.get('DEFAULT_CONFIG_PATH'), 'generic_board', template_file_name + '.xml')
else: # load
src_file_name = os.path.join(current_app.config.get('DEFAULT_CONFIG_PATH'), board_type, default_name + '.xml')
if os.path.isfile(src_file_name):
xsd_path = os.path.join(os.path.dirname(os.path.abspath(__file__)), '..', 'schema', 'config.xsd')
out_xml = os.path.join(os.path.dirname(os.path.abspath(__file__)), create_name + '.xml')
default_populator.main(xsd_path, src_file_name, out_xml)
if os.path.isfile(scenario_file):
os.remove(scenario_file)
copyfile(src_file_name,
copyfile(out_xml,
os.path.join(current_app.config.get('CONFIG_PATH'), board_type,
create_name + '.xml'))
os.remove(out_xml)
if mode == 'create':
# update RDT->CLOS_MASK according to board xml
@ -1078,10 +1084,15 @@ def get_generic_scenario_config(scenario_config, add_vm_type=None):
'LAUNCH_POST_RT_VM': ('shared_launch_6uos', 'uos:id=2')
}
config_path = os.path.join(current_app.config.get('DEFAULT_CONFIG_PATH'), 'generic_board')
generic_scenario_config = XmlConfig(config_path)
if os.path.isfile(os.path.join(config_path, vm_dict[add_vm_type][0] + '.xml')):
generic_scenario_config.set_curr(vm_dict[add_vm_type][0])
xml_path = os.path.join(config_path, vm_dict[add_vm_type][0] + '.xml')
if os.path.isfile(xml_path):
xsd_path = os.path.join(os.path.dirname(os.path.abspath(__file__)), '..', 'schema', 'config.xsd')
output_xml = os.path.join(config_path, vm_dict[add_vm_type][0] + '_1' + '.xml')
default_populator.main(xsd_path, xml_path, output_xml)
generic_scenario_config = XmlConfig(config_path)
generic_scenario_config.set_curr(vm_dict[add_vm_type][0] + '_1')
generic_scenario_config = set_default_config(generic_scenario_config)
os.remove(output_xml)
return generic_scenario_config.get_curr_elem(vm_dict[add_vm_type][1])
else:
return None