]> xenbits.xensource.com Git - libvirt.git/commitdiff
conf: Add new VIR_DOMAIN_VIRT_NONE enum
authorShivangi Dhir <shivangi.dhir.02@gmail.com>
Thu, 17 Sep 2015 08:46:55 +0000 (14:16 +0530)
committerJohn Ferlan <jferlan@redhat.com>
Fri, 25 Sep 2015 19:33:53 +0000 (15:33 -0400)
Introduce VIR_DOMAIN_VIRT_NONE to give domaintype the default value of zero.
This is specially helpful in constructing better error messages
when we don't want to look up the default emulator by virtType.

The test data in vircapstest.c is also modified to reflect this change.

src/conf/capabilities.c
src/conf/capabilities.h
src/conf/domain_conf.c
src/conf/domain_conf.h
tests/vircapstest.c

index 9c2c6b445be463655d5e31e8072dbbfbbcc6a370..86ea212fa9dabecccc3b69e24ab4a35ae144141d 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * capabilities.c: hypervisor capabilities
  *
- * Copyright (C) 2006-2014 Red Hat, Inc.
+ * Copyright (C) 2006-2015 Red Hat, Inc.
  * Copyright (C) 2006-2008 Daniel P. Berrange
  *
  * This library is free software; you can redistribute it and/or
@@ -573,7 +573,7 @@ virCapsDomainDataCompare(virCapsGuestPtr guest,
                          virCapsGuestMachinePtr machine,
                          int ostype,
                          virArch arch,
-                         int domaintype,
+                         virDomainVirtType domaintype,
                          const char *emulator,
                          const char *machinetype)
 {
@@ -584,7 +584,8 @@ virCapsDomainDataCompare(virCapsGuestPtr guest,
     if ((arch != VIR_ARCH_NONE) && (guest->arch.id != arch))
         return false;
 
-    if (domaintype != -1 && (!domain || domain->type != domaintype))
+    if (domaintype != VIR_DOMAIN_VIRT_NONE &&
+        (!domain || domain->type != domaintype))
         return false;
 
     if (emulator) {
@@ -611,7 +612,7 @@ static virCapsDomainDataPtr
 virCapabilitiesDomainDataLookupInternal(virCapsPtr caps,
                                         int ostype,
                                         virArch arch,
-                                        int domaintype,
+                                        virDomainVirtType domaintype,
                                         const char *emulator,
                                         const char *machinetype)
 {
@@ -678,7 +679,7 @@ virCapabilitiesDomainDataLookupInternal(virCapsPtr caps,
                               virDomainOSTypeToString(ostype));
         if (arch)
             virBufferAsprintf(&buf, "arch=%s ", virArchToString(arch));
-        if (domaintype != -1)
+        if (domaintype > VIR_DOMAIN_VIRT_NONE)
             virBufferAsprintf(&buf, "domaintype=%s ",
                               virDomainVirtTypeToString(domaintype));
         if (emulator)
@@ -723,7 +724,7 @@ virCapabilitiesDomainDataLookupInternal(virCapsPtr caps,
  * @caps: capabilities to query
  * @ostype: guest operating system type, of enum VIR_DOMAIN_OSTYPE
  * @arch: Architecture to search for
- * @domaintype: domain type to search for, of enum VIR_DOMAIN_VIRT
+ * @domaintype: domain type to search for, of enum virDomainVirtType
  * @emulator: Emulator path to search for
  * @machinetype: Machine type to search for
  *
index c14fcf676548b69913f9c4c9b5ffd565b982d77b..1754b1326919da503bdb8adec1693d17618d8a03 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * capabilities.h: hypervisor capabilities
  *
- * Copyright (C) 2006-2014 Red Hat, Inc.
+ * Copyright (C) 2006-2015 Red Hat, Inc.
  * Copyright (C) 2006-2008 Daniel P. Berrange
  *
  * This library is free software; you can redistribute it and/or
@@ -61,7 +61,7 @@ struct _virCapsGuestDomainInfo {
 typedef struct _virCapsGuestDomain virCapsGuestDomain;
 typedef virCapsGuestDomain *virCapsGuestDomainPtr;
 struct _virCapsGuestDomain {
-    int type;
+    int type; /* virDomainVirtType */
     virCapsGuestDomainInfo info;
 };
 
@@ -197,7 +197,7 @@ typedef virCapsDomainData *virCapsDomainDataPtr;
 struct _virCapsDomainData {
     int ostype;
     int arch;
-    int domaintype;
+    int domaintype; /* virDomainVirtType */
     const char *emulator;
     const char *machinetype;
 };
index 033ae46c19c536cc06a1a746c7230468ada01f7d..cdafb1422a4e7ea542bc24c6ae262cc8ed19d92d 100644 (file)
@@ -106,6 +106,7 @@ VIR_ENUM_IMPL(virDomainTaint, VIR_DOMAIN_TAINT_LAST,
               "custom-dtb");
 
 VIR_ENUM_IMPL(virDomainVirt, VIR_DOMAIN_VIRT_LAST,
+              "none",
               "qemu",
               "kqemu",
               "kvm",
@@ -14738,7 +14739,7 @@ virDomainDefParseXML(xmlDocPtr xml,
         virCapsDomainDataPtr capsdata = NULL;
 
         if (!(capsdata = virCapabilitiesDomainDataLookup(caps, def->os.type,
-                def->os.arch, use_virttype ? def->virtType : -1,
+                def->os.arch, use_virttype ? def->virtType : VIR_DOMAIN_VIRT_NONE,
                 NULL, NULL)))
             goto error;
 
index 25914b47b33b5a88edf6ac2fbe2ed7951c693c12..901361be419d7186cc8b6acc4bea234029153ae2 100644 (file)
@@ -209,6 +209,7 @@ struct _virDomainDeviceDef {
 /* Different types of hypervisor */
 /* NB: Keep in sync with virDomainVirtTypeToString impl */
 typedef enum {
+    VIR_DOMAIN_VIRT_NONE = 0,
     VIR_DOMAIN_VIRT_QEMU,
     VIR_DOMAIN_VIRT_KQEMU,
     VIR_DOMAIN_VIRT_KVM,
index 3b416540889d771755ceb87bddafae6c10736683..acb0c038defdd0ca0d0df0a0b278537b1cdfeef7 100644 (file)
@@ -223,39 +223,39 @@ test_virCapsDomainDataLookupQEMU(const void *data ATTRIBUTE_UNUSED)
     }
 
     /* Checking each parameter individually */
-    CAPSCOMP(-1, VIR_ARCH_NONE, -1, NULL, NULL,
+    CAPSCOMP(-1, VIR_ARCH_NONE, VIR_DOMAIN_VIRT_NONE, NULL, NULL,
         VIR_DOMAIN_OSTYPE_HVM, VIR_ARCH_X86_64,
         VIR_DOMAIN_VIRT_QEMU, "/usr/bin/qemu-system-x86_64", "pc-0.11");
-    CAPSCOMP(VIR_DOMAIN_OSTYPE_HVM, VIR_ARCH_NONE, -1, NULL, NULL,
+    CAPSCOMP(VIR_DOMAIN_OSTYPE_HVM, VIR_ARCH_NONE, VIR_DOMAIN_VIRT_NONE, NULL, NULL,
         VIR_DOMAIN_OSTYPE_HVM, VIR_ARCH_X86_64,
         VIR_DOMAIN_VIRT_QEMU, "/usr/bin/qemu-system-x86_64", "pc-0.11");
-    CAPSCOMP(-1, VIR_ARCH_AARCH64, -1, NULL, NULL,
+    CAPSCOMP(-1, VIR_ARCH_AARCH64, VIR_DOMAIN_VIRT_NONE, NULL, NULL,
         VIR_DOMAIN_OSTYPE_HVM, VIR_ARCH_AARCH64,
         VIR_DOMAIN_VIRT_QEMU, "/usr/bin/qemu-system-aarch64", "virt");
     CAPSCOMP(-1, VIR_ARCH_NONE, VIR_DOMAIN_VIRT_KVM, NULL, NULL,
         VIR_DOMAIN_OSTYPE_HVM, VIR_ARCH_X86_64,
         VIR_DOMAIN_VIRT_KVM, "/usr/bin/kvm", "pc");
-    CAPSCOMP(-1, VIR_ARCH_NONE, -1, "/usr/bin/qemu-system-ppc64", NULL,
+    CAPSCOMP(-1, VIR_ARCH_NONE, VIR_DOMAIN_VIRT_NONE, "/usr/bin/qemu-system-ppc64", NULL,
         VIR_DOMAIN_OSTYPE_HVM, VIR_ARCH_PPC64,
         VIR_DOMAIN_VIRT_QEMU, "/usr/bin/qemu-system-ppc64", "pseries");
-    CAPSCOMP(-1, VIR_ARCH_NONE, -1, NULL, "s390-virtio",
+    CAPSCOMP(-1, VIR_ARCH_NONE, VIR_DOMAIN_VIRT_NONE, NULL, "s390-virtio",
         VIR_DOMAIN_OSTYPE_HVM, VIR_ARCH_S390X,
         VIR_DOMAIN_VIRT_QEMU, "/usr/bin/qemu-system-s390x",
         "s390-virtio");
 
-    CAPSCOMP(-1, VIR_ARCH_NONE, -1, NULL, "pseries",
+    CAPSCOMP(-1, VIR_ARCH_NONE, VIR_DOMAIN_VIRT_NONE, NULL, "pseries",
         VIR_DOMAIN_OSTYPE_HVM, VIR_ARCH_PPC64,
         VIR_DOMAIN_VIRT_QEMU, "/usr/bin/qemu-system-ppc64", "pseries");
-    CAPSCOMP(-1, VIR_ARCH_PPC64LE, -1, NULL, "pseries",
+    CAPSCOMP(-1, VIR_ARCH_PPC64LE, VIR_DOMAIN_VIRT_NONE, NULL, "pseries",
         VIR_DOMAIN_OSTYPE_HVM, VIR_ARCH_PPC64LE,
         VIR_DOMAIN_VIRT_QEMU, "/usr/bin/qemu-system-ppc64", "pseries");
 
-    CAPS_EXPECT_ERR(VIR_DOMAIN_OSTYPE_LINUX, VIR_ARCH_NONE, -1, NULL, NULL);
-    CAPS_EXPECT_ERR(-1, VIR_ARCH_PPC64LE, -1, NULL, "pc");
-    CAPS_EXPECT_ERR(-1, VIR_ARCH_MIPS, -1, NULL, NULL);
+    CAPS_EXPECT_ERR(VIR_DOMAIN_OSTYPE_LINUX, VIR_ARCH_NONE, VIR_DOMAIN_VIRT_NONE, NULL, NULL);
+    CAPS_EXPECT_ERR(-1, VIR_ARCH_PPC64LE, VIR_DOMAIN_VIRT_NONE, NULL, "pc");
+    CAPS_EXPECT_ERR(-1, VIR_ARCH_MIPS, VIR_DOMAIN_VIRT_NONE, NULL, NULL);
     CAPS_EXPECT_ERR(-1, VIR_ARCH_AARCH64, VIR_DOMAIN_VIRT_KVM,
         "/usr/bin/qemu-system-aarch64", NULL);
-    CAPS_EXPECT_ERR(-1, VIR_ARCH_NONE, -1,
+    CAPS_EXPECT_ERR(-1, VIR_ARCH_NONE, VIR_DOMAIN_VIRT_NONE,
         "/usr/bin/qemu-system-aarch64", "pc");
     CAPS_EXPECT_ERR(-1, VIR_ARCH_NONE, VIR_DOMAIN_VIRT_VMWARE, NULL, "pc");
 
@@ -277,14 +277,14 @@ test_virCapsDomainDataLookupXen(const void *data ATTRIBUTE_UNUSED)
         goto out;
     }
 
-    CAPSCOMP(-1, VIR_ARCH_NONE, -1, NULL, NULL,
+    CAPSCOMP(-1, VIR_ARCH_NONE, VIR_DOMAIN_VIRT_NONE, NULL, NULL,
         VIR_DOMAIN_OSTYPE_HVM, VIR_ARCH_I686, VIR_DOMAIN_VIRT_XEN,
         "/usr/lib/xen/bin/qemu-dm", "xenfv");
-    CAPSCOMP(VIR_DOMAIN_OSTYPE_XEN, VIR_ARCH_NONE, -1, NULL, NULL,
+    CAPSCOMP(VIR_DOMAIN_OSTYPE_XEN, VIR_ARCH_NONE, VIR_DOMAIN_VIRT_NONE, NULL, NULL,
         VIR_DOMAIN_OSTYPE_XEN, VIR_ARCH_I686, VIR_DOMAIN_VIRT_XEN,
         "/usr/lib/xen/bin/qemu-dm", "xenpv");
 
-    CAPS_EXPECT_ERR(VIR_DOMAIN_OSTYPE_XEN, VIR_ARCH_NONE, -1, NULL, "xenfv");
+    CAPS_EXPECT_ERR(VIR_DOMAIN_OSTYPE_XEN, VIR_ARCH_NONE, VIR_DOMAIN_VIRT_NONE, NULL, "xenfv");
 
     ret = 0;
  out:
@@ -305,10 +305,10 @@ test_virCapsDomainDataLookupLXC(const void *data ATTRIBUTE_UNUSED)
         goto out;
     }
 
-    CAPSCOMP(-1, VIR_ARCH_NONE, -1, NULL, NULL,
+    CAPSCOMP(-1, VIR_ARCH_NONE, VIR_DOMAIN_VIRT_NONE, NULL, NULL,
         VIR_DOMAIN_OSTYPE_EXE, VIR_ARCH_X86_64,
         VIR_DOMAIN_VIRT_LXC, "/usr/libexec/libvirt_lxc", NULL);
-    CAPSCOMP(-1, VIR_ARCH_X86_64, -1, NULL, NULL,
+    CAPSCOMP(-1, VIR_ARCH_X86_64, VIR_DOMAIN_VIRT_NONE, NULL, NULL,
         VIR_DOMAIN_OSTYPE_EXE, VIR_ARCH_X86_64,
         VIR_DOMAIN_VIRT_LXC, "/usr/libexec/libvirt_lxc", NULL);