virDomainXMLOptionPtr lxcDomainXMLConfInit(void) { return virDomainXMLOptionNew(&virLXCDriverDomainDefParserConfig, &virLXCDriverPrivateDataCallbacks, &virLXCDriverDomainXMLNamespace); }
virDomainXMLOptionPtr libxlCreateXMLConf(void) { return virDomainXMLOptionNew(&libxlDomainDefParserConfig, &libxlDomainXMLPrivateDataCallbacks, NULL); }
static int mymain(void) { int ret = 0; if ((driver.caps = virBhyveCapsBuild()) == NULL) return EXIT_FAILURE; if ((driver.xmlopt = virDomainXMLOptionNew(NULL, NULL, NULL)) == NULL) return EXIT_FAILURE; # define DO_TEST_FULL(name, is_different) \ do { \ const struct testInfo info = {name, is_different}; \ if (virTestRun("BHYVE XML-2-XML " name, \ testCompareXMLToXMLHelper, &info) < 0) \ ret = -1; \ } while (0) # define DO_TEST_DIFFERENT(name) \ DO_TEST_FULL(name, true) DO_TEST_DIFFERENT("metadata"); virObjectUnref(driver.caps); virObjectUnref(driver.xmlopt); return ret == 0 ? EXIT_SUCCESS : EXIT_FAILURE; }
static int mymain(void) { int ret = 0; if ((driver.caps = virBhyveCapsBuild()) == NULL) return EXIT_FAILURE; if ((driver.xmlopt = virDomainXMLOptionNew(NULL, NULL, NULL)) == NULL) return EXIT_FAILURE; # define DO_TEST(name) \ do { \ if (virtTestRun("BHYVE XML-2-ARGV " name, \ testCompareXMLToArgvHelper, name) < 0) \ ret = -1; \ } while (0) DO_TEST("base"); DO_TEST("acpiapic"); DO_TEST("disk-virtio"); DO_TEST("macaddr"); DO_TEST("serial"); DO_TEST("console"); virObjectUnref(driver.caps); virObjectUnref(driver.xmlopt); return ret == 0 ? EXIT_SUCCESS : EXIT_FAILURE; }
virDomainXMLOptionPtr virQEMUDriverCreateXMLConf(virQEMUDriverPtr driver) { virQEMUDriverDomainDefParserConfig.priv = driver; return virDomainXMLOptionNew(&virQEMUDriverDomainDefParserConfig, &virQEMUDriverPrivateDataCallbacks, &virQEMUDriverDomainXMLNamespace); }
static int mymain(void) { int ret = 0; if ((driver.caps = virBhyveCapsBuild()) == NULL) return EXIT_FAILURE; if ((driver.xmlopt = virDomainXMLOptionNew(NULL, NULL, NULL)) == NULL) return EXIT_FAILURE; # define DO_TEST(name) \ do { \ if (virtTestRun("BHYVE XML-2-ARGV " name, \ testCompareXMLToArgvHelper, name) < 0) \ ret = -1; \ } while (0) driver.grubcaps = BHYVE_GRUB_CAP_CONSDEV; driver.bhyvecaps = BHYVE_CAP_RTC_UTC; DO_TEST("base"); DO_TEST("acpiapic"); DO_TEST("disk-cdrom"); DO_TEST("disk-virtio"); DO_TEST("macaddr"); DO_TEST("serial"); DO_TEST("console"); DO_TEST("grub-defaults"); DO_TEST("grub-bootorder"); DO_TEST("grub-bootorder2"); DO_TEST("bhyveload-explicitargs"); DO_TEST("custom-loader"); DO_TEST("disk-cdrom-grub"); DO_TEST("serial-grub"); DO_TEST("localtime"); driver.grubcaps = 0; DO_TEST("serial-grub-nocons"); virObjectUnref(driver.caps); virObjectUnref(driver.xmlopt); return ret == 0 ? EXIT_SUCCESS : EXIT_FAILURE; }
int lxctoolsLoadDomains(struct lxctools_driver *driver) { int i,flags; virDomainObjPtr dom = NULL; virDomainDefPtr def = NULL; int cret_len; struct lxc_container** cret; char** names; virDomainXMLOptionPtr xmlopt; if ((cret_len = list_all_containers(driver->path, &names, &cret)) < 0) goto cleanup; for (i=0; i < cret_len; ++i) { if (!(def = virDomainDefNew())) goto cleanup; def->virtType = VIR_DOMAIN_VIRT_LXCTOOLS; if (!cret[i]->is_running(cret[i])) { def->id = -1; } else { def->id = cret[i]->init_pid(cret[i]); } if (lxctoolsReadUUID(cret[i], def->uuid) < 0) { virReportError(VIR_ERR_OPERATION_FAILED, "%s", "could not parse UUID"); goto cleanup; } def->os.type = VIR_DOMAIN_OSTYPE_EXE; def->name = names[i]; if (lxctoolsReadConfig(cret[i], def) < 0){ goto cleanup; } flags = VIR_DOMAIN_OBJ_LIST_ADD_CHECK_LIVE; if (def->id != -1) flags |= VIR_DOMAIN_OBJ_LIST_ADD_LIVE; if (!(xmlopt = virDomainXMLOptionNew(NULL, NULL, NULL, NULL, NULL))) goto cleanup; if (!(dom = virDomainObjListAdd(driver->domains, def, xmlopt, flags, NULL))) goto cleanup; if (!cret[i]->is_running(cret[i])) { virDomainObjSetState(dom, VIR_DOMAIN_SHUTOFF, VIR_DOMAIN_SHUTOFF_UNKNOWN); dom->pid = -1; } else { virDomainObjSetState(dom, VIR_DOMAIN_RUNNING, VIR_DOMAIN_RUNNING_UNKNOWN); dom->pid = cret[i]->init_pid(cret[i]); } dom->persistent = 1; dom->privateData = cret[i]; dom->privateDataFreeFunc = &container_cleaner; virObjectUnlock(dom); dom = NULL; def = NULL; } return 0; cleanup: VIR_FREE(cret); virObjectUnref(dom); virDomainDefFree(def); return -1; }