From e755186c5c305a98c59a188c70cb556af15af361 Mon Sep 17 00:00:00 2001 From: Martin Kletzander Date: Sep 04 2015 16:55:01 +0000 Subject: Add example that renames domain there and back And in the middle it prints out its name to demonstrate changes in later patch(es). Signed-off-by: Martin Kletzander --- diff --git a/.gitignore b/.gitignore index 6bd41be..19402f5 100644 --- a/.gitignore +++ b/.gitignore @@ -83,6 +83,7 @@ /examples/domtop/domtop /examples/hellolibvirt/hellolibvirt /examples/openauth/openauth +/examples/rename/test /gnulib/lib/* /gnulib/m4/* /gnulib/tests/* diff --git a/configure.ac b/configure.ac index 136c2e7..ef7fbdb 100644 --- a/configure.ac +++ b/configure.ac @@ -2806,6 +2806,7 @@ AC_CONFIG_FILES([\ examples/domtop/Makefile \ examples/openauth/Makefile \ examples/hellolibvirt/Makefile \ + examples/rename/Makefile \ examples/systemtap/Makefile \ examples/xml/nwfilter/Makefile \ examples/lxcconvert/Makefile \ diff --git a/examples/rename/Makefile.am b/examples/rename/Makefile.am new file mode 100644 index 0000000..1b3484c --- /dev/null +++ b/examples/rename/Makefile.am @@ -0,0 +1,24 @@ +## Copyright (C) 2005-2013 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 +## . + +INCLUDES = -I$(top_builddir)/include -I$(top_srcdir)/include +LDADDS = $(STATIC_BINARIES) $(WARN_CFLAGS) $(top_builddir)/src/libvirt.la \ + $(COVERAGE_LDFLAGS) + +noinst_PROGRAMS=rename + +rename_SOURCES=rename.c +rename_LDADD= $(LDADDS) diff --git a/examples/rename/rename.c b/examples/rename/rename.c new file mode 100644 index 0000000..85f18e9 --- /dev/null +++ b/examples/rename/rename.c @@ -0,0 +1,73 @@ +/* + * rename.c + * + * 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 + * . + */ + +#include +#include +#include + +int main(int argc, char **argv) +{ + virConnectPtr conn = NULL; /* the hypervisor connection */ + virDomainPtr dom = NULL; /* the domain being checked */ + int ret = EXIT_FAILURE; + + if (argc != 3) { + fprintf(stderr, "Usage: %s \n", + argv[0]); + goto error; + } + + conn = virConnectOpen(NULL); + if (conn == NULL) { + fprintf(stderr, "Failed to connect to hypervisor\n"); + goto error; + } + + dom = virDomainLookupByName(conn, argv[1]); + if (dom == NULL) { + fprintf(stderr, "Failed to find domain\n"); + goto error; + } + + printf("Before first rename: %s\n", virDomainGetName(dom)); + + /* Get the information */ + ret = virDomainRename(dom, argv[2], 0); + if (ret < 0) { + fprintf(stderr, "Failed to rename domain\n"); + goto error; + } + + printf("After first rename: %s\n", virDomainGetName(dom)); + + /* Get the information */ + ret = virDomainRename(dom, argv[1], 0); + if (ret < 0) { + fprintf(stderr, "Failed to rename domain\n"); + goto error; + } + + printf("After second rename: %s\n", virDomainGetName(dom)); + + error: + if (dom != NULL) + virDomainFree(dom); + if (conn != NULL) + virConnectClose(conn); + return ret; +}