Re: [libosinfo 2/2] Add gvir_connection_create_storage_pool()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, Oct 25, 2011 at 10:56:56PM +0300, Zeeshan Ali (Khattak) wrote:
> From: "Zeeshan Ali (Khattak)" <zeeshanak@xxxxxxxxx>
> 
> API to create new storage pools. This function also activates and builds
> the storage pool for you.
> ---
>  libvirt-gobject/libvirt-gobject-connection.c |   54 ++++++++++++++++++++++++++
>  libvirt-gobject/libvirt-gobject-connection.h |    6 +++
>  libvirt-gobject/libvirt-gobject.sym          |    1 +
>  3 files changed, 61 insertions(+), 0 deletions(-)
> 
> diff --git a/libvirt-gobject/libvirt-gobject-connection.c b/libvirt-gobject/libvirt-gobject-connection.c
> index 30b7792..921c53c 100644
> --- a/libvirt-gobject/libvirt-gobject-connection.c
> +++ b/libvirt-gobject/libvirt-gobject-connection.c
> @@ -1201,3 +1201,57 @@ GVirDomain *gvir_connection_create_domain(GVirConnection *conn,
>  
>      return g_object_ref(domain);
>  }
> +
> +/**
> + * gvir_connection_create_storage_pool:
> + * @conn: the connection on which to create the pool
> + * @conf: the configuration for the new storage pool
> + * Returns: (transfer full): the newly created storage pool
> + */
> +GVirStoragePool *gvir_connection_create_storage_pool
> +                                (GVirConnection *conn,
> +                                 GVirConfigStoragePool *conf,
> +                                 GError **err) {
> +    const gchar *xml;
> +    virStoragePoolPtr handle;
> +    GVirConnectionPrivate *priv = conn->priv;
> +
> +    xml = gvir_config_object_get_doc(GVIR_CONFIG_OBJECT(conf));
> +
> +    g_return_val_if_fail(xml != NULL, NULL);
> +
> +    if (!(handle = virStoragePoolDefineXML(priv->conn, xml, 0))) {
> +        *err = gvir_error_new_literal(GVIR_CONNECTION_ERROR,
> +                                      0,
> +                                      "Failed to create storage pool");
> +        return NULL;
> +    }
> +
> +    if (virStoragePoolBuild(handle, 0)) {
> +        *err = gvir_error_new_literal(GVIR_CONNECTION_ERROR,
> +                                      0,
> +                                      "Failed to build storage pool");
> +        return NULL;
> +    }
> +
> +    if (virStoragePoolCreate(handle, 0)) {
> +        *err = gvir_error_new_literal(GVIR_CONNECTION_ERROR,
> +                                      0,
> +                                      "Failed to start storage pool");
> +        return NULL;
> +    }

IMHO you don't really want to tie invocation of these three
methods together, since it is quite typical to need to run
them indepedantly.

For example if you have an existing LVM volume group, you
don't want to run build. 

Daniel
-- 
|: http://berrange.com      -o-    http://www.flickr.com/photos/dberrange/ :|
|: http://libvirt.org              -o-             http://virt-manager.org :|
|: http://autobuild.org       -o-         http://search.cpan.org/~danberr/ :|
|: http://entangle-photo.org       -o-       http://live.gnome.org/gtk-vnc :|

--
libvir-list mailing list
libvir-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/libvir-list


[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]