The C based virt-host-validate implementation is no longer required so
can be deleted entirely.
Signed-off-by: Daniel P. Berrangé <berrange(a)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