From 13a050b2c3abddaf15e446c6b6bfd0c50d2c7261 Mon Sep 17 00:00:00 2001 From: Roman Bogorodskiy Date: Thu, 5 Jan 2017 16:31:35 +0400 Subject: [PATCH] bhyve: add virBhyveDriverCreateXMLConf Add virBhyveDriverCreateXMLConf, a simple wrapper around virDomainXMLOptionNew that makes it easier to pass bhyveConnPtr as a private data for parser. It will be used later for device address allocation at parsing time. Update consumers to use it instead of direct calls to virDomainXMLOptionNew. As we now have proper callbacks connected for the tests, update test files accordingly to include the automatically generated PCI root controller. --- src/bhyve/bhyve_domain.c | 9 +++++++++ src/bhyve/bhyve_domain.h | 2 ++ src/bhyve/bhyve_driver.c | 4 +--- tests/bhyvexml2argvtest.c | 3 ++- tests/bhyvexml2xmloutdata/bhyvexml2xmlout-acpiapic.xml | 1 + tests/bhyvexml2xmloutdata/bhyvexml2xmlout-base.xml | 1 + .../bhyvexml2xmlout-bhyveload-bootorder.xml | 1 + .../bhyvexml2xmlout-bhyveload-bootorder1.xml | 1 + .../bhyvexml2xmlout-bhyveload-bootorder2.xml | 1 + .../bhyvexml2xmlout-bhyveload-bootorder3.xml | 1 + .../bhyvexml2xmlout-bhyveload-bootorder4.xml | 1 + .../bhyvexml2xmlout-bhyveload-explicitargs.xml | 1 + tests/bhyvexml2xmloutdata/bhyvexml2xmlout-console.xml | 1 + .../bhyvexml2xmlout-custom-loader.xml | 1 + .../bhyvexml2xmlout-disk-cdrom-grub.xml | 1 + tests/bhyvexml2xmloutdata/bhyvexml2xmlout-disk-cdrom.xml | 1 + .../bhyvexml2xmloutdata/bhyvexml2xmlout-disk-virtio.xml | 1 + .../bhyvexml2xmlout-grub-bootorder.xml | 1 + .../bhyvexml2xmlout-grub-bootorder2.xml | 1 + .../bhyvexml2xmlout-grub-defaults.xml | 1 + tests/bhyvexml2xmloutdata/bhyvexml2xmlout-localtime.xml | 1 + tests/bhyvexml2xmloutdata/bhyvexml2xmlout-macaddr.xml | 1 + tests/bhyvexml2xmloutdata/bhyvexml2xmlout-metadata.xml | 1 + .../bhyvexml2xmlout-serial-grub-nocons.xml | 1 + .../bhyvexml2xmloutdata/bhyvexml2xmlout-serial-grub.xml | 1 + tests/bhyvexml2xmloutdata/bhyvexml2xmlout-serial.xml | 1 + tests/bhyvexml2xmltest.c | 3 ++- 27 files changed, 38 insertions(+), 5 deletions(-) diff --git a/src/bhyve/bhyve_domain.c b/src/bhyve/bhyve_domain.c index e2a20ce63d..b4dc26767c 100644 --- a/src/bhyve/bhyve_domain.c +++ b/src/bhyve/bhyve_domain.c @@ -83,6 +83,15 @@ bhyveDomainDeviceDefPostParse(virDomainDeviceDefPtr dev ATTRIBUTE_UNUSED, return 0; } +virDomainXMLOptionPtr +virBhyveDriverCreateXMLConf(bhyveConnPtr driver) +{ + virBhyveDriverDomainDefParserConfig.priv = driver; + return virDomainXMLOptionNew(&virBhyveDriverDomainDefParserConfig, + &virBhyveDriverPrivateDataCallbacks, + NULL); +} + virDomainDefParserConfig virBhyveDriverDomainDefParserConfig = { .devicesPostParseCallback = bhyveDomainDeviceDefPostParse, .domainPostParseCallback = bhyveDomainDefPostParse, diff --git a/src/bhyve/bhyve_domain.h b/src/bhyve/bhyve_domain.h index 0a60392166..bbc8ecd8cf 100644 --- a/src/bhyve/bhyve_domain.h +++ b/src/bhyve/bhyve_domain.h @@ -37,6 +37,8 @@ struct _bhyveDomainObjPrivate { bhyveMonitorPtr mon; }; +virDomainXMLOptionPtr virBhyveDriverCreateXMLConf(bhyveConnPtr); + extern virDomainXMLPrivateDataCallbacks virBhyveDriverPrivateDataCallbacks; extern virDomainDefParserConfig virBhyveDriverDomainDefParserConfig; diff --git a/src/bhyve/bhyve_driver.c b/src/bhyve/bhyve_driver.c index e42ec479eb..f4ccef32bf 100644 --- a/src/bhyve/bhyve_driver.c +++ b/src/bhyve/bhyve_driver.c @@ -1246,9 +1246,7 @@ bhyveStateInitialize(bool privileged, if (virBhyveProbeGrubCaps(&bhyve_driver->grubcaps) < 0) goto cleanup; - if (!(bhyve_driver->xmlopt = virDomainXMLOptionNew(&virBhyveDriverDomainDefParserConfig, - &virBhyveDriverPrivateDataCallbacks, - NULL))) + if (!(bhyve_driver->xmlopt = virBhyveDriverCreateXMLConf(bhyve_driver))) goto cleanup; if (!(bhyve_driver->domains = virDomainObjListNew())) diff --git a/tests/bhyvexml2argvtest.c b/tests/bhyvexml2argvtest.c index 22a902c53d..a615c8ca14 100644 --- a/tests/bhyvexml2argvtest.c +++ b/tests/bhyvexml2argvtest.c @@ -7,6 +7,7 @@ # include "datatypes.h" # include "bhyve/bhyve_capabilities.h" +# include "bhyve/bhyve_domain.h" # include "bhyve/bhyve_utils.h" # include "bhyve/bhyve_command.h" @@ -131,7 +132,7 @@ mymain(void) if ((driver.caps = virBhyveCapsBuild()) == NULL) return EXIT_FAILURE; - if ((driver.xmlopt = virDomainXMLOptionNew(NULL, NULL, NULL)) == NULL) + if ((driver.xmlopt = virBhyveDriverCreateXMLConf(&driver)) == NULL) return EXIT_FAILURE; # define DO_TEST_FULL(name, flags) \ diff --git a/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-acpiapic.xml b/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-acpiapic.xml index b4720ecaff..ef57e0be69 100644 --- a/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-acpiapic.xml +++ b/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-acpiapic.xml @@ -23,6 +23,7 @@
+ diff --git a/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-base.xml b/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-base.xml index cd4e4f80d1..0ff1a3c6b3 100644 --- a/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-base.xml +++ b/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-base.xml @@ -19,6 +19,7 @@
+ diff --git a/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-bhyveload-bootorder.xml b/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-bhyveload-bootorder.xml index ab01cb5ab2..6c092bb8d4 100644 --- a/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-bhyveload-bootorder.xml +++ b/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-bhyveload-bootorder.xml @@ -26,6 +26,7 @@
+ diff --git a/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-bhyveload-bootorder1.xml b/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-bhyveload-bootorder1.xml index df69c4e879..f9e55d6e33 100644 --- a/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-bhyveload-bootorder1.xml +++ b/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-bhyveload-bootorder1.xml @@ -26,6 +26,7 @@
+ diff --git a/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-bhyveload-bootorder2.xml b/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-bhyveload-bootorder2.xml index 89131dc85a..f75471f849 100644 --- a/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-bhyveload-bootorder2.xml +++ b/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-bhyveload-bootorder2.xml @@ -19,6 +19,7 @@
+ diff --git a/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-bhyveload-bootorder3.xml b/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-bhyveload-bootorder3.xml index 96f9dc4dd0..8b9aeea186 100644 --- a/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-bhyveload-bootorder3.xml +++ b/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-bhyveload-bootorder3.xml @@ -26,6 +26,7 @@
+ diff --git a/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-bhyveload-bootorder4.xml b/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-bhyveload-bootorder4.xml index 1dd180bc0e..a688d8a76f 100644 --- a/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-bhyveload-bootorder4.xml +++ b/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-bhyveload-bootorder4.xml @@ -27,6 +27,7 @@
+ diff --git a/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-bhyveload-explicitargs.xml b/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-bhyveload-explicitargs.xml index d7743a6408..bb71930372 100644 --- a/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-bhyveload-explicitargs.xml +++ b/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-bhyveload-explicitargs.xml @@ -19,6 +19,7 @@
+ diff --git a/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-console.xml b/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-console.xml index bf926f96b1..bf9d6ad8af 100644 --- a/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-console.xml +++ b/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-console.xml @@ -19,6 +19,7 @@
+ diff --git a/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-custom-loader.xml b/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-custom-loader.xml index 3e7f145edc..53fd6b54b0 100644 --- a/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-custom-loader.xml +++ b/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-custom-loader.xml @@ -20,6 +20,7 @@
+ diff --git a/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-disk-cdrom-grub.xml b/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-disk-cdrom-grub.xml index 285842c01c..acdc4badb5 100644 --- a/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-disk-cdrom-grub.xml +++ b/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-disk-cdrom-grub.xml @@ -20,6 +20,7 @@
+ diff --git a/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-disk-cdrom.xml b/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-disk-cdrom.xml index 02517e4fdf..23f3f6f474 100644 --- a/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-disk-cdrom.xml +++ b/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-disk-cdrom.xml @@ -20,6 +20,7 @@
+ diff --git a/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-disk-virtio.xml b/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-disk-virtio.xml index 065ae813a3..d7abb5abcd 100644 --- a/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-disk-virtio.xml +++ b/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-disk-virtio.xml @@ -19,6 +19,7 @@
+ diff --git a/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-grub-bootorder.xml b/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-grub-bootorder.xml index 939f7ba589..f36daae10e 100644 --- a/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-grub-bootorder.xml +++ b/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-grub-bootorder.xml @@ -32,6 +32,7 @@
+ diff --git a/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-grub-bootorder2.xml b/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-grub-bootorder2.xml index f774411e9f..825ccd78f4 100644 --- a/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-grub-bootorder2.xml +++ b/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-grub-bootorder2.xml @@ -34,6 +34,7 @@
+ diff --git a/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-grub-defaults.xml b/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-grub-defaults.xml index 758986b3f8..b7f0a48864 100644 --- a/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-grub-defaults.xml +++ b/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-grub-defaults.xml @@ -19,6 +19,7 @@
+ diff --git a/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-localtime.xml b/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-localtime.xml index 7e08ff9de5..95b01db2fb 100644 --- a/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-localtime.xml +++ b/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-localtime.xml @@ -19,6 +19,7 @@
+ diff --git a/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-macaddr.xml b/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-macaddr.xml index 4e4e672fcf..842194caa3 100644 --- a/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-macaddr.xml +++ b/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-macaddr.xml @@ -19,6 +19,7 @@
+ diff --git a/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-metadata.xml b/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-metadata.xml index 77e18d48c6..b44b6bd9e1 100644 --- a/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-metadata.xml +++ b/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-metadata.xml @@ -23,6 +23,7 @@
+ diff --git a/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-serial-grub-nocons.xml b/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-serial-grub-nocons.xml index a379f12740..f4ace39798 100644 --- a/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-serial-grub-nocons.xml +++ b/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-serial-grub-nocons.xml @@ -19,6 +19,7 @@
+ diff --git a/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-serial-grub.xml b/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-serial-grub.xml index 2864089ae8..f404ee7e38 100644 --- a/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-serial-grub.xml +++ b/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-serial-grub.xml @@ -19,6 +19,7 @@
+ diff --git a/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-serial.xml b/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-serial.xml index 954c58acaf..d713deaee4 100644 --- a/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-serial.xml +++ b/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-serial.xml @@ -19,6 +19,7 @@
+ diff --git a/tests/bhyvexml2xmltest.c b/tests/bhyvexml2xmltest.c index e95cee4b8e..641ddb33e3 100644 --- a/tests/bhyvexml2xmltest.c +++ b/tests/bhyvexml2xmltest.c @@ -5,6 +5,7 @@ #ifdef WITH_BHYVE # include "bhyve/bhyve_capabilities.h" +# include "bhyve/bhyve_domain.h" # include "bhyve/bhyve_utils.h" # define VIR_FROM_THIS VIR_FROM_NONE @@ -49,7 +50,7 @@ mymain(void) if ((driver.caps = virBhyveCapsBuild()) == NULL) return EXIT_FAILURE; - if ((driver.xmlopt = virDomainXMLOptionNew(NULL, NULL, NULL)) == NULL) + if ((driver.xmlopt = virBhyveDriverCreateXMLConf(&driver)) == NULL) return EXIT_FAILURE; # define DO_TEST_FULL(name, is_different) \