examples: Remove broken bad example

The domsuspend example code is a really old and bad exmample of (how not
to use) the libvirt API. Remove it as it's apparent that nobody tried to
use it. It was broken and nobody complained.
This commit is contained in:
Peter Krempa 2013-12-04 10:43:43 +01:00
parent d75d8b46f8
commit 5eb4b04211
5 changed files with 3 additions and 166 deletions

1
.gitignore vendored
View File

@ -71,7 +71,6 @@
/docs/todo.html.in
/examples/domain-events/events-c/event-test
/examples/dominfo/info1
/examples/domsuspend/suspend
/examples/hellolibvirt/hellolibvirt
/examples/openauth/openauth
/gnulib/lib/*

View File

@ -21,8 +21,8 @@ GENHTML = genhtml
SUBDIRS = . gnulib/lib include src daemon tools docs gnulib/tests \
tests po examples/domain-events/events-c examples/hellolibvirt \
examples/dominfo examples/domsuspend examples/apparmor \
examples/xml/nwfilter examples/openauth examples/systemtap
examples/dominfo examples/apparmor examples/xml/nwfilter \
examples/openauth examples/systemtap
ACLOCAL_AMFLAGS = -I m4

View File

@ -1,25 +0,0 @@
## 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
## <http://www.gnu.org/licenses/>.
INCLUDES = -I$(top_builddir)/include -I$(top_srcdir)/include
LDADDS = $(STATIC_BINARIES) $(WARN_CFLAGS) $(top_builddir)/src/libvirt.la \
$(COVERAGE_LDFLAGS)
noinst_PROGRAMS=suspend
suspend_SOURCES=suspend.c
suspend_LDFLAGS=
suspend_LDADD= $(LDADDS)

View File

@ -1,136 +0,0 @@
/**
* section: Scheduling
* synopsis: Suspend a domain and then resume its execution
* purpose: Demonstrate the basic use of the library to suspend and
* resume a domain. If no id is given on the command line
* this script will suspend and resume the first domain found
* which is not Domain 0.
* usage: suspend [id]
* test: suspend
* author: Daniel Veillard
* copy: see Copyright for the status of this software.
*/
#include <stdlib.h>
#include <stdio.h>
#include <libvirt/libvirt.h>
static virConnectPtr conn = NULL; /* the hypervisor connection */
/**
* checkDomainState:
* @dom: the domain
*
* Return the current state of a domain or -1 if non-exsitant
*/
static int
checkDomainState(virDomainPtr dom) {
virDomainInfo info; /* the information being fetched */
int ret;
ret = virDomainGetInfo(dom, &info);
if (ret < 0) {
return -1;
}
return info.state;
}
/**
* SuspendAndResumeDomain:
* @id: the id of the domain
*
* extract the domain 0 information
*/
static void
SuspendAndResumeDomain(int id) {
virDomainPtr dom = NULL; /* the domain being checked */
int ret, state;
/* Find the domain of the given id */
dom = virDomainLookupByID(conn, id);
if (dom == NULL) {
fprintf(stderr, "Failed to find Domain %d\n", id);
goto error;
}
/* Check state */
state = checkDomainState(dom);
if ((state == VIR_DOMAIN_RUNNING) ||
(state == VIR_DOMAIN_NOSTATE) ||
(state == VIR_DOMAIN_BLOCKED)) {
printf("Suspending domain...\n");
ret = virDomainSuspend(dom);
if (ret < 0) {
fprintf(stderr, "Failed to suspend Domain %d\n", id);
goto error;
}
state = checkDomainState(dom);
if (state != VIR_DOMAIN_PAUSED) {
fprintf(stderr, "Domain %d state is not suspended\n", id);
} else {
printf("Domain suspended, resuming it...\n");
}
ret = virDomainResume(dom);
if (ret < 0) {
fprintf(stderr, "Failed to resume Domain %d\n", id);
goto error;
}
state = checkDomainState(dom);
if ((state == VIR_DOMAIN_RUNNING) ||
(state == VIR_DOMAIN_NOSTATE) ||
(state == VIR_DOMAIN_BLOCKED)) {
printf("Domain resumed\n");
} else {
fprintf(stderr, "Domain %d state indicate it is not resumed\n", id);
}
} else {
fprintf(stderr, "Domain %d is not in a state where it should be suspended\n", id);
goto error;
}
error:
if (dom != NULL)
virDomainFree(dom);
}
int main(int argc, char **argv) {
int id = 0;
/* NULL means connect to local Xen hypervisor */
conn = virConnectOpenReadOnly(NULL);
if (conn == NULL) {
fprintf(stderr, "Failed to connect to hypervisor\n");
goto error;
}
if (argc > 1) {
id = atoi(argv[1]);
}
if (id == 0) {
int n;
size_t i;
int ids[10];
n = virConnectListDomains(conn, &ids[0], 10);
if (n < 0) {
fprintf(stderr, "Failed to list the domains\n");
goto error;
}
for (i = 0; i < n; i++) {
if (ids[i] != 0) {
id = ids[i];
break;
}
}
}
if (id == 0) {
fprintf(stderr, "Failed find a running guest domain\n");
goto error;
}
SuspendAndResumeDomain(id);
error:
if (conn != NULL)
virConnectClose(conn);
return 0;
}

View File

@ -1428,7 +1428,7 @@ rm -fr %{buildroot}
# on RHEL 5, thus we need to expand it here.
make install DESTDIR=%{?buildroot} SYSTEMD_UNIT_DIR=%{_unitdir}
for i in domain-events/events-c dominfo domsuspend hellolibvirt openauth xml/nwfilter systemtap
for i in domain-events/events-c dominfo hellolibvirt openauth xml/nwfilter systemtap
do
(cd examples/$i ; make clean ; rm -rf .deps .libs Makefile Makefile.in)
done
@ -2094,7 +2094,6 @@ exit 0
%doc examples/hellolibvirt
%doc examples/domain-events/events-c
%doc examples/dominfo
%doc examples/domsuspend
%doc examples/openauth
%doc examples/xml
%doc examples/systemtap