[libvirt] [PATCH v2 5/6] tools: delete the old virt-host-validate impl

Daniel P. Berrangé berrange at redhat.com
Fri Sep 27 12:52:24 UTC 2019


The C based virt-host-validate implementation is no longer required so
can be deleted entirely.

Signed-off-by: Daniel P. Berrangé <berrange at redhat.com>
---
 po/POTFILES                       |   5 -
 tools/virt-host-validate-bhyve.c  |  77 ------
 tools/virt-host-validate-bhyve.h  |  24 --
 tools/virt-host-validate-common.c | 419 ------------------------------
 tools/virt-host-validate-common.h |  85 ------
 tools/virt-host-validate-lxc.c    |  87 -------
 tools/virt-host-validate-lxc.h    |  24 --
 tools/virt-host-validate-qemu.c   | 116 ---------
 tools/virt-host-validate-qemu.h   |  24 --
 tools/virt-host-validate.c        | 152 -----------
 10 files changed, 1013 deletions(-)
 delete mode 100644 tools/virt-host-validate-bhyve.c
 delete mode 100644 tools/virt-host-validate-bhyve.h
 delete mode 100644 tools/virt-host-validate-common.c
 delete mode 100644 tools/virt-host-validate-common.h
 delete mode 100644 tools/virt-host-validate-lxc.c
 delete mode 100644 tools/virt-host-validate-lxc.h
 delete mode 100644 tools/virt-host-validate-qemu.c
 delete mode 100644 tools/virt-host-validate-qemu.h
 delete mode 100644 tools/virt-host-validate.c

diff --git a/po/POTFILES b/po/POTFILES
index 35fc26c4b9..9939114bec 100644
--- a/po/POTFILES
+++ b/po/POTFILES
@@ -311,11 +311,6 @@ tools/virsh-util.c
 tools/virsh-volume.c
 tools/virsh.c
 tools/virt-admin.c
-tools/virt-host-validate-bhyve.c
-tools/virt-host-validate-common.c
-tools/virt-host-validate-lxc.c
-tools/virt-host-validate-qemu.c
-tools/virt-host-validate.c
 tools/virt-login-shell.c
 tools/vsh.c
 tools/vsh.h
diff --git a/tools/virt-host-validate-bhyve.c b/tools/virt-host-validate-bhyve.c
deleted file mode 100644
index 2f0ec1e36c..0000000000
--- a/tools/virt-host-validate-bhyve.c
+++ /dev/null
@@ -1,77 +0,0 @@
-/*
- * virt-host-validate-bhyve.c: Sanity check a bhyve hypervisor host
- *
- * Copyright (C) 2017 Roman Bogorodskiy
- *
- * 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/>.
- *
- */
-
-#include <config.h>
-
-#include <sys/param.h>
-#include <sys/linker.h>
-
-#include "virt-host-validate-bhyve.h"
-#include "virt-host-validate-common.h"
-
-#define MODULE_STATUS(mod, err_msg, err_code) \
-    virHostMsgCheck("BHYVE", _("for %s module"), #mod); \
-    if (mod ## _loaded) { \
-        virHostMsgPass(); \
-    } else { \
-        virHostMsgFail(err_code, \
-                       _("%s module is not loaded, " err_msg), \
-                        #mod); \
-        ret = -1; \
-    }
-
-#define MODULE_STATUS_FAIL(mod, err_msg) \
-    MODULE_STATUS(mod, err_msg, VIR_HOST_VALIDATE_FAIL)
-
-#define MODULE_STATUS_WARN(mod, err_msg) \
-    MODULE_STATUS(mod, err_msg, VIR_HOST_VALIDATE_WARN)
-
-
-int virHostValidateBhyve(void)
-{
-    int ret = 0;
-    int fileid = 0;
-    struct kld_file_stat stat;
-    bool vmm_loaded = false, if_tap_loaded = false;
-    bool if_bridge_loaded = false, nmdm_loaded = false;
-
-    for (fileid = kldnext(0); fileid > 0; fileid = kldnext(fileid)) {
-        stat.version = sizeof(struct kld_file_stat);
-        if (kldstat(fileid, &stat) < 0)
-            continue;
-
-        if (STREQ(stat.name, "vmm.ko"))
-            vmm_loaded = true;
-        else if (STREQ(stat.name, "if_tap.ko"))
-            if_tap_loaded = true;
-        else if (STREQ(stat.name, "if_bridge.ko"))
-            if_bridge_loaded = true;
-        else if (STREQ(stat.name, "nmdm.ko"))
-            nmdm_loaded = true;
-    }
-
-    MODULE_STATUS_FAIL(vmm, "will not be able to start VMs");
-    MODULE_STATUS_WARN(if_tap, "networking will not work");
-    MODULE_STATUS_WARN(if_bridge, "bridged networking will not work");
-    MODULE_STATUS_WARN(nmdm, "nmdm console will not work");
-
-    return ret;
-}
diff --git a/tools/virt-host-validate-bhyve.h b/tools/virt-host-validate-bhyve.h
deleted file mode 100644
index a5fd22c871..0000000000
--- a/tools/virt-host-validate-bhyve.h
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
- * virt-host-validate-bhyve.h: Sanity check a bhyve hypervisor host
- *
- * Copyright (C) 2017 Roman Bogorodskiy
- *
- * 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/>.
- *
- */
-
-#pragma once
-
-int virHostValidateBhyve(void);
diff --git a/tools/virt-host-validate-common.c b/tools/virt-host-validate-common.c
deleted file mode 100644
index 804c0adc2d..0000000000
--- a/tools/virt-host-validate-common.c
+++ /dev/null
@@ -1,419 +0,0 @@
-/*
- * virt-host-validate-common.c: Sanity check helper APIs
- *
- * Copyright (C) 2012, 2014 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/>.
- *
- */
-
-#include <config.h>
-
-#include <stdarg.h>
-#include <unistd.h>
-#include <sys/utsname.h>
-#include <sys/stat.h>
-
-#include "viralloc.h"
-#include "vircgroup.h"
-#include "virfile.h"
-#include "virt-host-validate-common.h"
-#include "virstring.h"
-#include "virarch.h"
-
-#define VIR_FROM_THIS VIR_FROM_NONE
-
-VIR_ENUM_IMPL(virHostValidateCPUFlag,
-              VIR_HOST_VALIDATE_CPU_FLAG_LAST,
-              "vmx",
-              "svm",
-              "sie");
-
-static bool quiet;
-
-void virHostMsgSetQuiet(bool quietFlag)
-{
-    quiet = quietFlag;
-}
-
-void virHostMsgCheck(const char *prefix,
-                     const char *format,
-                     ...)
-{
-    va_list args;
-    char *msg;
-
-    if (quiet)
-        return;
-
-    va_start(args, format);
-    if (virVasprintf(&msg, format, args) < 0) {
-        perror("malloc");
-        abort();
-    }
-    va_end(args);
-
-    fprintf(stdout, _("%6s: Checking %-60s: "), prefix, msg);
-    VIR_FREE(msg);
-}
-
-static bool virHostMsgWantEscape(void)
-{
-    static bool detectTty = true;
-    static bool wantEscape;
-    if (detectTty) {
-        if (isatty(STDOUT_FILENO))
-            wantEscape = true;
-        detectTty = false;
-    }
-    return wantEscape;
-}
-
-void virHostMsgPass(void)
-{
-    if (quiet)
-        return;
-
-    if (virHostMsgWantEscape())
-        fprintf(stdout, "\033[32m%s\033[0m\n", _("PASS"));
-    else
-        fprintf(stdout, "%s\n", _("PASS"));
-}
-
-
-static const char * failMessages[] = {
-    N_("FAIL"),
-    N_("WARN"),
-    N_("NOTE"),
-};
-
-verify(ARRAY_CARDINALITY(failMessages) == VIR_HOST_VALIDATE_LAST);
-
-static const char *failEscapeCodes[] = {
-    "\033[31m",
-    "\033[33m",
-    "\033[34m",
-};
-
-verify(ARRAY_CARDINALITY(failEscapeCodes) == VIR_HOST_VALIDATE_LAST);
-
-void virHostMsgFail(virHostValidateLevel level,
-                    const char *format,
-                    ...)
-{
-    va_list args;
-    char *msg;
-
-    if (quiet)
-        return;
-
-    va_start(args, format);
-    if (virVasprintf(&msg, format, args) < 0) {
-        perror("malloc");
-        abort();
-    }
-    va_end(args);
-
-    if (virHostMsgWantEscape())
-        fprintf(stdout, "%s%s\033[0m (%s)\n",
-                failEscapeCodes[level], _(failMessages[level]), msg);
-    else
-        fprintf(stdout, "%s (%s)\n",
-                _(failMessages[level]), msg);
-    VIR_FREE(msg);
-}
-
-
-int virHostValidateDeviceExists(const char *hvname,
-                                const char *dev_name,
-                                virHostValidateLevel level,
-                                const char *hint)
-{
-    virHostMsgCheck(hvname, "if device %s exists", dev_name);
-
-    if (access(dev_name, F_OK) < 0) {
-        virHostMsgFail(level, "%s", hint);
-        return -1;
-    }
-
-    virHostMsgPass();
-    return 0;
-}
-
-
-int virHostValidateDeviceAccessible(const char *hvname,
-                                    const char *dev_name,
-                                    virHostValidateLevel level,
-                                    const char *hint)
-{
-    virHostMsgCheck(hvname, "if device %s is accessible", dev_name);
-
-    if (access(dev_name, R_OK|W_OK) < 0) {
-        virHostMsgFail(level, "%s", hint);
-        return -1;
-    }
-
-    virHostMsgPass();
-    return 0;
-}
-
-
-int virHostValidateNamespace(const char *hvname,
-                             const char *ns_name,
-                             virHostValidateLevel level,
-                             const char *hint)
-{
-    virHostMsgCheck(hvname, "for namespace %s", ns_name);
-    char nspath[100];
-
-    snprintf(nspath, sizeof(nspath), "/proc/self/ns/%s", ns_name);
-
-    if (access(nspath, F_OK) < 0) {
-        virHostMsgFail(level, "%s", hint);
-        return -1;
-    }
-
-    virHostMsgPass();
-    return 0;
-}
-
-
-virBitmapPtr virHostValidateGetCPUFlags(void)
-{
-    FILE *fp;
-    virBitmapPtr flags = NULL;
-
-    if (!(fp = fopen("/proc/cpuinfo", "r")))
-        return NULL;
-
-    if (!(flags = virBitmapNewQuiet(VIR_HOST_VALIDATE_CPU_FLAG_LAST)))
-        goto cleanup;
-
-    do {
-        char line[1024];
-        char *start;
-        char **tokens;
-        size_t ntokens;
-        size_t i;
-
-        if (!fgets(line, sizeof(line), fp))
-            break;
-
-        /* The line we're interested in is marked differently depending
-         * on the architecture, so check possible prefixes */
-        if (!STRPREFIX(line, "flags") &&
-            !STRPREFIX(line, "Features") &&
-            !STRPREFIX(line, "features"))
-            continue;
-
-        /* fgets() includes the trailing newline in the output buffer,
-         * so we need to clean that up ourselves. We can safely access
-         * line[strlen(line) - 1] because the checks above would cause
-         * us to skip empty strings */
-        line[strlen(line) - 1] = '\0';
-
-        /* Skip to the separator */
-        if (!(start = strchr(line, ':')))
-            continue;
-
-        /* Split the line using " " as a delimiter. The first token
-         * will always be ":", but that's okay */
-        if (!(tokens = virStringSplitCount(start, " ", 0, &ntokens)))
-            continue;
-
-        /* Go through all flags and check whether one of those we
-         * might want to check for later on is present; if that's
-         * the case, set the relevant bit in the bitmap */
-        for (i = 0; i < ntokens; i++) {
-            int value;
-
-            if ((value = virHostValidateCPUFlagTypeFromString(tokens[i])) >= 0)
-                ignore_value(virBitmapSetBit(flags, value));
-        }
-
-        virStringListFreeCount(tokens, ntokens);
-    } while (1);
-
- cleanup:
-    VIR_FORCE_FCLOSE(fp);
-
-    return flags;
-}
-
-
-int virHostValidateLinuxKernel(const char *hvname,
-                               int version,
-                               virHostValidateLevel level,
-                               const char *hint)
-{
-    struct utsname uts;
-    unsigned long thisversion;
-
-    uname(&uts);
-
-    virHostMsgCheck(hvname, _("for Linux >= %d.%d.%d"),
-                    ((version >> 16) & 0xff),
-                    ((version >> 8) & 0xff),
-                    (version & 0xff));
-
-    if (STRNEQ(uts.sysname, "Linux")) {
-        virHostMsgFail(level, "%s", hint);
-        return -1;
-    }
-
-    if (virParseVersionString(uts.release, &thisversion, true) < 0) {
-        virHostMsgFail(level, "%s", hint);
-        return -1;
-    }
-
-    if (thisversion < version) {
-        virHostMsgFail(level, "%s", hint);
-        return -1;
-    } else {
-        virHostMsgPass();
-        return 0;
-    }
-}
-
-#ifdef __linux__
-int virHostValidateCGroupControllers(const char *hvname,
-                                     int controllers,
-                                     virHostValidateLevel level)
-{
-    virCgroupPtr group = NULL;
-    int ret = 0;
-    size_t i;
-
-    if (virCgroupNewSelf(&group) < 0)
-        return -1;
-
-    for (i = 0; i < VIR_CGROUP_CONTROLLER_LAST; i++) {
-        int flag = 1 << i;
-        const char *cg_name = virCgroupControllerTypeToString(i);
-
-        if (!(controllers & flag))
-            continue;
-
-        virHostMsgCheck(hvname, "for cgroup '%s' controller support", cg_name);
-
-        if (!virCgroupHasController(group, i)) {
-            ret = -1;
-            virHostMsgFail(level, "Enable '%s' in kernel Kconfig file or "
-                           "mount/enable cgroup controller in your system",
-                           cg_name);
-        } else {
-            virHostMsgPass();
-        }
-    }
-
-    virCgroupFree(&group);
-
-    return ret;
-}
-#else /*  !__linux__ */
-int virHostValidateCGroupControllers(const char *hvname ATTRIBUTE_UNUSED,
-                                     int controllers ATTRIBUTE_UNUSED,
-                                     virHostValidateLevel level)
-{
-    virHostMsgFail(level, "%s", "This platform does not support cgroups");
-    return -1;
-}
-#endif /* !__linux__ */
-
-int virHostValidateIOMMU(const char *hvname,
-                         virHostValidateLevel level)
-{
-    virBitmapPtr flags;
-    struct stat sb;
-    const char *bootarg = NULL;
-    bool isAMD = false, isIntel = false;
-    virArch arch = virArchFromHost();
-    struct dirent *dent;
-    DIR *dir;
-    int rc;
-
-    flags = virHostValidateGetCPUFlags();
-
-    if (flags && virBitmapIsBitSet(flags, VIR_HOST_VALIDATE_CPU_FLAG_VMX))
-        isIntel = true;
-    else if (flags && virBitmapIsBitSet(flags, VIR_HOST_VALIDATE_CPU_FLAG_SVM))
-        isAMD = true;
-
-    virBitmapFree(flags);
-
-    if (isIntel) {
-        virHostMsgCheck(hvname, "%s", _("for device assignment IOMMU support"));
-        if (access("/sys/firmware/acpi/tables/DMAR", F_OK) == 0) {
-            virHostMsgPass();
-            bootarg = "intel_iommu=on";
-        } else {
-            virHostMsgFail(level,
-                           "No ACPI DMAR table found, IOMMU either "
-                           "disabled in BIOS or not supported by this "
-                           "hardware platform");
-            return -1;
-        }
-    } else if (isAMD) {
-        virHostMsgCheck(hvname, "%s", _("for device assignment IOMMU support"));
-        if (access("/sys/firmware/acpi/tables/IVRS", F_OK) == 0) {
-            virHostMsgPass();
-            bootarg = "iommu=pt iommu=1";
-        } else {
-            virHostMsgFail(level,
-                           "No ACPI IVRS table found, IOMMU either "
-                           "disabled in BIOS or not supported by this "
-                           "hardware platform");
-            return -1;
-        }
-    } else if (ARCH_IS_PPC64(arch)) {
-        /* Empty Block */
-    } else if (ARCH_IS_S390(arch)) {
-        /* On s390x, we skip the IOMMU check if there are no PCI
-         * devices (which is quite usual on s390x). If there are
-         * no PCI devices the directory is still there but is
-         * empty. */
-        if (!virDirOpen(&dir, "/sys/bus/pci/devices"))
-            return 0;
-        rc = virDirRead(dir, &dent, NULL);
-        VIR_DIR_CLOSE(dir);
-        if (rc <= 0)
-            return 0;
-    } else {
-        virHostMsgFail(level,
-                       "Unknown if this platform has IOMMU support");
-        return -1;
-    }
-
-
-    /* We can only check on newer kernels with iommu groups & vfio */
-    if (stat("/sys/kernel/iommu_groups", &sb) < 0)
-        return 0;
-
-    if (!S_ISDIR(sb.st_mode))
-        return 0;
-
-    virHostMsgCheck(hvname, "%s", _("if IOMMU is enabled by kernel"));
-    if (sb.st_nlink <= 2) {
-        if (bootarg)
-            virHostMsgFail(level,
-                           "IOMMU appears to be disabled in kernel. "
-                           "Add %s to kernel cmdline arguments", bootarg);
-        else
-            virHostMsgFail(level, "IOMMU capability not compiled into kernel.");
-        return -1;
-    }
-    virHostMsgPass();
-    return 0;
-}
diff --git a/tools/virt-host-validate-common.h b/tools/virt-host-validate-common.h
deleted file mode 100644
index c4e4fa2175..0000000000
--- a/tools/virt-host-validate-common.h
+++ /dev/null
@@ -1,85 +0,0 @@
-/*
- * virt-host-validate-common.h: Sanity check helper APIs
- *
- * Copyright (C) 2012 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/>.
- *
- */
-
-#pragma once
-
-#include "internal.h"
-#include "virutil.h"
-#include "virbitmap.h"
-#include "virenum.h"
-
-typedef enum {
-    VIR_HOST_VALIDATE_FAIL,
-    VIR_HOST_VALIDATE_WARN,
-    VIR_HOST_VALIDATE_NOTE,
-
-    VIR_HOST_VALIDATE_LAST,
-} virHostValidateLevel;
-
-typedef enum {
-    VIR_HOST_VALIDATE_CPU_FLAG_VMX = 0,
-    VIR_HOST_VALIDATE_CPU_FLAG_SVM,
-    VIR_HOST_VALIDATE_CPU_FLAG_SIE,
-
-    VIR_HOST_VALIDATE_CPU_FLAG_LAST,
-} virHostValidateCPUFlag;
-
-VIR_ENUM_DECL(virHostValidateCPUFlag);
-
-void virHostMsgSetQuiet(bool quietFlag);
-
-void virHostMsgCheck(const char *prefix,
-                     const char *format,
-                     ...) ATTRIBUTE_FMT_PRINTF(2, 3);
-
-void virHostMsgPass(void);
-void virHostMsgFail(virHostValidateLevel level,
-                    const char *format,
-                    ...) ATTRIBUTE_FMT_PRINTF(2, 3);
-
-int virHostValidateDeviceExists(const char *hvname,
-                                const char *dev_name,
-                                virHostValidateLevel level,
-                                const char *hint);
-
-int virHostValidateDeviceAccessible(const char *hvname,
-                                    const char *dev_name,
-                                    virHostValidateLevel level,
-                                    const char *hint);
-
-virBitmapPtr virHostValidateGetCPUFlags(void);
-
-int virHostValidateLinuxKernel(const char *hvname,
-                               int version,
-                               virHostValidateLevel level,
-                               const char *hint);
-
-int virHostValidateNamespace(const char *hvname,
-                             const char *ns_name,
-                             virHostValidateLevel level,
-                             const char *hint);
-
-int virHostValidateCGroupControllers(const char *hvname,
-                                     int controllers,
-                                     virHostValidateLevel level);
-
-int virHostValidateIOMMU(const char *hvname,
-                         virHostValidateLevel level);
diff --git a/tools/virt-host-validate-lxc.c b/tools/virt-host-validate-lxc.c
deleted file mode 100644
index 8613f37cc7..0000000000
--- a/tools/virt-host-validate-lxc.c
+++ /dev/null
@@ -1,87 +0,0 @@
-/*
- * virt-host-validate-lxc.c: Sanity check a LXC hypervisor host
- *
- * Copyright (C) 2012 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/>.
- *
- */
-
-#include <config.h>
-
-#include "virt-host-validate-lxc.h"
-#include "virt-host-validate-common.h"
-#include "vircgroup.h"
-
-int virHostValidateLXC(void)
-{
-    int ret = 0;
-
-    if (virHostValidateLinuxKernel("LXC", (2 << 16) | (6 << 8) | 26,
-                                   VIR_HOST_VALIDATE_FAIL,
-                                   _("Upgrade to a kernel supporting namespaces")) < 0)
-        ret = -1;
-
-    if (virHostValidateNamespace("LXC", "ipc",
-                                 VIR_HOST_VALIDATE_FAIL,
-                                 _("IPC namespace support is required")) < 0)
-        ret = -1;
-
-    if (virHostValidateNamespace("LXC", "mnt",
-                                 VIR_HOST_VALIDATE_FAIL,
-                                 _("Mount namespace support is required")) < 0)
-        ret = -1;
-
-    if (virHostValidateNamespace("LXC", "pid",
-                                 VIR_HOST_VALIDATE_FAIL,
-                                 _("PID namespace support is required")) < 0)
-        ret = -1;
-
-    if (virHostValidateNamespace("LXC", "uts",
-                                 VIR_HOST_VALIDATE_FAIL,
-                                 _("UTS namespace support is required")) < 0)
-        ret = -1;
-
-    if (virHostValidateNamespace("LXC", "net",
-                                 VIR_HOST_VALIDATE_WARN,
-                                 _("Network namespace support is recommended")) < 0)
-        ret = -1;
-
-    if (virHostValidateNamespace("LXC", "user",
-                                 VIR_HOST_VALIDATE_WARN,
-                                 _("User namespace support is recommended")) < 0)
-        ret = -1;
-
-    if (virHostValidateCGroupControllers("LXC",
-                                         (1 << VIR_CGROUP_CONTROLLER_MEMORY) |
-                                         (1 << VIR_CGROUP_CONTROLLER_CPU) |
-                                         (1 << VIR_CGROUP_CONTROLLER_CPUACCT) |
-                                         (1 << VIR_CGROUP_CONTROLLER_CPUSET) |
-                                         (1 << VIR_CGROUP_CONTROLLER_DEVICES) |
-                                         (1 << VIR_CGROUP_CONTROLLER_FREEZER) |
-                                         (1 << VIR_CGROUP_CONTROLLER_BLKIO),
-                                         VIR_HOST_VALIDATE_FAIL) < 0) {
-        ret = -1;
-    }
-
-#if WITH_FUSE
-    if (virHostValidateDeviceExists("LXC", "/sys/fs/fuse/connections",
-                                    VIR_HOST_VALIDATE_FAIL,
-                                    _("Load the 'fuse' module to enable /proc/ overrides")) < 0)
-        ret = -1;
-#endif
-
-    return ret;
-}
diff --git a/tools/virt-host-validate-lxc.h b/tools/virt-host-validate-lxc.h
deleted file mode 100644
index fefab17552..0000000000
--- a/tools/virt-host-validate-lxc.h
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
- * virt-host-validate-lxc.h: Sanity check a LXC hypervisor host
- *
- * Copyright (C) 2012 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/>.
- *
- */
-
-#pragma once
-
-int virHostValidateLXC(void);
diff --git a/tools/virt-host-validate-qemu.c b/tools/virt-host-validate-qemu.c
deleted file mode 100644
index ff3c1f0231..0000000000
--- a/tools/virt-host-validate-qemu.c
+++ /dev/null
@@ -1,116 +0,0 @@
-/*
- * virt-host-validate-qemu.c: Sanity check a QEMU hypervisor host
- *
- * Copyright (C) 2012 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/>.
- *
- */
-
-#include <config.h>
-#include <unistd.h>
-
-#include "virt-host-validate-qemu.h"
-#include "virt-host-validate-common.h"
-#include "virarch.h"
-#include "virbitmap.h"
-#include "vircgroup.h"
-
-int virHostValidateQEMU(void)
-{
-    virBitmapPtr flags;
-    int ret = 0;
-    bool hasHwVirt = false;
-    bool hasVirtFlag = false;
-    virArch arch = virArchFromHost();
-    const char *kvmhint = _("Check that CPU and firmware supports virtualization "
-                            "and kvm module is loaded");
-
-    if (!(flags = virHostValidateGetCPUFlags()))
-        return -1;
-
-    switch ((int)arch) {
-    case VIR_ARCH_I686:
-    case VIR_ARCH_X86_64:
-        hasVirtFlag = true;
-        kvmhint = _("Check that the 'kvm-intel' or 'kvm-amd' modules are "
-                    "loaded & the BIOS has enabled virtualization");
-        if (virBitmapIsBitSet(flags, VIR_HOST_VALIDATE_CPU_FLAG_SVM) ||
-            virBitmapIsBitSet(flags, VIR_HOST_VALIDATE_CPU_FLAG_VMX))
-            hasHwVirt = true;
-        break;
-    case VIR_ARCH_S390:
-    case VIR_ARCH_S390X:
-        hasVirtFlag = true;
-        if (virBitmapIsBitSet(flags, VIR_HOST_VALIDATE_CPU_FLAG_SIE))
-            hasHwVirt = true;
-        break;
-    default:
-        hasHwVirt = false;
-    }
-
-    if (hasVirtFlag) {
-        virHostMsgCheck("QEMU", "%s", _("for hardware virtualization"));
-        if (hasHwVirt) {
-            virHostMsgPass();
-        } else {
-            virHostMsgFail(VIR_HOST_VALIDATE_FAIL,
-                           _("Only emulated CPUs are available, performance will be significantly limited"));
-            ret = -1;
-        }
-    }
-
-    if (hasHwVirt || !hasVirtFlag) {
-        if (virHostValidateDeviceExists("QEMU", "/dev/kvm",
-                                        VIR_HOST_VALIDATE_FAIL,
-                                        kvmhint) <0)
-            ret = -1;
-        else if (virHostValidateDeviceAccessible("QEMU", "/dev/kvm",
-                                                 VIR_HOST_VALIDATE_FAIL,
-                                                 _("Check /dev/kvm is world writable or you are in "
-                                                   "a group that is allowed to access it")) < 0)
-            ret = -1;
-    }
-
-    virBitmapFree(flags);
-
-    if (virHostValidateDeviceExists("QEMU", "/dev/vhost-net",
-                                    VIR_HOST_VALIDATE_WARN,
-                                    _("Load the 'vhost_net' module to improve performance "
-                                      "of virtio networking")) < 0)
-        ret = -1;
-
-    if (virHostValidateDeviceExists("QEMU", "/dev/net/tun",
-                                    VIR_HOST_VALIDATE_FAIL,
-                                    _("Load the 'tun' module to enable networking for QEMU guests")) < 0)
-        ret = -1;
-
-    if (virHostValidateCGroupControllers("QEMU",
-                                         (1 << VIR_CGROUP_CONTROLLER_MEMORY) |
-                                         (1 << VIR_CGROUP_CONTROLLER_CPU) |
-                                         (1 << VIR_CGROUP_CONTROLLER_CPUACCT) |
-                                         (1 << VIR_CGROUP_CONTROLLER_CPUSET) |
-                                         (1 << VIR_CGROUP_CONTROLLER_DEVICES) |
-                                         (1 << VIR_CGROUP_CONTROLLER_BLKIO),
-                                         VIR_HOST_VALIDATE_WARN) < 0) {
-        ret = -1;
-    }
-
-    if (virHostValidateIOMMU("QEMU",
-                             VIR_HOST_VALIDATE_WARN) < 0)
-        ret = -1;
-
-    return ret;
-}
diff --git a/tools/virt-host-validate-qemu.h b/tools/virt-host-validate-qemu.h
deleted file mode 100644
index ddb86aa52c..0000000000
--- a/tools/virt-host-validate-qemu.h
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
- * virt-host-validate-qemu.h: Sanity check a QEMU hypervisor host
- *
- * Copyright (C) 2012 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/>.
- *
- */
-
-#pragma once
-
-int virHostValidateQEMU(void);
diff --git a/tools/virt-host-validate.c b/tools/virt-host-validate.c
deleted file mode 100644
index e797e63475..0000000000
--- a/tools/virt-host-validate.c
+++ /dev/null
@@ -1,152 +0,0 @@
-/*
- * virt-host-validate.c: Sanity check a hypervisor host
- *
- * Copyright (C) 2012 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/>.
- *
- */
-
-#include <config.h>
-
-#ifdef HAVE_LIBINTL_H
-# include <libintl.h>
-#endif /* HAVE_LIBINTL_H */
-#include <getopt.h>
-
-#include "internal.h"
-#include "virgettext.h"
-
-#include "virt-host-validate-common.h"
-#if WITH_QEMU
-# include "virt-host-validate-qemu.h"
-#endif
-#if WITH_LXC
-# include "virt-host-validate-lxc.h"
-#endif
-#if WITH_BHYVE
-# include "virt-host-validate-bhyve.h"
-#endif
-
-static void
-show_help(FILE *out, const char *argv0)
-{
-    fprintf(out,
-            _("\n"
-              "syntax: %s [OPTIONS] [HVTYPE]\n"
-              "\n"
-              " Hypervisor types:\n"
-              "\n"
-              "   - qemu\n"
-              "   - lxc\n"
-              "   - bhyve\n"
-              "\n"
-              " Options:\n"
-              "   -h, --help     Display command line help\n"
-              "   -v, --version  Display command version\n"
-              "   -q, --quiet    Don't display progress information\n"
-              "\n"),
-            argv0);
-}
-
-static void
-show_version(FILE *out, const char *argv0)
-{
-    fprintf(out, "version: %s %s\n", argv0, VERSION);
-}
-
-static const struct option argOptions[] = {
-    { "help", 0, NULL, 'h', },
-    { "version", 0, NULL, 'v', },
-    { "quiet", 0, NULL, 'q', },
-    { NULL, 0, NULL, '\0', }
-};
-
-int
-main(int argc, char **argv)
-{
-    const char *hvname = NULL;
-    int c;
-    int ret = EXIT_SUCCESS;
-    bool quiet = false;
-    bool usedHvname = false;
-
-    if (virGettextInitialize() < 0)
-        return EXIT_FAILURE;
-
-    while ((c = getopt_long(argc, argv, "hvq", argOptions, NULL)) != -1) {
-        switch (c) {
-        case 'v':
-            show_version(stdout, argv[0]);
-            return EXIT_SUCCESS;
-
-        case 'h':
-            show_help(stdout, argv[0]);
-            return EXIT_SUCCESS;
-
-        case 'q':
-            quiet = true;
-            break;
-
-        case '?':
-        default:
-            show_help(stderr, argv[0]);
-            return EXIT_FAILURE;
-        }
-    }
-
-    if ((argc-optind) > 2) {
-        fprintf(stderr, _("%s: too many command line arguments\n"), argv[0]);
-        show_help(stderr, argv[0]);
-        return EXIT_FAILURE;
-    }
-
-    if (argc > 1)
-        hvname = argv[optind];
-
-    virHostMsgSetQuiet(quiet);
-
-#if WITH_QEMU
-    if (!hvname || STREQ(hvname, "qemu")) {
-        usedHvname = true;
-        if (virHostValidateQEMU() < 0)
-            ret = EXIT_FAILURE;
-    }
-#endif
-
-#if WITH_LXC
-    if (!hvname || STREQ(hvname, "lxc")) {
-        usedHvname = true;
-        if (virHostValidateLXC() < 0)
-            ret = EXIT_FAILURE;
-    }
-#endif
-
-#if WITH_BHYVE
-    if (!hvname || STREQ(hvname, "bhyve")) {
-        usedHvname = true;
-        if (virHostValidateBhyve() < 0)
-            ret = EXIT_FAILURE;
-    }
-#endif
-
-    if (hvname && !usedHvname) {
-        fprintf(stderr, _("%s: unsupported hypervisor name %s\n"),
-                argv[0], hvname);
-        return EXIT_FAILURE;
-    }
-
-    return ret;
-}
-- 
2.21.0




More information about the libvir-list mailing list