conf: Avoid formatting auto-generated DAC labels

To avoid backward compatibility issues, this patch suppresses
auto-generated DAC labels from XML. This change affects commands such as
dumpxml and save.

Signed-off-by: Marcelo Cerri <mhcerri@linux.vnet.ibm.com>
This commit is contained in:
Marcelo Cerri 2012-08-31 13:40:41 +02:00 committed by Daniel Veillard
parent 86e205a24f
commit 990e46c454
2 changed files with 14 additions and 2 deletions

View File

@ -11244,10 +11244,16 @@ virSecurityLabelDefFormat(virBufferPtr buf, virSecurityLabelDefPtr def)
if (def->type == VIR_DOMAIN_SECLABEL_DEFAULT)
return;
/* To avoid backward compatibility issues, suppress DAC labels that are
* automatically generated.
*/
if (STREQ_NULLABLE(def->model, "dac") && def->implicit)
return;
virBufferAsprintf(buf, "<seclabel type='%s'",
sectype);
if (def->model)
if (def->model && STRNEQ(def->model, "none"))
virBufferEscapeString(buf, " model='%s'", def->model);
if (def->type == VIR_DOMAIN_SECLABEL_NONE) {
@ -14995,6 +15001,7 @@ virSecurityLabelDefPtr
virDomainDefGetSecurityLabelDef(virDomainDefPtr def, const char *model)
{
int i;
virSecurityLabelDefPtr seclabel = NULL;
if (def == NULL || model == NULL)
return NULL;
@ -15006,7 +15013,11 @@ virDomainDefGetSecurityLabelDef(virDomainDefPtr def, const char *model)
return def->seclabels[i];
}
return virDomainDefAddSecurityLabelDef(def, model);
seclabel = virDomainDefAddSecurityLabelDef(def, model);
if (seclabel)
seclabel->implicit = true;
return seclabel;
}
virSecurityDeviceLabelDefPtr

View File

@ -295,6 +295,7 @@ struct _virSecurityLabelDef {
char *baselabel; /* base name of label string */
int type; /* virDomainSeclabelType */
bool norelabel;
bool implicit; /* true if seclabel is auto-added */
};