/* qemuDomainSecretPlainSetup:
- * @conn: Pointer to connection
* @secinfo: Pointer to secret info
* @usageType: The virSecretUsageType
* @username: username to use for authentication (may be NULL)
* Returns 0 on success, -1 on failure with error message
*/
static int
-qemuDomainSecretPlainSetup(virConnectPtr conn,
- qemuDomainSecretInfoPtr secinfo,
+qemuDomainSecretPlainSetup(qemuDomainSecretInfoPtr secinfo,
virSecretUsageType usageType,
const char *username,
virSecretLookupTypeDefPtr seclookupdef)
{
+ virConnectPtr conn;
+ int ret = -1;
+
+ conn = virGetConnectSecret();
+ if (!conn)
+ return -1;
+
secinfo->type = VIR_DOMAIN_SECRET_INFO_TYPE_PLAIN;
if (VIR_STRDUP(secinfo->s.plain.username, username) < 0)
- return -1;
+ goto cleanup;
- return virSecretGetSecretString(conn, seclookupdef, usageType,
- &secinfo->s.plain.secret,
- &secinfo->s.plain.secretlen);
+ ret = virSecretGetSecretString(conn, seclookupdef, usageType,
+ &secinfo->s.plain.secret,
+ &secinfo->s.plain.secretlen);
+
+ cleanup:
+ virObjectUnref(conn);
+ return ret;
}
/* qemuDomainSecretAESSetup:
- * @conn: Pointer to connection
* @priv: pointer to domain private object
* @secinfo: Pointer to secret info
* @srcalias: Alias of the disk/hostdev used to generate the secret alias
* Returns 0 on success, -1 on failure with error message
*/
static int
-qemuDomainSecretAESSetup(virConnectPtr conn,
- qemuDomainObjPrivatePtr priv,
+qemuDomainSecretAESSetup(qemuDomainObjPrivatePtr priv,
qemuDomainSecretInfoPtr secinfo,
const char *srcalias,
virSecretUsageType usageType,
virSecretLookupTypeDefPtr seclookupdef,
bool isLuks)
{
+ virConnectPtr conn;
int ret = -1;
uint8_t *raw_iv = NULL;
size_t ivlen = QEMU_DOMAIN_AES_IV_LEN;
uint8_t *ciphertext = NULL;
size_t ciphertextlen = 0;
+ conn = virGetConnectSecret();
+ if (!conn)
+ return -1;
+
secinfo->type = VIR_DOMAIN_SECRET_INFO_TYPE_AES;
if (VIR_STRDUP(secinfo->s.aes.username, username) < 0)
- return -1;
+ goto cleanup;
if (!(secinfo->s.aes.alias = qemuDomainGetSecretAESAlias(srcalias, isLuks)))
- return -1;
+ goto cleanup;
/* Create a random initialization vector */
if (!(raw_iv = virCryptoGenerateRandom(ivlen)))
- return -1;
+ goto cleanup;
/* Encode the IV and save that since qemu will need it */
if (!(secinfo->s.aes.iv = virStringEncodeBase64(raw_iv, ivlen)))
VIR_DISPOSE_N(raw_iv, ivlen);
VIR_DISPOSE_N(secret, secretlen);
VIR_DISPOSE_N(ciphertext, ciphertextlen);
-
+ virObjectUnref(conn);
return ret;
}
/* qemuDomainSecretSetup:
- * @conn: Pointer to connection
* @priv: pointer to domain private object
* @secinfo: Pointer to secret info
* @srcalias: Alias of the disk/hostdev used to generate the secret alias
* Returns 0 on success, -1 on failure
*/
static int
-qemuDomainSecretSetup(virConnectPtr conn,
- qemuDomainObjPrivatePtr priv,
+qemuDomainSecretSetup(qemuDomainObjPrivatePtr priv,
qemuDomainSecretInfoPtr secinfo,
const char *srcalias,
virSecretUsageType usageType,
(usageType == VIR_SECRET_USAGE_TYPE_ISCSI && iscsiHasPS) ||
usageType == VIR_SECRET_USAGE_TYPE_VOLUME ||
usageType == VIR_SECRET_USAGE_TYPE_TLS)) {
- if (qemuDomainSecretAESSetup(conn, priv, secinfo, srcalias,
+ if (qemuDomainSecretAESSetup(priv, secinfo, srcalias,
usageType, username,
seclookupdef, isLuks) < 0)
return -1;
} else {
- if (qemuDomainSecretPlainSetup(conn, secinfo, usageType,
+ if (qemuDomainSecretPlainSetup(secinfo, usageType,
username, seclookupdef) < 0)
return -1;
}
/* qemuDomainSecretInfoNew:
- * @conn: Pointer to connection
* @priv: pointer to domain private object
* @srcAlias: Alias base to use for TLS object
* @usageType: Secret usage type
* to eventually free @secinfo.
*/
static qemuDomainSecretInfoPtr
-qemuDomainSecretInfoNew(virConnectPtr conn,
- qemuDomainObjPrivatePtr priv,
+qemuDomainSecretInfoNew(qemuDomainObjPrivatePtr priv,
const char *srcAlias,
virSecretUsageType usageType,
const char *username,
if (VIR_ALLOC(secinfo) < 0)
return NULL;
- if (qemuDomainSecretSetup(conn, priv, secinfo, srcAlias, usageType,
+ if (qemuDomainSecretSetup(priv, secinfo, srcAlias, usageType,
username, lookupDef, isLuks) < 0)
goto error;
/**
* qemuDomainSecretInfoTLSNew:
- * @conn: Pointer to connection
* @priv: pointer to domain private object
* @srcAlias: Alias base to use for TLS object
* @secretUUID: Provide a secretUUID value to look up/create the secretInfo
* Returns qemuDomainSecretInfoPtr or NULL on error.
*/
qemuDomainSecretInfoPtr
-qemuDomainSecretInfoTLSNew(virConnectPtr conn,
- qemuDomainObjPrivatePtr priv,
+qemuDomainSecretInfoTLSNew(qemuDomainObjPrivatePtr priv,
const char *srcAlias,
const char *secretUUID)
{
}
seclookupdef.type = VIR_SECRET_LOOKUP_TYPE_UUID;
- return qemuDomainSecretInfoNew(conn, priv, srcAlias,
+ return qemuDomainSecretInfoNew(priv, srcAlias,
VIR_SECRET_USAGE_TYPE_TLS, NULL,
&seclookupdef, false);
}
/**
* qemuDomainSecretStorageSourcePrepare:
- * @conn: connection object - for secret lookup
* @priv: domain private object
* @src: storage source struct to setup
* @authalias: prefix of the alias for secret holding authentication data
* Returns 0 on success; -1 on error while reporting an libvirt error.
*/
static int
-qemuDomainSecretStorageSourcePrepare(virConnectPtr conn,
- qemuDomainObjPrivatePtr priv,
+qemuDomainSecretStorageSourcePrepare(qemuDomainObjPrivatePtr priv,
virStorageSourcePtr src,
const char *authalias,
const char *encalias)
usageType = VIR_SECRET_USAGE_TYPE_CEPH;
if (!(srcPriv->secinfo =
- qemuDomainSecretInfoNew(conn, priv, authalias,
+ qemuDomainSecretInfoNew(priv, authalias,
usageType, src->auth->username,
&src->auth->seclookupdef, false)))
return -1;
if (hasEnc) {
if (!(srcPriv->encinfo =
- qemuDomainSecretInfoNew(conn, priv, encalias,
+ qemuDomainSecretInfoNew(priv, encalias,
VIR_SECRET_USAGE_TYPE_VOLUME, NULL,
&src->encryption->secrets[0]->seclookupdef,
true)))
/* qemuDomainSecretDiskPrepare:
- * @conn: Pointer to connection
* @priv: pointer to domain private object
* @disk: Pointer to a disk definition
*
*/
static int
-qemuDomainSecretDiskPrepare(virConnectPtr conn,
- qemuDomainObjPrivatePtr priv,
+qemuDomainSecretDiskPrepare(qemuDomainObjPrivatePtr priv,
virDomainDiskDefPtr disk)
{
- return qemuDomainSecretStorageSourcePrepare(conn, priv, disk->src,
+ return qemuDomainSecretStorageSourcePrepare(priv, disk->src,
disk->info.alias,
disk->info.alias);
}
/* qemuDomainSecretHostdevPrepare:
- * @conn: Pointer to connection
* @priv: pointer to domain private object
* @hostdev: Pointer to a hostdev definition
*
* Returns 0 on success, -1 on failure
*/
int
-qemuDomainSecretHostdevPrepare(virConnectPtr conn,
- qemuDomainObjPrivatePtr priv,
+qemuDomainSecretHostdevPrepare(qemuDomainObjPrivatePtr priv,
virDomainHostdevDefPtr hostdev)
{
if (virHostdevIsSCSIDevice(hostdev)) {
srcPriv = QEMU_DOMAIN_STORAGE_SOURCE_PRIVATE(src);
if (!(srcPriv->secinfo =
- qemuDomainSecretInfoNew(conn, priv, hostdev->info->alias,
+ qemuDomainSecretInfoNew(priv, hostdev->info->alias,
VIR_SECRET_USAGE_TYPE_ISCSI,
src->auth->username,
&src->auth->seclookupdef,
/* qemuDomainSecretChardevPrepare:
- * @conn: Pointer to connection
* @cfg: Pointer to driver config object
* @priv: pointer to domain private object
* @chrAlias: Alias of the chr device
* Returns 0 on success, -1 on failure
*/
int
-qemuDomainSecretChardevPrepare(virConnectPtr conn,
- virQEMUDriverConfigPtr cfg,
+qemuDomainSecretChardevPrepare(virQEMUDriverConfigPtr cfg,
qemuDomainObjPrivatePtr priv,
const char *chrAlias,
virDomainChrSourceDefPtr dev)
return -1;
chrSourcePriv->secinfo =
- qemuDomainSecretInfoTLSNew(conn, priv, charAlias,
+ qemuDomainSecretInfoTLSNew(priv, charAlias,
cfg->chardevTLSx509secretUUID);
VIR_FREE(charAlias);
/* qemuDomainSecretPrepare:
- * @conn: Pointer to connection
* @driver: Pointer to driver object
* @vm: Domain object
*
* Returns 0 on success, -1 on failure with error message set
*/
int
-qemuDomainSecretPrepare(virConnectPtr conn,
- virQEMUDriverPtr driver,
+qemuDomainSecretPrepare(virQEMUDriverPtr driver,
virDomainObjPtr vm)
{
qemuDomainObjPrivatePtr priv = vm->privateData;
/* disk secrets are prepared when preparing disks */
for (i = 0; i < vm->def->nhostdevs; i++) {
- if (qemuDomainSecretHostdevPrepare(conn, priv,
+ if (qemuDomainSecretHostdevPrepare(priv,
vm->def->hostdevs[i]) < 0)
goto cleanup;
}
for (i = 0; i < vm->def->nserials; i++) {
- if (qemuDomainSecretChardevPrepare(conn, cfg, priv,
+ if (qemuDomainSecretChardevPrepare(cfg, priv,
vm->def->serials[i]->info.alias,
vm->def->serials[i]->source) < 0)
goto cleanup;
}
for (i = 0; i < vm->def->nparallels; i++) {
- if (qemuDomainSecretChardevPrepare(conn, cfg, priv,
+ if (qemuDomainSecretChardevPrepare(cfg, priv,
vm->def->parallels[i]->info.alias,
vm->def->parallels[i]->source) < 0)
goto cleanup;
}
for (i = 0; i < vm->def->nchannels; i++) {
- if (qemuDomainSecretChardevPrepare(conn, cfg, priv,
+ if (qemuDomainSecretChardevPrepare(cfg, priv,
vm->def->channels[i]->info.alias,
vm->def->channels[i]->source) < 0)
goto cleanup;
}
for (i = 0; i < vm->def->nconsoles; i++) {
- if (qemuDomainSecretChardevPrepare(conn, cfg, priv,
+ if (qemuDomainSecretChardevPrepare(cfg, priv,
vm->def->consoles[i]->info.alias,
vm->def->consoles[i]->source) < 0)
goto cleanup;
for (i = 0; i < vm->def->nsmartcards; i++)
if (vm->def->smartcards[i]->type ==
VIR_DOMAIN_SMARTCARD_TYPE_PASSTHROUGH &&
- qemuDomainSecretChardevPrepare(conn, cfg, priv,
+ qemuDomainSecretChardevPrepare(cfg, priv,
vm->def->smartcards[i]->info.alias,
vm->def->smartcards[i]->data.passthru) < 0)
goto cleanup;
for (i = 0; i < vm->def->nrngs; i++) {
if (vm->def->rngs[i]->backend == VIR_DOMAIN_RNG_BACKEND_EGD &&
- qemuDomainSecretChardevPrepare(conn, cfg, priv,
+ qemuDomainSecretChardevPrepare(cfg, priv,
vm->def->rngs[i]->info.alias,
vm->def->rngs[i]->source.chardev) < 0)
goto cleanup;
}
for (i = 0; i < vm->def->nredirdevs; i++) {
- if (qemuDomainSecretChardevPrepare(conn, cfg, priv,
+ if (qemuDomainSecretChardevPrepare(cfg, priv,
vm->def->redirdevs[i]->info.alias,
vm->def->redirdevs[i]->source) < 0)
goto cleanup;
int
-qemuDomainPrepareDiskSource(virConnectPtr conn,
- virDomainDiskDefPtr disk,
+qemuDomainPrepareDiskSource(virDomainDiskDefPtr disk,
qemuDomainObjPrivatePtr priv,
virQEMUDriverConfigPtr cfg)
{
if (qemuDomainPrepareDiskSourceTLS(disk->src, cfg) < 0)
return -1;
- if (qemuDomainSecretDiskPrepare(conn, priv, disk) < 0)
+ if (qemuDomainSecretDiskPrepare(priv, disk) < 0)
return -1;
if (disk->src->type == VIR_STORAGE_TYPE_NETWORK &&
ATTRIBUTE_NONNULL(1);
qemuDomainSecretInfoPtr
-qemuDomainSecretInfoTLSNew(virConnectPtr conn,
- qemuDomainObjPrivatePtr priv,
+qemuDomainSecretInfoTLSNew(qemuDomainObjPrivatePtr priv,
const char *srcAlias,
const char *secretUUID);
void qemuDomainSecretHostdevDestroy(virDomainHostdevDefPtr disk)
ATTRIBUTE_NONNULL(1);
-int qemuDomainSecretHostdevPrepare(virConnectPtr conn,
- qemuDomainObjPrivatePtr priv,
+int qemuDomainSecretHostdevPrepare(qemuDomainObjPrivatePtr priv,
virDomainHostdevDefPtr hostdev)
- ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2) ATTRIBUTE_NONNULL(3);
+ ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2);
void qemuDomainSecretChardevDestroy(virDomainChrSourceDefPtr dev)
ATTRIBUTE_NONNULL(1);
-int qemuDomainSecretChardevPrepare(virConnectPtr conn,
- virQEMUDriverConfigPtr cfg,
+int qemuDomainSecretChardevPrepare(virQEMUDriverConfigPtr cfg,
qemuDomainObjPrivatePtr priv,
const char *chrAlias,
virDomainChrSourceDefPtr dev)
ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2) ATTRIBUTE_NONNULL(3)
- ATTRIBUTE_NONNULL(4) ATTRIBUTE_NONNULL(5);
+ ATTRIBUTE_NONNULL(4);
void qemuDomainSecretDestroy(virDomainObjPtr vm)
ATTRIBUTE_NONNULL(1);
-int qemuDomainSecretPrepare(virConnectPtr conn,
- virQEMUDriverPtr driver,
+int qemuDomainSecretPrepare(virQEMUDriverPtr driver,
virDomainObjPtr vm)
- ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2) ATTRIBUTE_NONNULL(3);
+ ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2);
int qemuDomainDefValidateDiskLunSource(const virStorageSource *src)
ATTRIBUTE_NONNULL(1);
qemuDomainAsyncJob asyncJob);
int
-qemuDomainPrepareDiskSource(virConnectPtr conn,
- virDomainDiskDefPtr disk,
+qemuDomainPrepareDiskSource(virDomainDiskDefPtr disk,
qemuDomainObjPrivatePtr priv,
virQEMUDriverConfigPtr cfg);
static int
qemuDomainAttachDeviceLive(virDomainObjPtr vm,
virDomainDeviceDefPtr dev,
- virConnectPtr conn,
virQEMUDriverPtr driver)
{
int ret = -1;
switch ((virDomainDeviceType) dev->type) {
case VIR_DOMAIN_DEVICE_DISK:
qemuDomainObjCheckDiskTaint(driver, vm, dev->data.disk, NULL);
- ret = qemuDomainAttachDeviceDiskLive(conn, driver, vm, dev);
+ ret = qemuDomainAttachDeviceDiskLive(driver, vm, dev);
if (!ret) {
alias = dev->data.disk->info.alias;
dev->data.disk = NULL;
case VIR_DOMAIN_DEVICE_HOSTDEV:
qemuDomainObjCheckHostdevTaint(driver, vm, dev->data.hostdev, NULL);
- ret = qemuDomainAttachHostDevice(conn, driver, vm,
+ ret = qemuDomainAttachHostDevice(driver, vm,
dev->data.hostdev);
if (!ret) {
alias = dev->data.hostdev->info->alias;
break;
case VIR_DOMAIN_DEVICE_REDIRDEV:
- ret = qemuDomainAttachRedirdevDevice(conn, driver, vm,
+ ret = qemuDomainAttachRedirdevDevice(driver, vm,
dev->data.redirdev);
if (!ret) {
alias = dev->data.redirdev->info.alias;
break;
case VIR_DOMAIN_DEVICE_CHR:
- ret = qemuDomainAttachChrDevice(conn, driver, vm,
+ ret = qemuDomainAttachChrDevice(driver, vm,
dev->data.chr);
if (!ret) {
alias = dev->data.chr->info.alias;
break;
case VIR_DOMAIN_DEVICE_RNG:
- ret = qemuDomainAttachRNGDevice(conn, driver, vm,
+ ret = qemuDomainAttachRNGDevice(driver, vm,
dev->data.rng);
if (!ret) {
alias = dev->data.rng->info.alias;
}
static int
-qemuDomainAttachDeviceLiveAndConfig(virConnectPtr conn,
- virDomainObjPtr vm,
+qemuDomainAttachDeviceLiveAndConfig(virDomainObjPtr vm,
virQEMUDriverPtr driver,
const char *xml,
unsigned int flags)
if (virDomainDefCompatibleDevice(vm->def, dev_copy) < 0)
goto cleanup;
- if ((ret = qemuDomainAttachDeviceLive(vm, dev_copy, conn, driver)) < 0)
+ if ((ret = qemuDomainAttachDeviceLive(vm, dev_copy, driver)) < 0)
goto cleanup;
/*
* update domain status forcibly because the domain status may be
if (virDomainObjUpdateModificationImpact(vm, &flags) < 0)
goto endjob;
- if (qemuDomainAttachDeviceLiveAndConfig(dom->conn, vm, driver, xml, flags) < 0)
+ if (qemuDomainAttachDeviceLiveAndConfig(vm, driver, xml, flags) < 0)
goto endjob;
ret = 0;
* Attaches disk to a VM. This function aggregates common code for all bus types.
* In cases when the VM crashed while adding the disk, -2 is returned. */
static int
-qemuDomainAttachDiskGeneric(virConnectPtr conn,
- virQEMUDriverPtr driver,
+qemuDomainAttachDiskGeneric(virQEMUDriverPtr driver,
virDomainObjPtr vm,
virDomainDiskDefPtr disk)
{
if (qemuAssignDeviceDiskAlias(vm->def, disk) < 0)
goto error;
- if (qemuDomainPrepareDiskSource(conn, disk, priv, cfg) < 0)
+ if (qemuDomainPrepareDiskSource(disk, priv, cfg) < 0)
goto error;
srcPriv = QEMU_DOMAIN_STORAGE_SOURCE_PRIVATE(disk->src);
static int
-qemuDomainAttachVirtioDiskDevice(virConnectPtr conn,
- virQEMUDriverPtr driver,
+qemuDomainAttachVirtioDiskDevice(virQEMUDriverPtr driver,
virDomainObjPtr vm,
virDomainDiskDefPtr disk)
{
if (qemuDomainEnsureVirtioAddress(&releaseaddr, vm, &dev, disk->dst) < 0)
return -1;
- if ((rv = qemuDomainAttachDiskGeneric(conn, driver, vm, disk)) < 0) {
+ if ((rv = qemuDomainAttachDiskGeneric(driver, vm, disk)) < 0) {
if (rv == -1 && releaseaddr)
qemuDomainReleaseDeviceAddress(vm, &disk->info, disk->dst);
static int
-qemuDomainAttachSCSIDisk(virConnectPtr conn,
- virQEMUDriverPtr driver,
+qemuDomainAttachSCSIDisk(virQEMUDriverPtr driver,
virDomainObjPtr vm,
virDomainDiskDefPtr disk)
{
return -1;
}
- if (qemuDomainAttachDiskGeneric(conn, driver, vm, disk) < 0)
+ if (qemuDomainAttachDiskGeneric(driver, vm, disk) < 0)
return -1;
return 0;
static int
-qemuDomainAttachUSBMassStorageDevice(virConnectPtr conn,
- virQEMUDriverPtr driver,
+qemuDomainAttachUSBMassStorageDevice(virQEMUDriverPtr driver,
virDomainObjPtr vm,
virDomainDiskDefPtr disk)
{
return -1;
}
- if (qemuDomainAttachDiskGeneric(conn, driver, vm, disk) < 0) {
+ if (qemuDomainAttachDiskGeneric(driver, vm, disk) < 0) {
virDomainUSBAddressRelease(priv->usbaddrs, &disk->info);
return -1;
}
int
-qemuDomainAttachDeviceDiskLive(virConnectPtr conn,
- virQEMUDriverPtr driver,
+qemuDomainAttachDeviceDiskLive(virQEMUDriverPtr driver,
virDomainObjPtr vm,
virDomainDeviceDefPtr dev)
{
_("disk device='lun' is not supported for usb bus"));
break;
}
- ret = qemuDomainAttachUSBMassStorageDevice(conn, driver, vm, disk);
+ ret = qemuDomainAttachUSBMassStorageDevice(driver, vm, disk);
break;
case VIR_DOMAIN_DISK_BUS_VIRTIO:
- ret = qemuDomainAttachVirtioDiskDevice(conn, driver, vm, disk);
+ ret = qemuDomainAttachVirtioDiskDevice(driver, vm, disk);
break;
case VIR_DOMAIN_DISK_BUS_SCSI:
- ret = qemuDomainAttachSCSIDisk(conn, driver, vm, disk);
+ ret = qemuDomainAttachSCSIDisk(driver, vm, disk);
break;
case VIR_DOMAIN_DISK_BUS_IDE:
* as a hostdev (the hostdev code will reach over into the
* netdev-specific code as appropriate), then also added to
* the nets list (see cleanup:) if successful.
- *
- * qemuDomainAttachHostDevice uses a connection to resolve
- * a SCSI hostdev secret, which is not this case, so pass NULL.
*/
- ret = qemuDomainAttachHostDevice(NULL, driver, vm,
+ ret = qemuDomainAttachHostDevice(driver, vm,
virDomainNetGetActualHostdev(net));
goto cleanup;
break;
static int
-qemuDomainAddChardevTLSObjects(virConnectPtr conn,
- virQEMUDriverPtr driver,
+qemuDomainAddChardevTLSObjects(virQEMUDriverPtr driver,
virDomainObjPtr vm,
virDomainChrSourceDefPtr dev,
char *devAlias,
goto cleanup;
}
- if (qemuDomainSecretChardevPrepare(conn, cfg, priv, devAlias, dev) < 0)
+ if (qemuDomainSecretChardevPrepare(cfg, priv, devAlias, dev) < 0)
goto cleanup;
if ((chrSourcePriv = QEMU_DOMAIN_CHR_SOURCE_PRIVATE(dev)))
}
-int qemuDomainAttachRedirdevDevice(virConnectPtr conn,
- virQEMUDriverPtr driver,
+int qemuDomainAttachRedirdevDevice(virQEMUDriverPtr driver,
virDomainObjPtr vm,
virDomainRedirdevDefPtr redirdev)
{
if (VIR_REALLOC_N(def->redirdevs, def->nredirdevs+1) < 0)
goto cleanup;
- if (qemuDomainAddChardevTLSObjects(conn, driver, vm, redirdev->source,
+ if (qemuDomainAddChardevTLSObjects(driver, vm, redirdev->source,
redirdev->info.alias, charAlias,
&tlsAlias, &secAlias) < 0)
goto audit;
return 0;
}
-int qemuDomainAttachChrDevice(virConnectPtr conn,
- virQEMUDriverPtr driver,
+int qemuDomainAttachChrDevice(virQEMUDriverPtr driver,
virDomainObjPtr vm,
virDomainChrDefPtr chr)
{
if (qemuDomainChrPreInsert(vmdef, chr) < 0)
goto cleanup;
- if (qemuDomainAddChardevTLSObjects(conn, driver, vm, dev,
+ if (qemuDomainAddChardevTLSObjects(driver, vm, dev,
chr->info.alias, charAlias,
&tlsAlias, &secAlias) < 0)
goto audit;
int
-qemuDomainAttachRNGDevice(virConnectPtr conn,
- virQEMUDriverPtr driver,
+qemuDomainAttachRNGDevice(virQEMUDriverPtr driver,
virDomainObjPtr vm,
virDomainRNGDefPtr rng)
{
goto cleanup;
if (rng->backend == VIR_DOMAIN_RNG_BACKEND_EGD) {
- if (qemuDomainAddChardevTLSObjects(conn, driver, vm,
+ if (qemuDomainAddChardevTLSObjects(driver, vm,
rng->source.chardev,
rng->info.alias, charAlias,
&tlsAlias, &secAlias) < 0)
static int
-qemuDomainAttachHostSCSIDevice(virConnectPtr conn,
- virQEMUDriverPtr driver,
+qemuDomainAttachHostSCSIDevice(virQEMUDriverPtr driver,
virDomainObjPtr vm,
virDomainHostdevDefPtr hostdev)
{
if (qemuAssignDeviceHostdevAlias(vm->def, &hostdev->info->alias, -1) < 0)
goto cleanup;
- if (qemuDomainSecretHostdevPrepare(conn, priv, hostdev) < 0)
+ if (qemuDomainSecretHostdevPrepare(priv, hostdev) < 0)
goto cleanup;
if (scsisrc->protocol == VIR_DOMAIN_HOSTDEV_SCSI_PROTOCOL_TYPE_ISCSI) {
int
-qemuDomainAttachHostDevice(virConnectPtr conn,
- virQEMUDriverPtr driver,
+qemuDomainAttachHostDevice(virQEMUDriverPtr driver,
virDomainObjPtr vm,
virDomainHostdevDefPtr hostdev)
{
break;
case VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_SCSI:
- if (qemuDomainAttachHostSCSIDevice(conn, driver, vm,
+ if (qemuDomainAttachHostSCSIDevice(driver, vm,
hostdev) < 0)
goto error;
break;
int qemuDomainAttachControllerDevice(virQEMUDriverPtr driver,
virDomainObjPtr vm,
virDomainControllerDefPtr controller);
-int qemuDomainAttachDeviceDiskLive(virConnectPtr conn,
- virQEMUDriverPtr driver,
+int qemuDomainAttachDeviceDiskLive(virQEMUDriverPtr driver,
virDomainObjPtr vm,
virDomainDeviceDefPtr dev);
int qemuDomainAttachNetDevice(virQEMUDriverPtr driver,
virDomainObjPtr vm,
virDomainNetDefPtr net);
-int qemuDomainAttachRedirdevDevice(virConnectPtr conn,
- virQEMUDriverPtr driver,
+int qemuDomainAttachRedirdevDevice(virQEMUDriverPtr driver,
virDomainObjPtr vm,
virDomainRedirdevDefPtr hostdev);
-int qemuDomainAttachHostDevice(virConnectPtr conn,
- virQEMUDriverPtr driver,
+int qemuDomainAttachHostDevice(virQEMUDriverPtr driver,
virDomainObjPtr vm,
virDomainHostdevDefPtr hostdev);
int qemuDomainAttachShmemDevice(virQEMUDriverPtr driver,
int qemuDomainDetachLease(virQEMUDriverPtr driver,
virDomainObjPtr vm,
virDomainLeaseDefPtr lease);
-int qemuDomainAttachChrDevice(virConnectPtr conn,
- virQEMUDriverPtr driver,
+int qemuDomainAttachChrDevice(virQEMUDriverPtr driver,
virDomainObjPtr vm,
virDomainChrDefPtr chr);
int qemuDomainDetachChrDevice(virQEMUDriverPtr driver,
virDomainObjPtr vm,
virDomainChrDefPtr chr);
-int qemuDomainAttachRNGDevice(virConnectPtr conn,
- virQEMUDriverPtr driver,
+int qemuDomainAttachRNGDevice(virQEMUDriverPtr driver,
virDomainObjPtr vm,
virDomainRNGDefPtr rng);
int qemuDomainDetachRNGDevice(virQEMUDriverPtr driver,
/* qemuMigrationCheckSetupTLS
- * @conn: Connection pointer
* @driver: pointer to qemu driver
* @vm: domain object
* @cfg: configuration pointer
* Returns 0 on success, -1 on error/failure
*/
static int
-qemuMigrationCheckSetupTLS(virConnectPtr conn,
- virQEMUDriverPtr driver,
+qemuMigrationCheckSetupTLS(virQEMUDriverPtr driver,
virQEMUDriverConfigPtr cfg,
virDomainObjPtr vm,
qemuDomainAsyncJob asyncJob)
/* If there's a secret, then grab/store it now using the connection */
if (cfg->migrateTLSx509secretUUID &&
!(priv->migSecinfo =
- qemuDomainSecretInfoTLSNew(conn, priv, QEMU_MIGRATION_TLS_ALIAS_BASE,
+ qemuDomainSecretInfoTLSNew(priv, QEMU_MIGRATION_TLS_ALIAS_BASE,
cfg->migrateTLSx509secretUUID)))
return -1;
if (flags & VIR_MIGRATE_TLS) {
cfg = virQEMUDriverGetConfig(driver);
- if (qemuMigrationCheckSetupTLS(conn, driver, cfg, vm, asyncJob) < 0)
+ if (qemuMigrationCheckSetupTLS(driver, cfg, vm, asyncJob) < 0)
goto endjob;
}
* set the migration TLS parameters */
if (flags & VIR_MIGRATE_TLS) {
cfg = virQEMUDriverGetConfig(driver);
- if (qemuMigrationCheckSetupTLS(dconn, driver, cfg, vm,
+ if (qemuMigrationCheckSetupTLS(driver, cfg, vm,
QEMU_ASYNC_JOB_MIGRATION_IN) < 0)
goto stopjob;
}
static int
-qemuProcessGetVolumeQcowPassphrase(virConnectPtr conn,
- virDomainDiskDefPtr disk,
+qemuProcessGetVolumeQcowPassphrase(virDomainDiskDefPtr disk,
char **secretRet,
size_t *secretLen)
{
+ virConnectPtr conn = NULL;
char *passphrase;
unsigned char *data;
size_t size;
}
enc = disk->src->encryption;
- if (!conn) {
- virReportError(VIR_ERR_INTERNAL_ERROR,
- "%s", _("cannot find secrets without a connection"));
+ if (!(conn = virGetConnectSecret()))
goto cleanup;
- }
-
- if (conn->secretDriver == NULL ||
- conn->secretDriver->secretLookupByUUID == NULL ||
- conn->secretDriver->secretGetValue == NULL) {
- virReportError(VIR_ERR_OPERATION_INVALID, "%s",
- _("secret storage not supported"));
- goto cleanup;
- }
if (enc->format != VIR_STORAGE_ENCRYPTION_FORMAT_QCOW ||
enc->nsecrets != 1 ||
ret = 0;
cleanup:
+ virObjectUnref(conn);
return ret;
}
size_t *secretLen,
void *opaque ATTRIBUTE_UNUSED)
{
- virConnectPtr conn = NULL;
virDomainDiskDefPtr disk;
int ret = -1;
goto cleanup;
}
- conn = virGetConnectSecret();
- ret = qemuProcessGetVolumeQcowPassphrase(conn, disk, secretRet, secretLen);
+ ret = qemuProcessGetVolumeQcowPassphrase(disk, secretRet, secretLen);
cleanup:
- virObjectUnref(conn);
virObjectUnlock(vm);
return ret;
}
static int
-qemuProcessInitPasswords(virConnectPtr conn,
- virQEMUDriverPtr driver,
+qemuProcessInitPasswords(virQEMUDriverPtr driver,
virDomainObjPtr vm,
int asyncJob)
{
continue;
VIR_FREE(secret);
- if (qemuProcessGetVolumeQcowPassphrase(conn,
- vm->def->disks[i],
+ if (qemuProcessGetVolumeQcowPassphrase(vm->def->disks[i],
&secret, &secretLen) < 0)
goto cleanup;
static int
-qemuProcessPrepareDomainStorage(virConnectPtr conn,
- virQEMUDriverPtr driver,
+qemuProcessPrepareDomainStorage(virQEMUDriverPtr driver,
virDomainObjPtr vm,
qemuDomainObjPrivatePtr priv,
virQEMUDriverConfigPtr cfg,
continue;
}
- if (qemuDomainPrepareDiskSource(conn, disk, priv, cfg) < 0)
+ if (qemuDomainPrepareDiskSource(disk, priv, cfg) < 0)
return -1;
}
goto cleanup;
VIR_DEBUG("Setting up storage");
- if (qemuProcessPrepareDomainStorage(conn, driver, vm, priv, cfg, flags) < 0)
+ if (qemuProcessPrepareDomainStorage(driver, vm, priv, cfg, flags) < 0)
goto cleanup;
VIR_DEBUG("Prepare chardev source backends for TLS");
qemuDomainPrepareChardevSource(vm->def, cfg);
VIR_DEBUG("Add secrets to hostdevs and chardevs");
- if (qemuDomainSecretPrepare(conn, driver, vm) < 0)
+ if (qemuDomainSecretPrepare(driver, vm) < 0)
goto cleanup;
for (i = 0; i < vm->def->nchannels; i++) {
goto cleanup;
VIR_DEBUG("Setting any required VM passwords");
- if (qemuProcessInitPasswords(conn, driver, vm, asyncJob) < 0)
+ if (qemuProcessInitPasswords(driver, vm, asyncJob) < 0)
goto cleanup;
/* set default link states */
/* conn in only used for storage pool and secrets lookup so as long
* as we don't use any of them, passing NULL should be safe
*/
- ret = qemuDomainAttachDeviceDiskLive(NULL, &driver, vm, dev);
+ ret = qemuDomainAttachDeviceDiskLive(&driver, vm, dev);
break;
case VIR_DOMAIN_DEVICE_CHR:
- ret = qemuDomainAttachChrDevice(NULL, &driver, vm, dev->data.chr);
+ ret = qemuDomainAttachChrDevice(&driver, vm, dev->data.chr);
break;
case VIR_DOMAIN_DEVICE_SHMEM:
ret = qemuDomainAttachShmemDevice(&driver, vm, dev->data.shmem);