[libvirt] [PATCH 6/6] admin: Usage example of the new server listing API
Martin Kletzander
mkletzan at redhat.com
Tue Aug 11 08:46:38 UTC 2015
On Tue, Aug 11, 2015 at 09:59:01AM +0200, Erik Skultety wrote:
>Not to be actually pushed since majority of this example will be merged
>into virt-admin once it's ready, i.e. virsh splitting series is merged,
>but might be good to just see the API's working.
>---
I would say "please note in the subject that this is not to be
pushed", but since even I can screw that up and push it afterwards, it
seems to be said by the wrong person :)
> .gitignore | 1 +
> Makefile.am | 2 +-
> configure.ac | 1 +
> examples/admin/Makefile.am | 25 +++++++++++++++
> examples/admin/listservers.c | 73 ++++++++++++++++++++++++++++++++++++++++++++
> 5 files changed, 101 insertions(+), 1 deletion(-)
> create mode 100644 examples/admin/Makefile.am
> create mode 100644 examples/admin/listservers.c
>
>diff --git a/.gitignore b/.gitignore
>index 0b40f4a..325f04f 100644
>--- a/.gitignore
>+++ b/.gitignore
>@@ -76,6 +76,7 @@
> /docs/libvirt-refs.xml
> /docs/search.php
> /docs/todo.html.in
>+/examples/admin/listservers
> /examples/object-events/event-test
> /examples/dominfo/info1
> /examples/domsuspend/suspend
>diff --git a/Makefile.am b/Makefile.am
>index 91b943b..c14229e 100644
>--- a/Makefile.am
>+++ b/Makefile.am
>@@ -24,7 +24,7 @@ SUBDIRS = . gnulib/lib include src daemon tools docs gnulib/tests \
> examples/dominfo examples/domsuspend examples/apparmor \
> examples/xml/nwfilter examples/openauth examples/systemtap \
> tools/wireshark examples/dommigrate \
>- examples/lxcconvert examples/domtop
>+ examples/lxcconvert examples/domtop examples/admin
>
> ACLOCAL_AMFLAGS = -I m4
>
>diff --git a/configure.ac b/configure.ac
>index 46c80ce..35c8cd9 100644
>--- a/configure.ac
>+++ b/configure.ac
>@@ -2805,6 +2805,7 @@ AC_CONFIG_FILES([\
> examples/systemtap/Makefile \
> examples/xml/nwfilter/Makefile \
> examples/lxcconvert/Makefile \
>+ examples/admin/Makefile \
> tools/wireshark/Makefile \
> tools/wireshark/src/Makefile])
> AC_OUTPUT
>diff --git a/examples/admin/Makefile.am b/examples/admin/Makefile.am
>new file mode 100644
>index 0000000..8373132
>--- /dev/null
>+++ b/examples/admin/Makefile.am
>@@ -0,0 +1,25 @@
>+## Copyright (C) 2005-2015 Red Hat, Inc.
>+##
>+## This library is free software; you can redistribute it and/or
>+## modify it under the terms of the GNU Lesser General Public
>+## License as published by the Free Software Foundation; either
>+## version 2.1 of the License, or (at your option) any later version.
>+##
>+## This library is distributed in the hope that it will be useful,
>+## but WITHOUT ANY WARRANTY; without even the implied warranty of
>+## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
>+## Lesser General Public License for more details.
>+##
>+## You should have received a copy of the GNU Lesser General Public
>+## License along with this library. If not, see
>+## <http://www.gnu.org/licenses/>.
>+
>+INCLUDES = -I$(top_builddir)/include -I$(top_srcdir)/include
>+LDADDS = $(STATIC_BINARIES) $(WARN_CFLAGS) \
>+ $(top_builddir)/src/libvirt-admin.la $(COVERAGE_LDFLAGS)
>+
>+noinst_PROGRAMS=listservers
>+
>+listservers_SOURCES=listservers.c
>+listservers_LDFLAGS=
>+listservers_LDADD= $(LDADDS)
>diff --git a/examples/admin/listservers.c b/examples/admin/listservers.c
>new file mode 100644
>index 0000000..6f11d8d
>--- /dev/null
>+++ b/examples/admin/listservers.c
>@@ -0,0 +1,73 @@
>+/*
>+ * listservers.c: Demo program to show listing of available servers
>+ *
>+ * Copyright (C) 2015 Red Hat, Inc.
>+ *
>+ * This library is free software; you can redistribute it and/or
>+ * modify it under the terms of the GNU Lesser General Public
>+ * License as published by the Free Software Foundation; either
>+ * version 2.1 of the License, or (at your option) any later version.
>+ *
>+ * This library is distributed in the hope that it will be useful,
>+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
>+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
>+ * Lesser General Public License for more details.
>+ *
>+ * You should have received a copy of the GNU Lesser General Public
>+ * License along with this library. If not, see
>+ * <http://www.gnu.org/licenses/>.
>+ *
>+ * Author: Erik Skultety <eskultet at redhat.com>
>+ */
>+
>+#include <stdio.h>
>+#include <stdlib.h>
>+#include <libvirt/libvirt-admin.h>
>+
>+static int
>+listDaemonServers(void)
>+{
>+ int ret = -1;
>+ virAdmConnectPtr conn = NULL;
>+ virAdmServerPtr *srvs = NULL;
>+ int nsrvs = 0;
>+ size_t i;
>+
>+ /* Connect to an admin server on a specific daemon, NULL in this case means
>+ * connect to libvirtd UNIX socket
>+ */
>+ if (!(conn = virAdmConnectOpen(NULL, 0))) {
>+ fprintf(stderr, "Failed to connect to the admin server\n");
There will be error printed by the default error handler, no need to
write out another error.
>+ goto cleanup;
>+ }
>+
>+ /* Obtain a list of available servers on the daemon */
>+ if ((nsrvs = virAdmConnectListServers(conn, &srvs, 0)) < 0) {
>+ fprintf(stderr, "Failed to obtain list of available servers\n");
>+ goto cleanup;
>+ }
>+
>+ printf(" %-5s %-15s\n", "Id", "Name");
>+ printf("---------------\n");
>+ for (i = 0; i < nsrvs; i++)
>+ printf(" %-5d %-15s\n", virAdmGetServerID(srvs[i]),
>+ virAdmGetServerName(srvs[i]));
>+
>+ ret = nsrvs;
>+
>+ cleanup:
>+ if (conn)
>+ virAdmConnectClose(conn);
>+ if (srvs) {
>+ for (i = 0; i < nsrvs; i++)
>+ virAdmServerFree(srvs[i]);
>+ free(srvs);
>+ }
>+
>+ return ret;
>+}
>+
>+int main(void)
>+{
>+ return listDaemonServers();
>+}
>--
>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/20150811/c09ecde0/attachment-0001.sig>
More information about the libvir-list
mailing list