The xenctrl interface has changed over the years, causing the associated code in vhostmd to no longer compile. Instead of trying to get this low-level xen interface working again, simply remove it from vhostmd. libvirt or custom "actions" should be used to gather metrics. Signed-off-by: Jim Fehlig <jfehlig@xxxxxxxx> --- configure.ac | 21 +------ include/util.h | 2 - vhostmd/Makefile.am | 17 +----- vhostmd/metric.c | 5 -- vhostmd/vhostmd.c | 4 -- vhostmd/xenctrl-util.c | 148 ------------------------------------------------- 6 files changed, 4 insertions(+), 193 deletions(-) diff --git a/configure.ac b/configure.ac index fb4309b..65e463a 100644 --- a/configure.ac +++ b/configure.ac @@ -51,26 +51,7 @@ AC_ARG_ENABLE([libxenstat], esac],[AC_CHECK_HEADER(xenstat.h, libxenstat=true, libxenstat=false)]) AM_CONDITIONAL(LIBXENSTAT, test x$libxenstat = xtrue) -# Configure argument to support using xenctrl library for vm enumeration -AC_ARG_ENABLE([xenctrl], -[ --enable-xenctrl use xenctrl specific vm enumeration instead of libvirt], - [case "${enableval}" in - yes) xenctrl=true - CFLAGS="$CFLAGS -DXENCTRL" - ;; - no) xenctrl=false ;; - *) AC_MSG_ERROR(bad value ${enableval} for --enable-xenctrl) ;; - esac],[AC_CHECK_HEADER(xenctrl.h, xenctrl=true, xenctrl=false,)]) -AM_CONDITIONAL(XENCTRL, test x$xenctrl = xtrue) - -libvirt=false -AM_CONDITIONAL(LIBVIRT, test x$libvirt = xtrue) -# Default to libvirt for vm enumeration if no other enabled -if test "x$xenctrl" = "xfalse"; then - libvirt=true - PKG_CHECK_MODULES([LIBVIRT], [libvirt]) - AM_CONDITIONAL(LIBVIRT, test x$libvirt = xtrue) -fi +PKG_CHECK_MODULES([LIBVIRT], [libvirt]) # Configure argument to support using xenstore AC_ARG_WITH([xenstore], diff --git a/include/util.h b/include/util.h index 6045665..3a21e09 100644 --- a/include/util.h +++ b/include/util.h @@ -53,12 +53,10 @@ typedef struct _vu_vm } vu_vm; -#ifndef XENCTRL /* The libvirt URI to connect to (-c argument on the command line). If * not set, this will be NULL. */ extern const char *libvirt_uri; -#endif /* * Init logging interface. If running as daemon messages diff --git a/vhostmd/Makefile.am b/vhostmd/Makefile.am index 3801882..659a0ce 100644 --- a/vhostmd/Makefile.am +++ b/vhostmd/Makefile.am @@ -3,26 +3,15 @@ INCLUDES = \ -I../include sbin_PROGRAMS = vhostmd -vhostmd_SOURCES = vhostmd.c util.c metric.c -vhostmd_CFLAGS = $(LIBXML_CFLAGS) -vhostmd_LDADD = -lm $(LIBXML_LIBS) +vhostmd_SOURCES = vhostmd.c util.c metric.c virt-util.c +vhostmd_CFLAGS = $(LIBXML_CFLAGS) $(LIBVIRT_CFLAGS) +vhostmd_LDADD = -lm $(LIBXML_LIBS) $(LIBVIRT_LIBS) if WITH_XENSTORE vhostmd_SOURCES += xenstore-update.c vhostmd_LDADD += -lxenstore endif -if XENCTRL -vhostmd_SOURCES += xenctrl-util.c -vhostmd_LDADD += -lxenctrl -lxenstore -endif - -if LIBVIRT -vhostmd_SOURCES += virt-util.c -vhostmd_LDADD += $(LIBVIRT_LIBS) -vhostmd_CFLAGS += $(LIBVIRT_CFLAGS) -endif - if LIBXENSTAT vhostmd_SOURCES += xen-metrics.c vhostmd_LDADD += ../xenstat/libxenstat/src/libxenstat.a diff --git a/vhostmd/metric.c b/vhostmd/metric.c index 3fdf4f6..84b1678 100644 --- a/vhostmd/metric.c +++ b/vhostmd/metric.c @@ -71,10 +71,6 @@ static int metric_action_subst(metric *m, char **action) return -1; } -#ifdef XENCTRL - temp = replace (temp, "CONNECT", ""); - if (temp == NULL) return -1; -#else /* LIBVIRT used instead */ if (libvirt_uri) { temp = replace (temp, "CONNECT", "--connect '%s'", libvirt_uri); if (temp == NULL) return -1; @@ -82,7 +78,6 @@ static int metric_action_subst(metric *m, char **action) temp = replace (temp, "CONNECT", ""); if (temp == NULL) return -1; } -#endif if (m->ctx == METRIC_CONTEXT_VM) { temp = replace (temp, "NAME", "%s", m->vm->name); diff --git a/vhostmd/vhostmd.c b/vhostmd/vhostmd.c index 90ba76d..e2e91f6 100644 --- a/vhostmd/vhostmd.c +++ b/vhostmd/vhostmd.c @@ -979,9 +979,7 @@ int main(int argc, char *argv[]) { "config", required_argument, NULL, 'f'}, { "pid-file", required_argument, NULL, 'p'}, { "user", required_argument, NULL, 'u'}, -#ifndef XENCTRL { "connect", required_argument, NULL, 'c'}, -#endif { "help", no_argument, NULL, '?' }, {0, 0, 0, 0} }; @@ -1014,11 +1012,9 @@ int main(int argc, char *argv[]) case 'u': user = optarg; break; -#ifndef XENCTRL case 'c': libvirt_uri = optarg; break; -#endif case '?': usage(argv[0]); return 2; diff --git a/vhostmd/xenctrl-util.c b/vhostmd/xenctrl-util.c deleted file mode 100644 index 7c78ca4..0000000 --- a/vhostmd/xenctrl-util.c +++ /dev/null @@ -1,148 +0,0 @@ -/* - * Copyright (C) 2009 Novell, 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, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - * Author: Pat Campbell <plc@xxxxxxxxxx> - * - * Preliminary, this could be done better - */ - -#include <config.h> - -#include <stdio.h> -#include <string.h> -#include <xenctrl.h> -#include <xs.h> - -#include "util.h" - -#define MAX_DOMS 1024 -static int xc_handle = -1; -static xc_dominfo_t info[MAX_DOMS]; - -int vu_num_vms(void) -{ - uint32_t first_dom = 0; - int max_doms = MAX_DOMS, nr_doms = 0; - - if (xc_handle == -1) - xc_handle = xc_interface_open(); - - if (xc_handle == -1) - return -1; - - nr_doms = xc_domain_getinfo(xc_handle, first_dom, max_doms, info); - - return(nr_doms); -} - -int vu_get_vms(int *ids, int max_ids) -{ - uint32_t first_dom = 0; - int max_doms = MAX_DOMS, nr_doms = 0, i; - - if (xc_handle == -1) - xc_handle = xc_interface_open(); - - if (xc_handle == -1) - return -1; - - nr_doms = xc_domain_getinfo(xc_handle, first_dom, max_doms, info); - if (nr_doms < 0) { - goto out; - } - - if (max_ids < nr_doms) - nr_doms = max_ids; - for (i = 0; i < nr_doms; i++) - ids[i] = (int)info[i].domid; - -out: - return nr_doms; -} - -vu_vm *vu_get_vm(int id) -{ - vu_vm *vm = NULL; - char *path = NULL, *buf = NULL; - char *name = NULL; - char *uuid = NULL; - struct xs_handle *xsh = NULL; - unsigned len; - char *cp; - - vm = calloc(1, sizeof(vu_vm)); - if (vm == NULL) - return NULL; - - vm->id = id; - - xsh = xs_daemon_open(); - if (xsh == NULL) - goto error; - - path = xs_get_domain_path(xsh, id); - if (path == NULL) { - goto error; - } - - asprintf(&buf, "%s/vm", path); - uuid = xs_read(xsh, XBT_NULL, buf, &len); - if (uuid == NULL) { - goto error; - } - cp = strrchr(uuid, '/'); - memmove(uuid, cp+1, strlen(cp)); - vm->uuid = strdup(uuid); - free(buf); - - asprintf(&buf, "%s/name", path); - name = xs_read(xsh, XBT_NULL, buf, &len); - if (name) - vm->name = strdup(name); - - goto out; - -error: - if (vm) free(vm); - vm = NULL; - -out: - if (buf) free(buf); - if (path) free(path); - if (name) free(name); - if (uuid) free(uuid); - if (xsh) xs_daemon_close(xsh); - - return vm; -} - -void vu_vm_free(vu_vm *vm) -{ - if (vm) { - free(vm->name); - free(vm->uuid); - free(vm); - } -} - -void vu_vm_connect_close() -{ - if (xc_handle != -1) - xc_interface_close(xc_handle); - xc_handle = -1; -} - -- 2.16.3 _______________________________________________ virt-tools-list mailing list virt-tools-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/virt-tools-list