From 3799b95be53cf1cb8540fd40fa634cc4f53b0d00 Mon Sep 17 00:00:00 2001 From: Wei Liu Date: Tue, 21 Apr 2020 18:12:05 +0800 Subject: [PATCH] acrn-config: add max VM count check when generating scenario XML file Add max VM count check when generating scenario XML file. Tracked-On: #4641 Signed-off-by: Wei Liu Acked-by: Victor Sun Acked-by: Terry Zou --- misc/acrn-config/board_config/board_cfg_gen.py | 7 ++++++- misc/acrn-config/board_config/misc_cfg_h.py | 2 +- misc/acrn-config/launch_config/launch_cfg_gen.py | 2 +- misc/acrn-config/library/common.py | 3 ++- misc/acrn-config/scenario_config/scenario_cfg_gen.py | 8 ++++++-- 5 files changed, 16 insertions(+), 6 deletions(-) diff --git a/misc/acrn-config/board_config/board_cfg_gen.py b/misc/acrn-config/board_config/board_cfg_gen.py index 6ce09fc37..a59110840 100755 --- a/misc/acrn-config/board_config/board_cfg_gen.py +++ b/misc/acrn-config/board_config/board_cfg_gen.py @@ -42,6 +42,11 @@ def main(args): common.get_vm_num(params['--scenario']) common.get_vm_types() + if common.VM_COUNT > common.MAX_VM_NUM: + err_dic['vm count'] = "The vm count in config xml should be less or equal {}!".format(common.MAX_VM_NUM) + return err_dic + + # check if this is the scenario config which matched board info # get board name (err_dic, board) = common.get_board_name() if err_dic: @@ -99,7 +104,7 @@ def main(args): return err_dic -def ui_entry_api(board_info, scenario_info, out): +def ui_entry_api(board_info, scenario_info, out=''): arg_list = ['board_cfg_gen.py', '--board', board_info, '--scenario', scenario_info, '--out', out] diff --git a/misc/acrn-config/board_config/misc_cfg_h.py b/misc/acrn-config/board_config/misc_cfg_h.py index 68f24d9e0..d2ac8a4a2 100644 --- a/misc/acrn-config/board_config/misc_cfg_h.py +++ b/misc/acrn-config/board_config/misc_cfg_h.py @@ -35,7 +35,7 @@ def sos_bootarg_diff(sos_cmdlines, config): i += 1 if i == 1: if sos_len == 1: - print('#define SOS_BOOTARGS_DIFF\t{}'.format(sos_cmdline), file=config) + print('#define SOS_BOOTARGS_DIFF\t"{}"'.format(sos_cmdline.strip('"')), file=config) else: print('#define SOS_BOOTARGS_DIFF\t"{} " \\'.format(sos_cmdline), file=config) else: diff --git a/misc/acrn-config/launch_config/launch_cfg_gen.py b/misc/acrn-config/launch_config/launch_cfg_gen.py index a51e55bcf..5af9a4020 100644 --- a/misc/acrn-config/launch_config/launch_cfg_gen.py +++ b/misc/acrn-config/launch_config/launch_cfg_gen.py @@ -86,7 +86,7 @@ def validate_launch_setting(board_info, scenario_info, launch_info): return (launch_cfg_lib.ERR_LIST, pt_sel, virtio, dm) -def ui_entry_api(board_info, scenario_info, launch_info, out): +def ui_entry_api(board_info, scenario_info, launch_info, out=''): err_dic = {} arg_list = ['launch_cfg_gen.py', '--board', board_info, '--scenario', scenario_info, '--launch', launch_info, '--uosid', '0', '--out', out] diff --git a/misc/acrn-config/library/common.py b/misc/acrn-config/library/common.py index 6c6ab8b09..57cefb204 100644 --- a/misc/acrn-config/library/common.py +++ b/misc/acrn-config/library/common.py @@ -32,6 +32,7 @@ BOARD_INFO_FILE = "" SCENARIO_INFO_FILE = "" LAUNCH_INFO_FILE = "" VM_TYPES = {} +MAX_VM_NUM = 8 class MultiItem(): @@ -352,7 +353,7 @@ def get_leaf_tag_map(config_file, branch_tag, tag_str=''): get_sub_value(tmp, tag_str, vm_id) - return tmp.tag + return dict(sorted(tmp.tag.items())) def get_hv_item_tag(config_file, branch_tag, tag_str=''): diff --git a/misc/acrn-config/scenario_config/scenario_cfg_gen.py b/misc/acrn-config/scenario_config/scenario_cfg_gen.py index ab75b53b1..31f198983 100755 --- a/misc/acrn-config/scenario_config/scenario_cfg_gen.py +++ b/misc/acrn-config/scenario_config/scenario_cfg_gen.py @@ -47,7 +47,7 @@ def get_scenario_item_values(board_info, scenario_info): scenario_item_values["vm,vcpu_affinity"] = hw_info.get_processor_val() scenario_item_values["vm,guest_flags"] = guest_flags scenario_item_values["vm,clos"] = hw_info.get_clos_val() - scenario_item_values["vm,pci_devs,pci_dev"] = scenario_cfg_lib.avl_pci_devs() + scenario_item_values["vm,pci_devs"] = scenario_cfg_lib.avl_pci_devs() scenario_item_values["vm,os_config,kern_type"] = scenario_cfg_lib.KERN_TYPE_LIST scenario_item_values.update(scenario_cfg_lib.avl_vuart_ui_select(scenario_info)) @@ -136,6 +136,10 @@ def main(args): if err_dic: return err_dic + if common.VM_COUNT > common.MAX_VM_NUM: + err_dic['vm count'] = "The vm count in config xml should be less or equal {}!".format(common.MAX_VM_NUM) + return err_dic + # check if this is the scenario config which matched board info (err_dic, status) = common.is_config_file_match() if not status: @@ -203,7 +207,7 @@ def main(args): return err_dic -def ui_entry_api(board_info, scenario_info, out): +def ui_entry_api(board_info, scenario_info, out=''): arg_list = ['board_cfg_gen.py', '--board', board_info, '--scenario', scenario_info, '--out', out]