mirror of https://gitee.com/openkylin/libvirt.git
qemu: Separate formatting from saving into caps cache
We will need to use the formatter directly for testing QEMU capabilities code. Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
This commit is contained in:
parent
800c98af6f
commit
dccb2629c3
|
@ -3019,23 +3019,24 @@ virQEMUCapsLoadCache(virQEMUCapsPtr qemuCaps, const char *filename,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static int
|
static char *
|
||||||
virQEMUCapsSaveCache(virQEMUCapsPtr qemuCaps, const char *filename)
|
virQEMUCapsFormatCache(virQEMUCapsPtr qemuCaps,
|
||||||
|
time_t selfCTime,
|
||||||
|
unsigned long selfVersion)
|
||||||
{
|
{
|
||||||
virBuffer buf = VIR_BUFFER_INITIALIZER;
|
virBuffer buf = VIR_BUFFER_INITIALIZER;
|
||||||
char *xml = NULL;
|
char *ret = NULL;
|
||||||
int ret = -1;
|
|
||||||
size_t i;
|
size_t i;
|
||||||
|
|
||||||
virBufferAddLit(&buf, "<qemuCaps>\n");
|
virBufferAddLit(&buf, "<qemuCaps>\n");
|
||||||
virBufferAdjustIndent(&buf, 2);
|
virBufferAdjustIndent(&buf, 2);
|
||||||
|
|
||||||
virBufferAsprintf(&buf, "<qemuctime>%llu</qemuctime>\n",
|
virBufferAsprintf(&buf, "<qemuctime>%llu</qemuctime>\n",
|
||||||
(long long)qemuCaps->ctime);
|
(long long) qemuCaps->ctime);
|
||||||
virBufferAsprintf(&buf, "<selfctime>%llu</selfctime>\n",
|
virBufferAsprintf(&buf, "<selfctime>%llu</selfctime>\n",
|
||||||
(long long)virGetSelfLastChanged());
|
(long long) selfCTime);
|
||||||
virBufferAsprintf(&buf, "<selfvers>%lu</selfvers>\n",
|
virBufferAsprintf(&buf, "<selfvers>%lu</selfvers>\n",
|
||||||
(unsigned long)LIBVIR_VERSION_NUMBER);
|
(unsigned long) selfVersion);
|
||||||
|
|
||||||
if (qemuCaps->usedQMP)
|
if (qemuCaps->usedQMP)
|
||||||
virBufferAddLit(&buf, "<usedQMP/>\n");
|
virBufferAddLit(&buf, "<usedQMP/>\n");
|
||||||
|
@ -3094,10 +3095,22 @@ virQEMUCapsSaveCache(virQEMUCapsPtr qemuCaps, const char *filename)
|
||||||
virBufferAdjustIndent(&buf, -2);
|
virBufferAdjustIndent(&buf, -2);
|
||||||
virBufferAddLit(&buf, "</qemuCaps>\n");
|
virBufferAddLit(&buf, "</qemuCaps>\n");
|
||||||
|
|
||||||
if (virBufferCheckError(&buf) < 0)
|
if (virBufferCheckError(&buf) == 0)
|
||||||
goto cleanup;
|
ret = virBufferContentAndReset(&buf);
|
||||||
|
|
||||||
xml = virBufferContentAndReset(&buf);
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static int
|
||||||
|
virQEMUCapsSaveCache(virQEMUCapsPtr qemuCaps, const char *filename)
|
||||||
|
{
|
||||||
|
char *xml = NULL;
|
||||||
|
int ret = -1;
|
||||||
|
|
||||||
|
xml = virQEMUCapsFormatCache(qemuCaps,
|
||||||
|
virGetSelfLastChanged(),
|
||||||
|
LIBVIR_VERSION_NUMBER);
|
||||||
|
|
||||||
if (virFileWriteStr(filename, xml, 0600) < 0) {
|
if (virFileWriteStr(filename, xml, 0600) < 0) {
|
||||||
virReportSystemError(errno,
|
virReportSystemError(errno,
|
||||||
|
|
Loading…
Reference in New Issue