Set sensible defaults for cpu match and feature policy

To enable the CPU XML from the capabilities to be pasted directly
into the guest XML with no editing, pick a sensible default for
match and feature policy. The CPU match will be exact and the
feature policy will be require. This should ensure safety for
migration and give DWIM semantics for users

* src/conf/cpu_conf.c: Default to exact match and require policy
* docs/formatdomain.html.in: Document new defaults
This commit is contained in:
Daniel P. Berrange 2010-09-22 12:47:48 +01:00
parent 1938bc69a7
commit 95ff6b18ec
2 changed files with 14 additions and 7 deletions

View File

@ -276,6 +276,9 @@
<dd>The guest will not be created unless the host CPU does exactly
match the specification.</dd>
</dl>
<span class="since">Since 0.8.5</span> the <code>match</code>
attribute can be omitted and will default to <code>exact</code>.
</dd>
<dt><code>model</code></dt>
@ -322,6 +325,9 @@
<dd>Guest creation will fail if the feature is supported by host
CPU.</dd>
</dl>
<span class="since">Since 0.8.5</span> the <code>policy</code>
attribute can be omitted and will default to <code>require</code>.
</dd>
</dl>

View File

@ -147,12 +147,10 @@ virCPUDefParseXML(const xmlNodePtr node,
char *match = virXMLPropString(node, "match");
if (!match) {
if (virXPathBoolean("boolean(./model)", ctxt)) {
virCPUReportError(VIR_ERR_INTERNAL_ERROR,
"%s", _("Missing match attribute for CPU specification"));
goto error;
}
def->match = -1;
if (virXPathBoolean("boolean(./model)", ctxt))
def->match = VIR_CPU_MATCH_EXACT;
else
def->match = -1;
} else {
def->match = virCPUMatchTypeFromString(match);
VIR_FREE(match);
@ -251,7 +249,10 @@ virCPUDefParseXML(const xmlNodePtr node,
char *strpolicy;
strpolicy = virXMLPropString(nodes[i], "policy");
policy = virCPUFeaturePolicyTypeFromString(strpolicy);
if (strpolicy == NULL)
policy = VIR_CPU_FEATURE_REQUIRE;
else
policy = virCPUFeaturePolicyTypeFromString(strpolicy);
VIR_FREE(strpolicy);
if (policy < 0) {