mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-12-22 05:35:25 +00:00
cpu_map : sync_qemu_models : fix versionned models
Currently, a new versionned model is only generated when an alias exist in the version. This is wrong, because not all versions have an alias, so some models are not generated, and last version is override the main model. (with newer flags not present in the original model) This patch create an "<modelname>-v<version>.xml" for each versionned model, and keep the extra "<alias>.xml"
This commit is contained in:
parent
90404c5368
commit
31f446cf37
@ -304,9 +304,10 @@ def expand_model(model):
|
|||||||
"""Expand a qemu cpu model description that has its feature split up into
|
"""Expand a qemu cpu model description that has its feature split up into
|
||||||
different fields and may have differing versions into several libvirt-
|
different fields and may have differing versions into several libvirt-
|
||||||
friendly cpu models."""
|
friendly cpu models."""
|
||||||
|
name = model.pop(".name")
|
||||||
|
|
||||||
result = {
|
result = {
|
||||||
"name": model.pop(".name"),
|
"name": name,
|
||||||
"vendor": translate_vendor(model.pop(".vendor")),
|
"vendor": translate_vendor(model.pop(".vendor")),
|
||||||
"features": set(),
|
"features": set(),
|
||||||
"extra": dict()}
|
"extra": dict()}
|
||||||
@ -329,7 +330,8 @@ def expand_model(model):
|
|||||||
|
|
||||||
for version in versions:
|
for version in versions:
|
||||||
result = copy.deepcopy(result)
|
result = copy.deepcopy(result)
|
||||||
result["name"] = version.pop(".alias", result["name"])
|
version_num = version.pop(".version", '1')
|
||||||
|
result["name"] = name + "-v" + version_num
|
||||||
|
|
||||||
props = version.pop(".props", dict())
|
props = version.pop(".props", dict())
|
||||||
for k, v in props:
|
for k, v in props:
|
||||||
@ -350,6 +352,11 @@ def expand_model(model):
|
|||||||
|
|
||||||
yield result
|
yield result
|
||||||
|
|
||||||
|
alias = version.pop(".alias", None)
|
||||||
|
if alias:
|
||||||
|
result = copy.deepcopy(result)
|
||||||
|
result["name"] = alias
|
||||||
|
yield result
|
||||||
|
|
||||||
def output_model(f, model):
|
def output_model(f, model):
|
||||||
if model["extra"]:
|
if model["extra"]:
|
||||||
|
Loading…
Reference in New Issue
Block a user