mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-12-22 05:35:25 +00:00
secret_conf: Modernize XML parsing & formatting
Our virSecret XML is still parsed and formatted using old way (e.g. virXPathString() + virXXXTypeFromString() combo, or formatting elements using plain virBufferAsprintf() instead of virXMLFormatElement()). Modernize the code as it'll make it easier for future expansion. Signed-off-by: Michal Privoznik <mprivozn@redhat.com> Reviewed-by: Ján Tomko <jtomko@redhat.com>
This commit is contained in:
parent
bad17c4d88
commit
d96a414c03
@ -195,39 +195,34 @@ static int
|
|||||||
virSecretDefFormatUsage(virBuffer *buf,
|
virSecretDefFormatUsage(virBuffer *buf,
|
||||||
const virSecretDef *def)
|
const virSecretDef *def)
|
||||||
{
|
{
|
||||||
const char *type;
|
g_auto(virBuffer) attrBuf = VIR_BUFFER_INITIALIZER;
|
||||||
|
g_auto(virBuffer) childBuf = VIR_BUFFER_INIT_CHILD(buf);
|
||||||
|
|
||||||
|
virBufferAsprintf(&attrBuf, " type='%s'",
|
||||||
|
virSecretUsageTypeToString(def->usage_type));
|
||||||
|
|
||||||
type = virSecretUsageTypeToString(def->usage_type);
|
|
||||||
if (type == NULL) {
|
|
||||||
virReportError(VIR_ERR_INTERNAL_ERROR,
|
|
||||||
_("unexpected secret usage type %1$d"),
|
|
||||||
def->usage_type);
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
virBufferAsprintf(buf, "<usage type='%s'>\n", type);
|
|
||||||
virBufferAdjustIndent(buf, 2);
|
|
||||||
switch (def->usage_type) {
|
switch (def->usage_type) {
|
||||||
case VIR_SECRET_USAGE_TYPE_NONE:
|
case VIR_SECRET_USAGE_TYPE_NONE:
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case VIR_SECRET_USAGE_TYPE_VOLUME:
|
case VIR_SECRET_USAGE_TYPE_VOLUME:
|
||||||
virBufferEscapeString(buf, "<volume>%s</volume>\n", def->usage_id);
|
virBufferEscapeString(&childBuf, "<volume>%s</volume>\n", def->usage_id);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case VIR_SECRET_USAGE_TYPE_CEPH:
|
case VIR_SECRET_USAGE_TYPE_CEPH:
|
||||||
virBufferEscapeString(buf, "<name>%s</name>\n", def->usage_id);
|
virBufferEscapeString(&childBuf, "<name>%s</name>\n", def->usage_id);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case VIR_SECRET_USAGE_TYPE_ISCSI:
|
case VIR_SECRET_USAGE_TYPE_ISCSI:
|
||||||
virBufferEscapeString(buf, "<target>%s</target>\n", def->usage_id);
|
virBufferEscapeString(&childBuf, "<target>%s</target>\n", def->usage_id);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case VIR_SECRET_USAGE_TYPE_TLS:
|
case VIR_SECRET_USAGE_TYPE_TLS:
|
||||||
virBufferEscapeString(buf, "<name>%s</name>\n", def->usage_id);
|
virBufferEscapeString(&childBuf, "<name>%s</name>\n", def->usage_id);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case VIR_SECRET_USAGE_TYPE_VTPM:
|
case VIR_SECRET_USAGE_TYPE_VTPM:
|
||||||
virBufferEscapeString(buf, "<name>%s</name>\n", def->usage_id);
|
virBufferEscapeString(&childBuf, "<name>%s</name>\n", def->usage_id);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
@ -235,8 +230,8 @@ virSecretDefFormatUsage(virBuffer *buf,
|
|||||||
virReportEnumRangeError(virSecretUsageType, def->usage_type);
|
virReportEnumRangeError(virSecretUsageType, def->usage_type);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
virBufferAdjustIndent(buf, -2);
|
|
||||||
virBufferAddLit(buf, "</usage>\n");
|
virXMLFormatElement(buf, "usage", &attrBuf, &childBuf);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@ -245,25 +240,23 @@ char *
|
|||||||
virSecretDefFormat(const virSecretDef *def)
|
virSecretDefFormat(const virSecretDef *def)
|
||||||
{
|
{
|
||||||
g_auto(virBuffer) buf = VIR_BUFFER_INITIALIZER;
|
g_auto(virBuffer) buf = VIR_BUFFER_INITIALIZER;
|
||||||
const unsigned char *uuid;
|
g_auto(virBuffer) attrBuf = VIR_BUFFER_INITIALIZER;
|
||||||
|
g_auto(virBuffer) childBuf = VIR_BUFFER_INIT_CHILD(&buf);
|
||||||
char uuidstr[VIR_UUID_STRING_BUFLEN];
|
char uuidstr[VIR_UUID_STRING_BUFLEN];
|
||||||
|
|
||||||
virBufferAsprintf(&buf, "<secret ephemeral='%s' private='%s'>\n",
|
virBufferAsprintf(&attrBuf, " ephemeral='%s' private='%s'",
|
||||||
def->isephemeral ? "yes" : "no",
|
def->isephemeral ? "yes" : "no",
|
||||||
def->isprivate ? "yes" : "no");
|
def->isprivate ? "yes" : "no");
|
||||||
|
|
||||||
uuid = def->uuid;
|
virUUIDFormat(def->uuid, uuidstr);
|
||||||
virUUIDFormat(uuid, uuidstr);
|
virBufferEscapeString(&childBuf, "<uuid>%s</uuid>\n", uuidstr);
|
||||||
virBufferAdjustIndent(&buf, 2);
|
|
||||||
virBufferEscapeString(&buf, "<uuid>%s</uuid>\n", uuidstr);
|
|
||||||
if (def->description != NULL)
|
if (def->description != NULL)
|
||||||
virBufferEscapeString(&buf, "<description>%s</description>\n",
|
virBufferEscapeString(&childBuf, "<description>%s</description>\n",
|
||||||
def->description);
|
def->description);
|
||||||
if (def->usage_type != VIR_SECRET_USAGE_TYPE_NONE &&
|
if (def->usage_type != VIR_SECRET_USAGE_TYPE_NONE &&
|
||||||
virSecretDefFormatUsage(&buf, def) < 0)
|
virSecretDefFormatUsage(&childBuf, def) < 0)
|
||||||
return NULL;
|
return NULL;
|
||||||
virBufferAdjustIndent(&buf, -2);
|
|
||||||
virBufferAddLit(&buf, "</secret>\n");
|
|
||||||
|
|
||||||
|
virXMLFormatElement(&buf, "secret", &attrBuf, &childBuf);
|
||||||
return virBufferContentAndReset(&buf);
|
return virBufferContentAndReset(&buf);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user