[1/8] domain: Add virDomainDefAddImplicitDevices

Message ID af077a3d1a27f74969987afb24e587086deb0499.1457454944.git.crobinso@redhat.com
State New
Headers show

Commit Message

Cole Robinson March 8, 2016, 4:36 p.m.
It's just a combination of AddImplicitControllers, and AddConsoleCompat.
Every caller that wants ImplicitControllers also wants the ConsoleCompat
AFAICT, so lump them together. We also need it for future patches.
---
 src/conf/domain_conf.c   | 19 ++++++++++++++-----
 src/conf/domain_conf.h   |  2 +-
 src/libvirt_private.syms |  2 +-
 src/qemu/qemu_driver.c   |  6 +++---
 src/vmx/vmx.c            |  2 +-
 src/vz/vz_sdk.c          |  2 +-
 6 files changed, 21 insertions(+), 12 deletions(-)

-- 
2.5.0

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list

Comments

Cole Robinson March 20, 2016, 8:17 p.m. | #1
On 03/14/2016 02:42 PM, John Ferlan wrote:
> 

> 

> On 03/08/2016 11:36 AM, Cole Robinson wrote:

>> It's just a combination of AddImplicitControllers, and AddConsoleCompat.

>> Every caller that wants ImplicitControllers also wants the ConsoleCompat

>> AFAICT, so lump them together. We also need it for future patches.

>> ---

>>  src/conf/domain_conf.c   | 19 ++++++++++++++-----

>>  src/conf/domain_conf.h   |  2 +-

>>  src/libvirt_private.syms |  2 +-

>>  src/qemu/qemu_driver.c   |  6 +++---

>>  src/vmx/vmx.c            |  2 +-

>>  src/vz/vz_sdk.c          |  2 +-

>>  6 files changed, 21 insertions(+), 12 deletions(-)

>>

> 

> Not an issue, but a note below...

> 

> ACK -

> 


Thanks, pushed now

> John

> 

>> diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c

>> index 39cedbd..40b1929 100644

>> --- a/src/conf/domain_conf.c

>> +++ b/src/conf/domain_conf.c

>> @@ -3842,9 +3842,6 @@ virDomainDefPostParseInternal(virDomainDefPtr def,

>>      if (virDomainDefPostParseMemory(def, parseFlags) < 0)

>>          return -1;

>>  

>> -    if (virDomainDefAddConsoleCompat(def) < 0)

>> -        return -1;

>> -

>>      if (virDomainDefRejectDuplicateControllers(def) < 0)

>>          return -1;

>>  

>> @@ -3854,7 +3851,7 @@ virDomainDefPostParseInternal(virDomainDefPtr def,

>>      if (virDomainDefPostParseTimer(def) < 0)

>>          return -1;

>>  

>> -    if (virDomainDefAddImplicitControllers(def) < 0)

>> +    if (virDomainDefAddImplicitDevices(def) < 0)

>>          return -1;

>>  

>>      /* clean up possibly duplicated metadata entries */

>> @@ -18289,7 +18286,7 @@ virDomainDefMaybeAddSmartcardController(virDomainDefPtr def)

>>   * in the XML. This is for compat with existing apps which will

>>   * not know/care about <controller> info in the XML

>>   */

>> -int

>> +static int

>>  virDomainDefAddImplicitControllers(virDomainDefPtr def)

>>  {

>>      if (virDomainDefAddDiskControllersForType(def,

>> @@ -18324,6 +18321,18 @@ virDomainDefAddImplicitControllers(virDomainDefPtr def)

>>      return 0;

>>  }

>>  

>> +int

>> +virDomainDefAddImplicitDevices(virDomainDefPtr def)

>> +{

>> +    if (virDomainDefAddConsoleCompat(def) < 0)

>> +        return -1;

>> +

>> +    if (virDomainDefAddImplicitControllers(def) < 0)

>> +        return -1;

>> +

>> +    return 0;

>> +}

>> +

>>  virDomainIOThreadIDDefPtr

>>  virDomainIOThreadIDFind(virDomainDefPtr def,

>>                          unsigned int iothread_id)

>> diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h

>> index 06305f0..6f044d2 100644

>> --- a/src/conf/domain_conf.h

>> +++ b/src/conf/domain_conf.h

>> @@ -2697,7 +2697,7 @@ virDomainObjPtr virDomainObjParseFile(const char *filename,

>>  bool virDomainDefCheckABIStability(virDomainDefPtr src,

>>                                     virDomainDefPtr dst);

>>  

>> -int virDomainDefAddImplicitControllers(virDomainDefPtr def);

>> +int virDomainDefAddImplicitDevices(virDomainDefPtr def);

>>  

>>  virDomainIOThreadIDDefPtr virDomainIOThreadIDFind(virDomainDefPtr def,

>>                                                    unsigned int iothread_id);

>> diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms

>> index 3a1b9e1..5399117 100644

>> --- a/src/libvirt_private.syms

>> +++ b/src/libvirt_private.syms

>> @@ -200,7 +200,7 @@ virDomainControllerRemove;

>>  virDomainControllerTypeToString;

>>  virDomainCpuPlacementModeTypeFromString;

>>  virDomainCpuPlacementModeTypeToString;

>> -virDomainDefAddImplicitControllers;

>> +virDomainDefAddImplicitDevices;

>>  virDomainDefAddUSBController;

>>  virDomainDefCheckABIStability;

>>  virDomainDefCheckDuplicateDiskInfo;

>> diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c

>> index 102fade..9c60518 100644

>> --- a/src/qemu/qemu_driver.c

>> +++ b/src/qemu/qemu_driver.c

>> @@ -7924,7 +7924,7 @@ qemuDomainAttachDeviceConfig(virQEMUCapsPtr qemuCaps,

>>          /* vmdef has the pointer. Generic codes for vmdef will do all jobs */

>>          dev->data.disk = NULL;

>>          if (disk->bus != VIR_DOMAIN_DISK_BUS_VIRTIO)

>> -            if (virDomainDefAddImplicitControllers(vmdef) < 0)

>> +            if (virDomainDefAddImplicitDevices(vmdef) < 0)

>>                  return -1;

>>          if (qemuDomainAssignAddresses(vmdef, qemuCaps, NULL) < 0)

>>              return -1;

>> @@ -7949,7 +7949,7 @@ qemuDomainAttachDeviceConfig(virQEMUCapsPtr qemuCaps,

>>          if (virDomainHostdevInsert(vmdef, hostdev))

>>              return -1;

>>          dev->data.hostdev = NULL;

>> -        if (virDomainDefAddImplicitControllers(vmdef) < 0)

>> +        if (virDomainDefAddImplicitDevices(vmdef) < 0)

>>              return -1;

>>          if (qemuDomainAssignAddresses(vmdef, qemuCaps, NULL) < 0)

>>              return -1;

>> @@ -7991,7 +7991,7 @@ qemuDomainAttachDeviceConfig(virQEMUCapsPtr qemuCaps,

>>          if (qemuDomainChrInsert(vmdef, dev->data.chr) < 0)

>>              return -1;

>>          dev->data.chr = NULL;

>> -        if (virDomainDefAddImplicitControllers(vmdef) < 0)

>> +        if (virDomainDefAddImplicitDevices(vmdef) < 0)

>>              return -1;

>>          if (qemuDomainAssignAddresses(vmdef, qemuCaps, NULL) < 0)

>>              return -1;

>> diff --git a/src/vmx/vmx.c b/src/vmx/vmx.c

>> index 4fd0a1d..893c77a 100644

>> --- a/src/vmx/vmx.c

>> +++ b/src/vmx/vmx.c

>> @@ -1691,7 +1691,7 @@ virVMXParseConfig(virVMXContext *ctx,

>>      }

>>  

>>      /* def:controllers */

>> -    if (virDomainDefAddImplicitControllers(def) < 0) {

>> +    if (virDomainDefAddImplicitDevices(def) < 0) {

>>          virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("Could not add controllers"));

> 

> Do we care about the error message here?

> 

> Existing, but perhaps notable... Interesting order in vmx code to add

> implicit controller/devices before adding defined controller devices.

> Although I suppose that SCSI controller range check would need

> adjustment too.

> 


I just left the error as is. I think the ideal thing would be to get most
callers to use virDomainDefAddImplicitDevices via virDomainDefPostParse rather
than calling it manually. There's a few other usages spread around too.

- Cole

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list

Patch hide | download patch | download mbox

diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index 39cedbd..40b1929 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -3842,9 +3842,6 @@  virDomainDefPostParseInternal(virDomainDefPtr def,
     if (virDomainDefPostParseMemory(def, parseFlags) < 0)
         return -1;
 
-    if (virDomainDefAddConsoleCompat(def) < 0)
-        return -1;
-
     if (virDomainDefRejectDuplicateControllers(def) < 0)
         return -1;
 
@@ -3854,7 +3851,7 @@  virDomainDefPostParseInternal(virDomainDefPtr def,
     if (virDomainDefPostParseTimer(def) < 0)
         return -1;
 
-    if (virDomainDefAddImplicitControllers(def) < 0)
+    if (virDomainDefAddImplicitDevices(def) < 0)
         return -1;
 
     /* clean up possibly duplicated metadata entries */
@@ -18289,7 +18286,7 @@  virDomainDefMaybeAddSmartcardController(virDomainDefPtr def)
  * in the XML. This is for compat with existing apps which will
  * not know/care about <controller> info in the XML
  */
-int
+static int
 virDomainDefAddImplicitControllers(virDomainDefPtr def)
 {
     if (virDomainDefAddDiskControllersForType(def,
@@ -18324,6 +18321,18 @@  virDomainDefAddImplicitControllers(virDomainDefPtr def)
     return 0;
 }
 
+int
+virDomainDefAddImplicitDevices(virDomainDefPtr def)
+{
+    if (virDomainDefAddConsoleCompat(def) < 0)
+        return -1;
+
+    if (virDomainDefAddImplicitControllers(def) < 0)
+        return -1;
+
+    return 0;
+}
+
 virDomainIOThreadIDDefPtr
 virDomainIOThreadIDFind(virDomainDefPtr def,
                         unsigned int iothread_id)
diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h
index 06305f0..6f044d2 100644
--- a/src/conf/domain_conf.h
+++ b/src/conf/domain_conf.h
@@ -2697,7 +2697,7 @@  virDomainObjPtr virDomainObjParseFile(const char *filename,
 bool virDomainDefCheckABIStability(virDomainDefPtr src,
                                    virDomainDefPtr dst);
 
-int virDomainDefAddImplicitControllers(virDomainDefPtr def);
+int virDomainDefAddImplicitDevices(virDomainDefPtr def);
 
 virDomainIOThreadIDDefPtr virDomainIOThreadIDFind(virDomainDefPtr def,
                                                   unsigned int iothread_id);
diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms
index 3a1b9e1..5399117 100644
--- a/src/libvirt_private.syms
+++ b/src/libvirt_private.syms
@@ -200,7 +200,7 @@  virDomainControllerRemove;
 virDomainControllerTypeToString;
 virDomainCpuPlacementModeTypeFromString;
 virDomainCpuPlacementModeTypeToString;
-virDomainDefAddImplicitControllers;
+virDomainDefAddImplicitDevices;
 virDomainDefAddUSBController;
 virDomainDefCheckABIStability;
 virDomainDefCheckDuplicateDiskInfo;
diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
index 102fade..9c60518 100644
--- a/src/qemu/qemu_driver.c
+++ b/src/qemu/qemu_driver.c
@@ -7924,7 +7924,7 @@  qemuDomainAttachDeviceConfig(virQEMUCapsPtr qemuCaps,
         /* vmdef has the pointer. Generic codes for vmdef will do all jobs */
         dev->data.disk = NULL;
         if (disk->bus != VIR_DOMAIN_DISK_BUS_VIRTIO)
-            if (virDomainDefAddImplicitControllers(vmdef) < 0)
+            if (virDomainDefAddImplicitDevices(vmdef) < 0)
                 return -1;
         if (qemuDomainAssignAddresses(vmdef, qemuCaps, NULL) < 0)
             return -1;
@@ -7949,7 +7949,7 @@  qemuDomainAttachDeviceConfig(virQEMUCapsPtr qemuCaps,
         if (virDomainHostdevInsert(vmdef, hostdev))
             return -1;
         dev->data.hostdev = NULL;
-        if (virDomainDefAddImplicitControllers(vmdef) < 0)
+        if (virDomainDefAddImplicitDevices(vmdef) < 0)
             return -1;
         if (qemuDomainAssignAddresses(vmdef, qemuCaps, NULL) < 0)
             return -1;
@@ -7991,7 +7991,7 @@  qemuDomainAttachDeviceConfig(virQEMUCapsPtr qemuCaps,
         if (qemuDomainChrInsert(vmdef, dev->data.chr) < 0)
             return -1;
         dev->data.chr = NULL;
-        if (virDomainDefAddImplicitControllers(vmdef) < 0)
+        if (virDomainDefAddImplicitDevices(vmdef) < 0)
             return -1;
         if (qemuDomainAssignAddresses(vmdef, qemuCaps, NULL) < 0)
             return -1;
diff --git a/src/vmx/vmx.c b/src/vmx/vmx.c
index 4fd0a1d..893c77a 100644
--- a/src/vmx/vmx.c
+++ b/src/vmx/vmx.c
@@ -1691,7 +1691,7 @@  virVMXParseConfig(virVMXContext *ctx,
     }
 
     /* def:controllers */
-    if (virDomainDefAddImplicitControllers(def) < 0) {
+    if (virDomainDefAddImplicitDevices(def) < 0) {
         virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("Could not add controllers"));
         goto cleanup;
     }
diff --git a/src/vz/vz_sdk.c b/src/vz/vz_sdk.c
index de73c31..8bf2fe9 100644
--- a/src/vz/vz_sdk.c
+++ b/src/vz/vz_sdk.c
@@ -1356,7 +1356,7 @@  prlsdkLoadDomain(vzConnPtr privconn, virDomainObjPtr dom)
     if (prlsdkGetDomainState(sdkdom, &domainState) < 0)
         goto error;
 
-    if (virDomainDefAddImplicitControllers(def) < 0)
+    if (virDomainDefAddImplicitDevices(def) < 0)
         goto error;
 
     if (def->ngraphics > 0) {