#define VIR_FROM_THIS VIR_FROM_PARALLELS
#define PRLSRVCTL "prlsrvctl"
+static virDomainDiskBus vz6DiskBuses[] = {VIR_DOMAIN_DISK_BUS_IDE,
+ VIR_DOMAIN_DISK_BUS_SCSI,
+ VIR_DOMAIN_DISK_BUS_SATA,
+ VIR_DOMAIN_DISK_BUS_LAST};
+
+static virDomainDiskBus vz7DiskBuses[] = {VIR_DOMAIN_DISK_BUS_IDE,
+ VIR_DOMAIN_DISK_BUS_SCSI,
+ VIR_DOMAIN_DISK_BUS_LAST};
+
/**
* vzDomObjFromDomain:
* @domain: Domain pointer that has to be looked up
return NULL;
}
+static void
+vzInitCaps(unsigned long vzVersion, vzCapabilities *vzCaps)
+{
+ if (vzVersion < VIRTUOZZO_VER_7) {
+ vzCaps->ctDiskFormat = VIR_STORAGE_FILE_PLOOP;
+ vzCaps->vmDiskFormat = VIR_STORAGE_FILE_PLOOP;
+ vzCaps->diskBuses = vz6DiskBuses;
+ } else {
+ vzCaps->ctDiskFormat = VIR_STORAGE_FILE_PLOOP;
+ vzCaps->vmDiskFormat = VIR_STORAGE_FILE_QCOW2;
+ vzCaps->diskBuses = vz7DiskBuses;
+ }
+}
+
int
vzInitVersion(vzConnPtr privconn)
{
goto cleanup;
}
+ vzInitCaps(privconn->vzVersion, &privconn->vzCaps);
ret = 0;
cleanup:
# define PARALLELS_DOMAIN_ROUTED_NETWORK_NAME "Routed"
# define PARALLELS_DOMAIN_BRIDGED_NETWORK_NAME "Bridged"
+# define VIRTUOZZO_VER_7 ((unsigned long) 7000000)
+
+struct _vzCapabilities {
+ virStorageFileFormat vmDiskFormat;
+ virStorageFileFormat ctDiskFormat;
+ virDomainDiskBus *diskBuses;
+};
+typedef struct _vzCapabilities vzCapabilities;
+typedef struct _vzCapabilities *vzCapabilitiesPtr;
struct _vzConn {
virMutex lock;
/* Immutable pointer, self-locking APIs */
virConnectCloseCallbackDataPtr closeCallback;
unsigned long vzVersion;
+ vzCapabilities vzCaps;
};
typedef struct _vzConn vzConn;