#include "virnetdev.h"
#include "virnetdevbridge.h"
#include "virnetdevtap.h"
+#include "storage/storage_driver.h"
#define VIR_FROM_THIS VIR_FROM_BHYVE
return -1;
}
- if (virDomainDiskGetType(disk) != VIR_STORAGE_TYPE_FILE) {
+ if ((virDomainDiskGetType(disk) != VIR_STORAGE_TYPE_FILE) &&
+ (virDomainDiskGetType(disk) != VIR_STORAGE_TYPE_VOLUME)) {
virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
_("unsupported disk type"));
return -1;
}
virCommandPtr
-virBhyveProcessBuildBhyveCmd(bhyveConnPtr driver ATTRIBUTE_UNUSED,
+virBhyveProcessBuildBhyveCmd(virConnectPtr conn,
virDomainDefPtr def, bool dryRun)
{
/*
for (i = 0; i < def->ndisks; i++) {
virDomainDiskDefPtr disk = def->disks[i];
+ if (virStorageTranslateDiskSourcePool(conn, disk) < 0)
+ goto error;
+
if (bhyveBuildDiskArgStr(def, disk, cmd) < 0)
goto error;
}
}
virCommandPtr
-virBhyveProcessBuildLoadCmd(bhyveConnPtr driver ATTRIBUTE_UNUSED,
+virBhyveProcessBuildLoadCmd(virConnectPtr conn,
virDomainDefPtr def)
{
virCommandPtr cmd;
disk = def->disks[0];
+ if (virStorageTranslateDiskSourcePool(conn, disk) < 0)
+ return NULL;
+
if ((disk->device != VIR_DOMAIN_DISK_DEVICE_DISK) &&
(disk->device != VIR_DOMAIN_DISK_DEVICE_CDROM)) {
virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
return NULL;
}
- if (virDomainDiskGetType(disk) != VIR_STORAGE_TYPE_FILE) {
+ if ((virDomainDiskGetType(disk) != VIR_STORAGE_TYPE_FILE) &&
+ (virDomainDiskGetType(disk) != VIR_STORAGE_TYPE_VOLUME)) {
virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
_("unsupported disk type"));
return NULL;
# define BHYVE_CONFIG_FORMAT_ARGV "bhyve-argv"
-virCommandPtr virBhyveProcessBuildBhyveCmd(bhyveConnPtr,
- virDomainDefPtr def, bool dryRun);
+virCommandPtr virBhyveProcessBuildBhyveCmd(virConnectPtr conn,
+ virDomainDefPtr def,
+ bool dryRun);
virCommandPtr
virBhyveProcessBuildDestroyCmd(bhyveConnPtr driver,
virDomainDefPtr def);
virCommandPtr
-virBhyveProcessBuildLoadCmd(bhyveConnPtr driver,
+virBhyveProcessBuildLoadCmd(virConnectPtr conn,
virDomainDefPtr def);
#endif /* __BHYVE_COMMAND_H__ */
if (bhyveDomainAssignAddresses(def, NULL) < 0)
goto cleanup;
- if (!(loadcmd = virBhyveProcessBuildLoadCmd(privconn, def)))
+ if (!(loadcmd = virBhyveProcessBuildLoadCmd(conn, def)))
goto cleanup;
- if (!(cmd = virBhyveProcessBuildBhyveCmd(privconn, def, true)))
+ if (!(cmd = virBhyveProcessBuildBhyveCmd(conn, def, true)))
goto cleanup;
virBufferAdd(&buf, virCommandToString(loadcmd), -1);
goto cleanup;
/* Call bhyve to start the VM */
- if (!(cmd = virBhyveProcessBuildBhyveCmd(driver,
+ if (!(cmd = virBhyveProcessBuildBhyveCmd(conn,
vm->def,
false)))
goto cleanup;
/* Now bhyve command is constructed, meaning the
* domain is ready to be started, so we can build
* and execute bhyveload command */
- if (!(load_cmd = virBhyveProcessBuildLoadCmd(driver, vm->def)))
+ if (!(load_cmd = virBhyveProcessBuildLoadCmd(conn, vm->def)))
goto cleanup;
virCommandSetOutputFD(load_cmd, &logfd);
virCommandSetErrorFD(load_cmd, &logfd);
-rpath /evil/libtool/hack/to/force/shared/lib/creation
bhyve_LDADDS = ../src/libvirt_driver_bhyve_impl.la
+if WITH_STORAGE
+bhyve_LDADDS += ../src/libvirt_driver_storage_impl.la
+endif WITH_STORAGE
bhyve_LDADDS += $(LDADDS)
bhyvexml2argvtest_SOURCES = \
bhyvexml2argvtest.c \
virDomainDefPtr vmdef = NULL;
virDomainObj vm;
virCommandPtr cmd = NULL;
+ virConnectPtr conn;
int ret = -1;
+ if (!(conn = virGetConnect()))
+ goto out;
if (!(vmdef = virDomainDefParseFile(xml, driver.caps, driver.xmlopt,
1 << VIR_DOMAIN_VIRT_BHYVE,
vm.def = vmdef;
- if (!(cmd = virBhyveProcessBuildBhyveCmd(&driver, vmdef, false)))
+ if (!(cmd = virBhyveProcessBuildBhyveCmd(conn, vmdef, false)))
goto out;
if (!(actualargv = virCommandToString(cmd)))