[libvirt] [PATCH v3 1.5/11] admin: introduce virAdmGetVersion

Martin Kletzander mkletzan at redhat.com
Fri Nov 27 09:33:22 UTC 2015


On Thu, Nov 26, 2015 at 04:43:37PM +0100, Erik Skultety wrote:
>Unfortunately, client side version retrieval API virGetVersion uses
>one-time initialization (due to the fact we might not have initialized the
>library by calling connect prior to this) which is not completely compatible
>with admin initialization. This API is rather simplistic and reimplementing
>it for admin might be the preferred method of reusing it. Note that even though
>the method will be reimplemented, the version number is still the same for both
>the libvirt and libvirt-admin library.
>---
>I'd like add a couple more patches as a reaction to some reviews of this
>series, namely, adding a new admin configuration file, adding a new common
>public header file and also admin reimplementation of virGetVersion.
>
> include/libvirt/libvirt-admin.h |  3 +++
> src/libvirt-admin.c             | 34 ++++++++++++++++++++++++++++++++++
> src/libvirt_admin_public.syms   |  1 +
> 3 files changed, 38 insertions(+)
>
>diff --git a/include/libvirt/libvirt-admin.h b/include/libvirt/libvirt-admin.h
>index ae033d1..9f012c1 100644
>--- a/include/libvirt/libvirt-admin.h
>+++ b/include/libvirt/libvirt-admin.h
>@@ -56,6 +56,9 @@ int virAdmConnectClose(virAdmConnectPtr conn);
>
> int virAdmConnectRef(virAdmConnectPtr conn);
>
>+int virAdmGetVersion(unsigned long long *libVer);
>+
>+
> # ifdef __cplusplus
> }
> # endif
>diff --git a/src/libvirt-admin.c b/src/libvirt-admin.c
>index 5a4fc48..e14d2ef 100644
>--- a/src/libvirt-admin.c
>+++ b/src/libvirt-admin.c
>@@ -386,3 +386,37 @@ virAdmConnectRef(virAdmConnectPtr conn)
>
>     return 0;
> }
>+
>+/**
>+ * virAdmGetVersion:
>+ * @libVer: where to store the library version
>+ *
>+ * Provides version information. @libVer is the version of the library and will
>+ * allways be set unless an error occurs in which case an error code and a
>+ * generic message will be returned. @libVer format is as follows:
>+ * major * 1,000,000 + minor * 1,000 + release.
>+ *
>+ * NOTE: To get the remote side library version use virAdmDaemonGetLibVersion

Either you meant virAdmConnectGetLibVersion here or
virAdmDaemonGetVersion but not the one you used.  You should probably
keep the *Connect* version for now as the future of my patch for
renaming was not yet decided upon.  If it is, I'll change it in the
rename patch itself.

ACK to [012].5

>+ * instead.
>+ *
>+ * Returns 0 on success, -1 in case of an error.
>+ */
>+int
>+virAdmGetVersion(unsigned long long *libVer)
>+{
>+    if (virAdmInitialize() < 0)
>+        goto error;
>+
>+    VIR_DEBUG("libVer=%p", libVer);
>+
>+    virResetLastError();
>+    if (!libVer)
>+        goto error;
>+    *libVer = LIBVIR_VERSION_NUMBER;
>+
>+    return 0;
>+
>+ error:
>+    virDispatchError(NULL);
>+    return -1;
>+}
>diff --git a/src/libvirt_admin_public.syms b/src/libvirt_admin_public.syms
>index d9e3c0b..5e774c2 100644
>--- a/src/libvirt_admin_public.syms
>+++ b/src/libvirt_admin_public.syms
>@@ -15,4 +15,5 @@ LIBVIRT_ADMIN_1.3.0 {
>         virAdmConnectOpen;
>         virAdmConnectClose;
>         virAdmConnectRef;
>+        virAdmGetVersion;
> };
>--
>2.4.3
>
>--
>libvir-list mailing list
>libvir-list at redhat.com
>https://www.redhat.com/mailman/listinfo/libvir-list
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: not available
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20151127/7be014e1/attachment-0001.sig>


More information about the libvir-list mailing list