diff --git a/.gitignore b/.gitignore index 0b40f4aac1..ec1e3e6141 100644 --- a/.gitignore +++ b/.gitignore @@ -176,6 +176,8 @@ /tools/virsh-*-edit.c /tools/virt-*-validate /tools/virt-sanlock-cleanup +/tools/virt-admin/virt-admin.1 +/tools/virt-admin/virt-admin /tools/wireshark/src/plugin.c /tools/wireshark/src/libvirt /update.log diff --git a/Makefile.am b/Makefile.am index 9796069c8d..0dd1ee8255 100644 --- a/Makefile.am +++ b/Makefile.am @@ -1,6 +1,6 @@ ## Process this file with automake to produce Makefile.in -## Copyright (C) 2005-2013 Red Hat, Inc. +## 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 @@ -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 tools/virt-admin ACLOCAL_AMFLAGS = -I m4 diff --git a/configure.ac b/configure.ac index 94f622f1ad..dbaf2722f8 100644 --- a/configure.ac +++ b/configure.ac @@ -1680,6 +1680,10 @@ dnl virsh libraries VIRSH_LIBS="$VIRSH_LIBS $READLINE_LIBS" AC_SUBST([VIRSH_LIBS]) +dnl virt-admin libraries +VIRT_ADMIN_LIBS="$VIRT_ADMIN_LIBS $READLINE_LIBS" +AC_SUBST([VIRT_ADMIN_LIBS]) + dnl check if the network driver should be compiled AC_ARG_WITH([network], @@ -2812,7 +2816,8 @@ AC_CONFIG_FILES([\ examples/xml/nwfilter/Makefile \ examples/lxcconvert/Makefile \ tools/wireshark/Makefile \ - tools/wireshark/src/Makefile]) + tools/wireshark/src/Makefile \ + tools/virt-admin/Makefile]) AC_OUTPUT AC_MSG_NOTICE([]) diff --git a/tools/virt-admin/Makefile.am b/tools/virt-admin/Makefile.am new file mode 100644 index 0000000000..51a6f38d67 --- /dev/null +++ b/tools/virt-admin/Makefile.am @@ -0,0 +1,69 @@ +## 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 +## . + +AM_CPPFLAGS = \ + -I$(top_builddir)/include -I$(top_srcdir)/include \ + -I$(top_builddir)/gnulib/lib -I$(top_srcdir)/gnulib/lib \ + -I$(top_builddir)/src -I$(top_srcdir)/src \ + -I$(top_srcdir)/src/util \ + -I$(top_srcdir) \ + $(GETTEXT_CPPFLAGS) + +AM_LDFLAGS = \ + $(RELRO_LDFLAGS) \ + $(NO_INDIRECT_LDFLAGS) \ + $(NULL) + +POD2MAN = pod2man -c "Virtualization Support" -r "$(PACKAGE)-$(VERSION)" + +EXTRA_DIST = virt-admin.pod + +DISTCLEANFILES = + +bin_PROGRAMS = virt-admin + +dist_man1_MANS = virt-admin.1 + +virt_admin_SOURCES = virt-admin.c + +virt_admin_LDFLAGS = \ + $(AM_LDFLAGS) \ + $(COVERAGE_LDFLAGS) \ + $(NULL) + +virt_admin_LDADD = \ + $(STATIC_BINARIES) \ + $(PIE_LDFLAGS) \ + ../../src/libvirt-admin.la \ + $(top_srcdir)/gnulib/lib/libgnu.la \ + $(VIRT_ADMIN_LIBS) \ + $(NULL) + +virt_admin_CFLAGS = \ + $(WARN_CFLAGS) \ + $(PIE_CFLAGS) \ + $(COVERAGE_CFLAGS) \ + $(LIBXML_CFLAGS) \ + $(READLINE_CFLAGS) \ + $(NULL) + +virt-admin.1: virt-admin.pod $(top_srcdir)/configure.ac + $(AM_V_GEN)$(POD2MAN) $< $(srcdir)/$@ \ + && if grep 'POD ERROR' $(srcdir)/$@ ; then \ + rm $(srcdir)/$@; exit 1; fi + +CLEANFILES = *.gcov .libs/*.gcda .libs/*.gcno *.gcno *.gcda +MAINTAINERCLEANFILES = $(dist_man1_MANS) diff --git a/tools/virt-admin/virt-admin.c b/tools/virt-admin/virt-admin.c new file mode 100644 index 0000000000..31975511d3 --- /dev/null +++ b/tools/virt-admin/virt-admin.c @@ -0,0 +1,72 @@ +/* + * virt-admin.c: a shell to exercise the libvirt admin API + * + * Copyright (C) 2014-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 + * . + * + * Martin Kletzander + */ + +#include + +#include +#include +#include + +#include "configmake.h" +#include "internal.h" + +#include + +int +main(int argc ATTRIBUTE_UNUSED, + char **argv ATTRIBUTE_UNUSED) +{ + int ret = EXIT_FAILURE; + char *greeting = NULL; + const char *uri = NULL; + virAdmConnectPtr conn = NULL; + + if (!setlocale(LC_ALL, "")) { + perror("setlocale"); + /* failure to setup locale is not fatal */ + } + if (!bindtextdomain(PACKAGE, LOCALEDIR)) { + perror("bindtextdomain"); + return EXIT_FAILURE; + } + if (!textdomain(PACKAGE)) { + perror("textdomain"); + return EXIT_FAILURE; + } + + if (argc > 1) + uri = argv[1]; + + if (!(conn = virAdmConnectOpen(uri, 0))) + goto cleanup; + + if (!(greeting = virAdmHello(conn, 0))) + goto cleanup; + + printf("%s\n", greeting); + + ret = EXIT_SUCCESS; + cleanup: + VIR_FREE(greeting); + virAdmConnectClose(conn); + return ret; +} diff --git a/tools/virt-admin/virt-admin.pod b/tools/virt-admin/virt-admin.pod new file mode 100644 index 0000000000..b82013b650 --- /dev/null +++ b/tools/virt-admin/virt-admin.pod @@ -0,0 +1,43 @@ +=head1 NAME + +virt-admin - client for admin interface of libvirt + +=head1 SYNOPSIS + +B + +=head1 DESCRIPTION + +Libre ip_sum do { lor(); } sit; I'm @. + +=head1 EXIT STATUS + +It should be 0, really. + +=head1 BUGS + +None! + +=head1 AUTHORS + + Please refer to the AUTHORS file distributed with libvirt. + + Martin Kletzander + +=head1 COPYRIGHT + +Copyright (C) 2014-2015 Red Hat, Inc., and the authors listed in the +libvirt AUTHORS file. + +=head1 LICENSE + +virt-admin is distributed under the terms of the GNU GPL v2+. This is +free software; see the source for copying conditions. There is NO +warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR +PURPOSE + +=head1 SEE ALSO + +L, L + +=cut