From 39b183b483ebcc08dad5c9280d237cb511dc17f2 Mon Sep 17 00:00:00 2001 From: Erik Skultety Date: Thu, 2 Apr 2015 16:41:51 +0200 Subject: [PATCH] conf: Introduce virStoragePoolSaveState Introduce virStoragePoolSaveState to properly format the state XML in the same manner as virStoragePoolDefFormat, except for adding a ... around the definition. This is similar to virNetworkObjFormat used to save the live/active network information. --- src/conf/storage_conf.c | 34 ++++++++++++++++++++++++++++++++++ src/conf/storage_conf.h | 2 ++ src/libvirt_private.syms | 1 + 3 files changed, 37 insertions(+) diff --git a/src/conf/storage_conf.c b/src/conf/storage_conf.c index 1df3750f36..2a424a71b9 100644 --- a/src/conf/storage_conf.c +++ b/src/conf/storage_conf.c @@ -1927,6 +1927,40 @@ static int virStoragePoolSaveXML(const char *path, } +int +virStoragePoolSaveState(const char *stateFile, + virStoragePoolDefPtr def) +{ + virBuffer buf = VIR_BUFFER_INITIALIZER; + int ret = -1; + char *xml; + + virBufferAddLit(&buf, "\n"); + virBufferAdjustIndent(&buf, 2); + + if (virStoragePoolDefFormatBuf(&buf, def) < 0) + goto error; + + virBufferAdjustIndent(&buf, -2); + virBufferAddLit(&buf, "\n"); + + if (virBufferCheckError(&buf) < 0) + goto error; + + if (!(xml = virBufferContentAndReset(&buf))) + goto error; + + if (virStoragePoolSaveXML(stateFile, def, xml)) + goto error; + + ret = 0; + + error: + VIR_FREE(xml); + return ret; +} + + int virStoragePoolSaveConfig(const char *configFile, virStoragePoolDefPtr def) diff --git a/src/conf/storage_conf.h b/src/conf/storage_conf.h index 4584075ce6..edcdaed922 100644 --- a/src/conf/storage_conf.h +++ b/src/conf/storage_conf.h @@ -371,6 +371,8 @@ virStoragePoolObjPtr virStoragePoolObjAssignDef(virStoragePoolObjListPtr pools, virStoragePoolDefPtr def); +int virStoragePoolSaveState(const char *stateFile, + virStoragePoolDefPtr def); int virStoragePoolSaveConfig(const char *configDir, virStoragePoolDefPtr def); int virStoragePoolObjSaveDef(virStorageDriverStatePtr driver, diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms index 36797c55b5..9f82926747 100644 --- a/src/libvirt_private.syms +++ b/src/libvirt_private.syms @@ -824,6 +824,7 @@ virStoragePoolObjRemove; virStoragePoolObjSaveDef; virStoragePoolObjUnlock; virStoragePoolSaveConfig; +virStoragePoolSaveState; virStoragePoolSourceAdapterTypeFromString; virStoragePoolSourceAdapterTypeToString; virStoragePoolSourceClear; -- GitLab