[libvirt] [dbus PATCH v2 01/17] Introduce StorageVol Interface

Pavel Hrdina phrdina at redhat.com
Fri Jun 15 03:26:49 UTC 2018


On Thu, Jun 14, 2018 at 05:59:37PM +0200, Katerina Koukiou wrote:
> Signed-off-by: Katerina Koukiou <kkoukiou at redhat.com>
> ---
>  data/Makefile.am                |  4 ++-
>  data/org.libvirt.StorageVol.xml |  7 ++++
>  src/Makefile.am                 |  4 ++-
>  src/connect.c                   |  6 ++++
>  src/connect.h                   |  1 +
>  src/storagevol.c                | 77 +++++++++++++++++++++++++++++++++++++++++
>  src/storagevol.h                |  9 +++++
>  src/util.c                      | 35 +++++++++++++++++++
>  src/util.h                      | 16 +++++++++
>  9 files changed, 157 insertions(+), 2 deletions(-)
>  create mode 100644 data/org.libvirt.StorageVol.xml
>  create mode 100644 src/storagevol.c
>  create mode 100644 src/storagevol.h

[...]

> diff --git a/src/storagevol.c b/src/storagevol.c
> new file mode 100644
> index 0000000..0097a7f
> --- /dev/null
> +++ b/src/storagevol.c
> @@ -0,0 +1,77 @@
> +#include "storagevol.h"
> +#include "util.h"
> +
> +#include <libvirt/libvirt.h>
> +
> +static virtDBusGDBusPropertyTable virtDBusStorageVolPropertyTable[] = {
> +    { 0 }
> +};
> +
> +static virtDBusGDBusMethodTable virtDBusStorageVolMethodTable[] = {
> +    { 0 }
> +};
> +
> +static gchar **
> +virtDBusStorageVolEnumerate(gpointer userData)
> +{
> +    virtDBusConnect *connect = userData;
> +    g_autoptr(virStoragePoolPtr) storagePools = NULL;
> +    gint numPools = 0;
> +    GPtrArray *list = NULL;
> +
> +    if (!virtDBusConnectOpen(connect, NULL))
> +        return NULL;
> +
> +    numPools = virConnectListAllStoragePools(connect->connection,
> +                                             &storagePools, 0);
> +    if (numPools <= 0)
> +        return NULL;
> +
> +     list = g_ptr_array_new();
> +
> +     for (gint i = 0; i < numPools; i++) {
> +         g_autoptr(virStorageVolPtr) storageVols = NULL;
> +         gint numVols;
> +
> +         numVols = virStoragePoolListAllVolumes(storagePools[i],
> +                                                &storageVols, 0);
> +         if (numVols <= 0)
> +             continue;
> +
> +         for (gint j = 0; j < numVols; j++) {
> +             gchar *volPath = virtDBusUtilBusPathForVirStorageVol(storageVols[j],
> +                                                                  connect->storageVolPath);
> +             g_ptr_array_add(list, volPath);
> +         }
> +     }
> +
> +     if (list->len > 0)
> +         g_ptr_array_add(list, NULL);
> +
> +     return (gchar **)g_ptr_array_free(list, FALSE);

Indentation is off by +1.

Reviewed-by: Pavel Hrdina <phrdina at redhat.com>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20180615/265d51d2/attachment-0001.sig>


More information about the libvir-list mailing list