[libvirt] [PATCH 3/6] conf: Introduce virStoragePoolSaveState
John Ferlan
jferlan at redhat.com
Thu Apr 2 14:14:33 UTC 2015
On 04/02/2015 06:10 AM, Erik Skultety wrote:
> Properly format storage pool state XML.
Your previous patch 3/7 had a better commit message:
Introduce virStoragePoolSaveStatus to properly format the status XML in
the same manner as virStoragePoolDefFormat, except for adding a
<poolstatus> ... </poolstatus> around the definition. This is similar to
virNetworkObjFormat used to save the live/active network information.
>
> Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1177733
By itself - no it doesn't solve the bug (same for 4 and 5)
> ---
> src/conf/storage_conf.c | 35 +++++++++++++++++++++++++++++++++++
> src/conf/storage_conf.h | 4 +++-
> src/libvirt_private.syms | 1 +
> 3 files changed, 39 insertions(+), 1 deletion(-)
>
> diff --git a/src/conf/storage_conf.c b/src/conf/storage_conf.c
> index 73b937e..ee564f2 100644
> --- a/src/conf/storage_conf.c
> +++ b/src/conf/storage_conf.c
> @@ -1928,6 +1928,41 @@ static int virStoragePoolSaveXML(const char *path,
>
> return ret;
> }
> +
> +
> +int virStoragePoolSaveState(const char *stateFile,
> + virStoragePoolDefPtr def)
Again it's
int
virStorage...
ACK with those adjustments.
John
FYI: Coverity is happy with all 6 patches...
> +{
> + virBuffer buf = VIR_BUFFER_INITIALIZER;
> + int ret = -1;
> + char *xml;
> +
> + virBufferAddLit(&buf, "<poolstatus>\n");
> + virBufferAdjustIndent(&buf, 2);
> +
> + if (virStoragePoolDefFormatBuf(&buf, def) < 0)
> + goto error;
> +
> + virBufferAdjustIndent(&buf, -2);
> + virBufferAddLit(&buf, "</poolstatus>\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 4584075..da378b7 100644
> --- a/src/conf/storage_conf.h
> +++ b/src/conf/storage_conf.h
> @@ -371,7 +371,9 @@ virStoragePoolObjPtr
> virStoragePoolObjAssignDef(virStoragePoolObjListPtr pools,
> virStoragePoolDefPtr def);
>
> -int virStoragePoolSaveConfig(const char *configDir,
> +int virStoragePoolSaveState(const char *stateFile,
> + virStoragePoolDefPtr def);
> +int virStoragePoolSaveConfig(const char *configFile,
> virStoragePoolDefPtr def);
> int virStoragePoolObjSaveDef(virStorageDriverStatePtr driver,
> virStoragePoolObjPtr pool,
> diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms
> index 9e71b1a..56acb01 100644
> --- a/src/libvirt_private.syms
> +++ b/src/libvirt_private.syms
> @@ -813,6 +813,7 @@ virStoragePoolObjRemove;
> virStoragePoolObjSaveDef;
> virStoragePoolObjUnlock;
> virStoragePoolSaveConfig;
> +virStoragePoolSaveState;
> virStoragePoolSourceAdapterTypeFromString;
> virStoragePoolSourceAdapterTypeToString;
> virStoragePoolSourceClear;
>
More information about the libvir-list
mailing list