From nobody Tue Apr 30 02:39:32 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 205.139.110.61 as permitted sender) client-ip=205.139.110.61; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-1.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 205.139.110.61 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1583771028; cv=none; d=zohomail.com; s=zohoarc; b=IbRpg9PnktH5WbUAMocvtuysyXI+djlkbx7uVytau2L4JMbgEUGrcSn7IixwIpa/VBCCuLzrUiMhNETXM2YWma4HrAQfMszvdv86nbi0ei7zleQ9wLrFTXXo1kvh5Hziby8B0sA9w+HvdPAVSttq7TAvTmVGO0h6Yx+BsVN/kTk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1583771028; h=Content-Type:Content-Transfer-Encoding:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=bHlkvYgPjf0pkxkTaq0ktzirx6cThA54lkgHHNzoFHQ=; b=Erpmb5ag6xycPeqDLl5hjI+Wwhq621tOsNXmnCDvNvHWBZ5D4wreZyDGn5/sr8HxiW9QPB5DGv53FtBVEiwlUgEanWfcmsQPdse0oxNodnG84fHOYrhhSvEf9TVGlXMCWniAsXEyDR0Bb3b2DI2Lm8T5d9Ksm3EhAb+ml/kWnxU= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 205.139.110.61 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass header.from= (p=none dis=none) header.from= Return-Path: Received: from us-smtp-1.mimecast.com (us-smtp-1.mimecast.com [205.139.110.61]) by mx.zohomail.com with SMTPS id 1583771028991426.81490610636376; Mon, 9 Mar 2020 09:23:48 -0700 (PDT) Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-12-IvbmdNUVP8-GMbPuQLlpZw-1; Mon, 09 Mar 2020 12:23:45 -0400 Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 6C02C1088382; Mon, 9 Mar 2020 16:23:39 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id DCB1760C05; Mon, 9 Mar 2020 16:23:38 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id 8F79F86A0D; Mon, 9 Mar 2020 16:23:38 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id 029GNFFZ020678 for ; Mon, 9 Mar 2020 12:23:15 -0400 Received: by smtp.corp.redhat.com (Postfix) id 82C1790779; Mon, 9 Mar 2020 16:23:15 +0000 (UTC) Received: from angien.redhat.com (unknown [10.43.2.48]) by smtp.corp.redhat.com (Postfix) with ESMTP id 08E949051C for ; Mon, 9 Mar 2020 16:23:14 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1583771027; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=bHlkvYgPjf0pkxkTaq0ktzirx6cThA54lkgHHNzoFHQ=; b=a3VnqVS7oulKz7rKCJrjynrn+kAYQIKGfLVf0r4er9ke1iPSa9LcvCjQzfSKLQXykfuG7v arX8/VnwPTlBnA2UHCjdVh4NPvtDofkenzFRPO2Q9E1OmFHKARAvWgFZNJt6X5VbpfkikG Xd4xdnnmwoXN1/Qj4NvUO3EZeXKy6Yg= X-MC-Unique: IvbmdNUVP8-GMbPuQLlpZw-1 From: Peter Krempa To: libvir-list@redhat.com Subject: [PATCH 01/30] qemuBlockStorageSourceDetachPrepare: Get rid of cleanup section Date: Mon, 9 Mar 2020 17:22:41 +0100 Message-Id: In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 X-loop: libvir-list@redhat.com X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.12 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) Content-Type: text/plain; charset="utf-8" Use g_new0 to completely avoid the 'cleanup' labe. Signed-off-by: Peter Krempa Reviewed-by: J=C3=A1n Tomko --- src/qemu/qemu_block.c | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/src/qemu/qemu_block.c b/src/qemu/qemu_block.c index 152c73f1bf..0357815b07 100644 --- a/src/qemu/qemu_block.c +++ b/src/qemu/qemu_block.c @@ -1734,10 +1734,8 @@ qemuBlockStorageSourceDetachPrepare(virStorageSource= Ptr src, { qemuDomainStorageSourcePrivatePtr srcpriv =3D QEMU_DOMAIN_STORAGE_SOUR= CE_PRIVATE(src); g_autoptr(qemuBlockStorageSourceAttachData) data =3D NULL; - qemuBlockStorageSourceAttachDataPtr ret =3D NULL; - if (VIR_ALLOC(data) < 0) - goto cleanup; + data =3D g_new0(qemuBlockStorageSourceAttachData, 1); if (driveAlias) { data->driveAlias =3D g_steal_pointer(&driveAlias); @@ -1771,11 +1769,7 @@ qemuBlockStorageSourceDetachPrepare(virStorageSource= Ptr src, data->encryptsecretAlias =3D g_strdup(srcpriv->encinfo->s.aes.= alias); } - ret =3D g_steal_pointer(&data); - - cleanup: - VIR_FREE(driveAlias); - return ret; + return g_steal_pointer(&data); } --=20 2.24.1 From nobody Tue Apr 30 02:39:32 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 207.211.31.120 as permitted sender) client-ip=207.211.31.120; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-1.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 207.211.31.120 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1583771020; cv=none; d=zohomail.com; s=zohoarc; b=j6+l0Mxvpf2UbltamECp1hqYiQZ5KzVoG5/B2P/BY817aENPULio1eV4pN3HB0ZE1sxgkoFREdCQwhD1u2dz+BREehdTT2oIYd2ik+Uuwl+ndnlShzHs67UzxQ7Fd4RYM3YdSutoPi+BUy5GiSYcYH1U7iUupneUud5r1tnZkzo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1583771020; h=Content-Type:Content-Transfer-Encoding:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=hfqjdV/0cOxZP4MgEUaHBn//t3riyoPuTgTNMsMU2eE=; b=JqqD/wCYvVDBfptgJnI8Q2NYMfTsznjjcOONi5rORqxjRuZpAiQ+DnbPbDMTJmwilQYFCytzpd8aPGtKGfoLE4OsOoMOMMfP6PI3e49x2jsVJQtTZorqdvhkgZrHnVe3vFHEGhwBFpN1ERw64LLr3fdxNbDkIqeVDj6KZT3rL3I= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 207.211.31.120 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass header.from= (p=none dis=none) header.from= Return-Path: Received: from us-smtp-1.mimecast.com (us-smtp-delivery-1.mimecast.com [207.211.31.120]) by mx.zohomail.com with SMTPS id 1583771020711803.0393355198314; Mon, 9 Mar 2020 09:23:40 -0700 (PDT) Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-475-M8wmluLaOgW7W57auB5UNQ-1; Mon, 09 Mar 2020 12:23:27 -0400 Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.phx2.redhat.com [10.5.11.16]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 5ECC5107ACCD; Mon, 9 Mar 2020 16:23:21 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 113BF5C1C3; Mon, 9 Mar 2020 16:23:21 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id 83F4318089CE; Mon, 9 Mar 2020 16:23:17 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id 029GNGUx020684 for ; Mon, 9 Mar 2020 12:23:16 -0400 Received: by smtp.corp.redhat.com (Postfix) id 582C29051C; Mon, 9 Mar 2020 16:23:16 +0000 (UTC) Received: from angien.redhat.com (unknown [10.43.2.48]) by smtp.corp.redhat.com (Postfix) with ESMTP id D1CB490A03 for ; Mon, 9 Mar 2020 16:23:15 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1583771019; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=hfqjdV/0cOxZP4MgEUaHBn//t3riyoPuTgTNMsMU2eE=; b=eRIMcnDpx0t3K/mI/qYu6cuwzGceR2NxyLTUSz4mlOiw1XjZ/6lhJm76RkJIsyvIWGuPds f5/n4cFcAtQZTe+L07ODs7rWGZk34CCshc2g5Z6UzGVxlkeUFhXhj0xhhCfHMV9yyjdTcO rbf7M7r0nKnK8MOkqa0Pk/LNvlchHCo= X-MC-Unique: M8wmluLaOgW7W57auB5UNQ-1 From: Peter Krempa To: libvir-list@redhat.com Subject: [PATCH 02/30] qemu: Don't take double pointer in qemuDomainSecretInfoFree Date: Mon, 9 Mar 2020 17:22:42 +0100 Message-Id: <6de6ba9de8eb215b0a2119fd829e3b29ac073fa0.1583770683.git.pkrempa@redhat.com> In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 X-loop: libvir-list@redhat.com X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.16 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) Content-Type: text/plain; charset="utf-8" Using a doulble pointer prevents the function from being used as the automatic cleanup function for the given type. Remove the double pointer use by replacing the calls with g_clear_pointer which ensures that the pointer is cleared. Signed-off-by: Peter Krempa Reviewed-by: J=C3=A1n Tomko --- src/qemu/qemu_domain.c | 30 +++++++++++++----------------- src/qemu/qemu_domain.h | 2 +- src/qemu/qemu_migration_params.c | 2 +- 3 files changed, 15 insertions(+), 19 deletions(-) diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index 33c2158eb5..bd32949e9b 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -1099,14 +1099,10 @@ qemuDomainSecretInfoClear(qemuDomainSecretInfoPtr s= ecinfo, void -qemuDomainSecretInfoFree(qemuDomainSecretInfoPtr *secinfo) +qemuDomainSecretInfoFree(qemuDomainSecretInfoPtr secinfo) { - if (!*secinfo) - return; - - qemuDomainSecretInfoClear(*secinfo, false); - - VIR_FREE(*secinfo); + qemuDomainSecretInfoClear(secinfo, false); + g_free(secinfo); } @@ -1196,8 +1192,8 @@ qemuDomainStorageSourcePrivateDispose(void *obj) { qemuDomainStorageSourcePrivatePtr priv =3D obj; - qemuDomainSecretInfoFree(&priv->secinfo); - qemuDomainSecretInfoFree(&priv->encinfo); + g_clear_pointer(&priv->secinfo, qemuDomainSecretInfoFree); + g_clear_pointer(&priv->encinfo, qemuDomainSecretInfoFree); } @@ -1276,7 +1272,7 @@ qemuDomainChrSourcePrivateDispose(void *obj) { qemuDomainChrSourcePrivatePtr priv =3D obj; - qemuDomainSecretInfoFree(&priv->secinfo); + g_clear_pointer(&priv->secinfo, qemuDomainSecretInfoFree); } @@ -1355,7 +1351,7 @@ qemuDomainGraphicsPrivateDispose(void *obj) qemuDomainGraphicsPrivatePtr priv =3D obj; VIR_FREE(priv->tlsAlias); - qemuDomainSecretInfoFree(&priv->secinfo); + g_clear_pointer(&priv->secinfo, qemuDomainSecretInfoFree); } @@ -1631,7 +1627,7 @@ qemuDomainSecretInfoNewPlain(virSecretUsageType usage= Type, return NULL; if (qemuDomainSecretPlainSetup(secinfo, usageType, username, lookupDef= ) < 0) { - qemuDomainSecretInfoFree(&secinfo); + g_clear_pointer(&secinfo, qemuDomainSecretInfoFree); return NULL; } @@ -1674,7 +1670,7 @@ qemuDomainSecretInfoNew(qemuDomainObjPrivatePtr priv, if (qemuDomainSecretAESSetup(priv, secinfo, srcAlias, usageType, usern= ame, lookupDef, isLuks) < 0) { - qemuDomainSecretInfoFree(&secinfo); + g_clear_pointer(&secinfo, qemuDomainSecretInfoFree); return NULL; } @@ -1836,7 +1832,7 @@ qemuDomainSecretHostdevDestroy(virDomainHostdevDefPtr= hostdev) if (scsisrc->protocol =3D=3D VIR_DOMAIN_HOSTDEV_SCSI_PROTOCOL_TYPE= _ISCSI) { srcPriv =3D QEMU_DOMAIN_STORAGE_SOURCE_PRIVATE(iscsisrc->src); if (srcPriv && srcPriv->secinfo) - qemuDomainSecretInfoFree(&srcPriv->secinfo); + g_clear_pointer(&srcPriv->secinfo, qemuDomainSecretInfoFre= e); } } } @@ -1880,7 +1876,7 @@ qemuDomainSecretChardevDestroy(virDomainChrSourceDefP= tr dev) if (!chrSourcePriv || !chrSourcePriv->secinfo) return; - qemuDomainSecretInfoFree(&chrSourcePriv->secinfo); + g_clear_pointer(&chrSourcePriv->secinfo, qemuDomainSecretInfoFree); } @@ -1935,7 +1931,7 @@ qemuDomainSecretGraphicsDestroy(virDomainGraphicsDefP= tr graphics) return; VIR_FREE(gfxPriv->tlsAlias); - qemuDomainSecretInfoFree(&gfxPriv->secinfo); + g_clear_pointer(&gfxPriv->secinfo, qemuDomainSecretInfoFree); } @@ -2283,7 +2279,7 @@ qemuDomainObjPrivateFree(void *data) } VIR_FREE(priv->cleanupCallbacks); - qemuDomainSecretInfoFree(&priv->migSecinfo); + g_clear_pointer(&priv->migSecinfo, qemuDomainSecretInfoFree); qemuDomainMasterKeyFree(priv); virHashFree(priv->blockjobs); diff --git a/src/qemu/qemu_domain.h b/src/qemu/qemu_domain.h index 476056c73f..10d6264e46 100644 --- a/src/qemu/qemu_domain.h +++ b/src/qemu/qemu_domain.h @@ -1032,7 +1032,7 @@ void qemuDomainMasterKeyRemove(qemuDomainObjPrivatePt= r priv); bool qemuDomainSupportsEncryptedSecret(qemuDomainObjPrivatePtr priv); -void qemuDomainSecretInfoFree(qemuDomainSecretInfoPtr *secinfo) +void qemuDomainSecretInfoFree(qemuDomainSecretInfoPtr secinfo) ATTRIBUTE_NONNULL(1); void qemuDomainSecretInfoDestroy(qemuDomainSecretInfoPtr secinfo); diff --git a/src/qemu/qemu_migration_params.c b/src/qemu/qemu_migration_par= ams.c index a92bb2fa2b..a36c6a4aea 100644 --- a/src/qemu/qemu_migration_params.c +++ b/src/qemu/qemu_migration_params.c @@ -1086,7 +1086,7 @@ qemuMigrationParamsResetTLS(virQEMUDriverPtr driver, secAlias =3D qemuDomainGetSecretAESAlias(QEMU_MIGRATION_TLS_ALIAS_BASE= , false); qemuDomainDelTLSObjects(driver, vm, asyncJob, secAlias, tlsAlias); - qemuDomainSecretInfoFree(&QEMU_DOMAIN_PRIVATE(vm)->migSecinfo); + g_clear_pointer(&QEMU_DOMAIN_PRIVATE(vm)->migSecinfo, qemuDomainSecret= InfoFree); VIR_FREE(tlsAlias); VIR_FREE(secAlias); --=20 2.24.1 From nobody Tue Apr 30 02:39:32 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 207.211.31.81 as permitted sender) client-ip=207.211.31.81; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-1.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 207.211.31.81 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1583771013; cv=none; d=zohomail.com; s=zohoarc; b=XQ1+746PC9F5YpcuXWYf9Tq/LBei3th9bsRATIHOPb19wEI5/TLquAJuvp2f+KFoDfOv26ajd0bhlHGtqD/p6Z9SRgHAUANiQTwdJc4MmBZUSNGCONRAMT4byWauXDtyzaQDME50n55cmM6s/8WEBc/CD6kNq7UPgP5rH3Xp+6M= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1583771013; h=Content-Type:Content-Transfer-Encoding:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=fN7qjQmisLr0Zoi96GtSBnpJIPQSyg5K3yzGsMhVQRI=; b=cViUJ5c/GfiT3cFrnzLv38cFHnkDflhaclRS00C6iX4fTHEdkW4+DB1ojQDvaoej0ytCJREE9PZWv28L15vLj/IsWaXQg/cYGi/U6ycnPfXghKf9NQtJFGiIYkJmHI9M6XHMVxzJP2ZKFXvt/xEoNFYSnBiSRD7pJjucey0KkyQ= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 207.211.31.81 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass header.from= (p=none dis=none) header.from= Return-Path: Received: from us-smtp-1.mimecast.com (us-smtp-2.mimecast.com [207.211.31.81]) by mx.zohomail.com with SMTPS id 1583771013060993.6117270432982; Mon, 9 Mar 2020 09:23:33 -0700 (PDT) Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-1-5Z1eTgnzPiGVAl9W6rgnzA-1; Mon, 09 Mar 2020 12:23:27 -0400 Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 5DBFE800D5C; Mon, 9 Mar 2020 16:23:21 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 848915D9C5; Mon, 9 Mar 2020 16:23:20 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id E27F018089CF; Mon, 9 Mar 2020 16:23:18 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id 029GNHcm020693 for ; Mon, 9 Mar 2020 12:23:17 -0400 Received: by smtp.corp.redhat.com (Postfix) id 2C28990779; Mon, 9 Mar 2020 16:23:17 +0000 (UTC) Received: from angien.redhat.com (unknown [10.43.2.48]) by smtp.corp.redhat.com (Postfix) with ESMTP id A64B89051C for ; Mon, 9 Mar 2020 16:23:16 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1583771011; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=fN7qjQmisLr0Zoi96GtSBnpJIPQSyg5K3yzGsMhVQRI=; b=QirCh6gIQA0GUqc6jDKxi1750Zr9hwEn/wpF2DlSrFCwZaD3Qy8jlnrvLGeF4dcc/gu5Z1 AtPtRljSSBHXupzb//66tzEHHy/ryS2Rp8PSj8ukXACB2iuNMt9PQk+jrqYCZlNNrKzzxv lWOdwTLXaTDRzV9efq2qBPhOrU9ujJY= X-MC-Unique: 5Z1eTgnzPiGVAl9W6rgnzA-1 From: Peter Krempa To: libvir-list@redhat.com Subject: [PATCH 03/30] qemuMigrationParamsResetTLS: Adapt to modern memory management Date: Mon, 9 Mar 2020 17:22:43 +0100 Message-Id: In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 X-loop: libvir-list@redhat.com X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) Content-Type: text/plain; charset="utf-8" Use g_autofree instead of VIR_FREE and delete the comment mentioning possible failure to allocate memory. Signed-off-by: Peter Krempa Reviewed-by: J=C3=A1n Tomko --- src/qemu/qemu_migration_params.c | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/src/qemu/qemu_migration_params.c b/src/qemu/qemu_migration_par= ams.c index a36c6a4aea..8c552ab9a0 100644 --- a/src/qemu/qemu_migration_params.c +++ b/src/qemu/qemu_migration_params.c @@ -1070,8 +1070,8 @@ qemuMigrationParamsResetTLS(virQEMUDriverPtr driver, qemuMigrationParamsPtr origParams, unsigned long apiFlags) { - char *tlsAlias =3D NULL; - char *secAlias =3D NULL; + g_autofree char *tlsAlias =3D NULL; + g_autofree char *secAlias =3D NULL; /* There's nothing to do if QEMU does not support TLS migration or we = were * not asked to enable it. */ @@ -1079,17 +1079,11 @@ qemuMigrationParamsResetTLS(virQEMUDriverPtr driver, !(apiFlags & VIR_MIGRATE_TLS)) return; - /* NB: If either or both fail to allocate memory we can still proceed - * since the next time we migrate another deletion attempt will be - * made after successfully generating the aliases. */ tlsAlias =3D qemuAliasTLSObjFromSrcAlias(QEMU_MIGRATION_TLS_ALIAS_BASE= ); secAlias =3D qemuDomainGetSecretAESAlias(QEMU_MIGRATION_TLS_ALIAS_BASE= , false); qemuDomainDelTLSObjects(driver, vm, asyncJob, secAlias, tlsAlias); g_clear_pointer(&QEMU_DOMAIN_PRIVATE(vm)->migSecinfo, qemuDomainSecret= InfoFree); - - VIR_FREE(tlsAlias); - VIR_FREE(secAlias); } --=20 2.24.1 From nobody Tue Apr 30 02:39:32 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 207.211.31.120 as permitted sender) client-ip=207.211.31.120; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-1.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 207.211.31.120 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1583771047; cv=none; d=zohomail.com; s=zohoarc; b=b27Lj3/C2sefsfcslAGMH2hQWB6kla9PUlI3td4V2tUlJcPJ5TcsosBLd1x9bGnv5FPoJRAQOsFl7ckDIggzljVrE/Td1MJqjDRn4OOg9RCNDS7QNFSBlWzHkAYonumAT27H87zfLkwrj0JOfd78KnVv+JdEtzwZEstYSgmheRY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1583771047; h=Content-Type:Content-Transfer-Encoding:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=9374Hy/k2zFiGAmLBZShqCPocqmePKbo1c70sik3/Bk=; b=P+yYx1njHi3l7KMPUNv+Q4brTnj1TKjUg5VFcvEIvCmejX1uU9jWOHM+10RZCH79/l29jWyGt0Sj1lqm9al+ADburNXaw4LlKhQvV1JPoGUmxhW7peig8GzH5OYjsqDaznByPJxZpQRxdOtXbJw3pKZaSaRQhKbDfonuk190rRE= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 207.211.31.120 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass header.from= (p=none dis=none) header.from= Return-Path: Received: from us-smtp-1.mimecast.com (us-smtp-delivery-1.mimecast.com [207.211.31.120]) by mx.zohomail.com with SMTPS id 1583771047321548.4816491325066; Mon, 9 Mar 2020 09:24:07 -0700 (PDT) Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-235-44GRqCHIMRqTm-lZvcsjhQ-1; Mon, 09 Mar 2020 12:23:43 -0400 Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 0200319057A2; Mon, 9 Mar 2020 16:23:37 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id CA81560C05; Mon, 9 Mar 2020 16:23:36 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id 7FB5086A06; Mon, 9 Mar 2020 16:23:36 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id 029GNIEv020708 for ; Mon, 9 Mar 2020 12:23:18 -0400 Received: by smtp.corp.redhat.com (Postfix) id 0063490779; Mon, 9 Mar 2020 16:23:18 +0000 (UTC) Received: from angien.redhat.com (unknown [10.43.2.48]) by smtp.corp.redhat.com (Postfix) with ESMTP id 7A9809051C for ; Mon, 9 Mar 2020 16:23:17 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1583771046; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=9374Hy/k2zFiGAmLBZShqCPocqmePKbo1c70sik3/Bk=; b=ZxPCYyQipoQgtanlI7mSiScEwUu7KsgiJtWtfumb3/K9ccJbaXdzlZK13o8xMIDQY8nr6C jr9wS3Ga/27gbeAx3Vj49JW6pL+sqGzjHUEd+oDMMoSr2gNVEeqcG5++i0DgkFwT7KCUxD VKeZwjvVTAshc7EfZV2sELHTDEh7qYo= X-MC-Unique: 44GRqCHIMRqTm-lZvcsjhQ-1 From: Peter Krempa To: libvir-list@redhat.com Subject: [PATCH 04/30] qemuMigrationParamsResetTLS: Fix comment Date: Mon, 9 Mar 2020 17:22:44 +0100 Message-Id: <118b07fa77c6a33d9c91035c8e80ad996b5cb695.1583770683.git.pkrempa@redhat.com> In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 X-loop: libvir-list@redhat.com X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.12 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) Content-Type: text/plain; charset="utf-8" The comment mentioned that the function resets migration params, but that is not true. Signed-off-by: Peter Krempa Reviewed-by: J=C3=A1n Tomko --- src/qemu/qemu_migration_params.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/qemu/qemu_migration_params.c b/src/qemu/qemu_migration_par= ams.c index 8c552ab9a0..f9bc43afee 100644 --- a/src/qemu/qemu_migration_params.c +++ b/src/qemu/qemu_migration_params.c @@ -1061,7 +1061,7 @@ qemuMigrationParamsDisableTLS(virDomainObjPtr vm, * @apiFlags: API flags used to start the migration * * Deconstruct all the setup possibly done for TLS - delete the TLS and - * security objects, free the secinfo, and reset the migration params to "= ". + * security objects. */ static void qemuMigrationParamsResetTLS(virQEMUDriverPtr driver, --=20 2.24.1 From nobody Tue Apr 30 02:39:32 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 205.139.110.61 as permitted sender) client-ip=205.139.110.61; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-1.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 205.139.110.61 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1583771061; cv=none; d=zohomail.com; s=zohoarc; b=XgLF7w93xIszcu9g59DsvEfr1wS8it14E/NB0Nof9GFEfMMp/+SAR9wwwfrKixO8GVjIh46ab1035KjnAD3OB9qDi5FuyDnU+tgdeaeTJeuSi+/vYnfYgJmUSjJSrzZiTcGNNP4XdZUv9DjmtJPRDKg3769CbtFzFmNt+XWJ8Mo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1583771061; h=Content-Type:Content-Transfer-Encoding:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=167KQajTgErD76X0nHe/08TogYr5aJmZ5f6IkCUF4U8=; b=i3nzU2Ngk5u52Z5WYW8FC8SCamicIc/jBP3vxwecTgfgZNF3qqUjcww3jzqAg8iG1F4eAVs0FWcoBOAuD/8TitlaLi8xziJYP8CmxtYIVrcsvJmp6l6M/7HWmcg7UumLOCLoj+B21eBfjPRdYnJOMLygcL3sKaD4687LZiDc1j8= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 205.139.110.61 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass header.from= (p=none dis=none) header.from= Return-Path: Received: from us-smtp-delivery-1.mimecast.com (us-smtp-1.mimecast.com [205.139.110.61]) by mx.zohomail.com with SMTPS id 1583771061898785.8488064151488; Mon, 9 Mar 2020 09:24:21 -0700 (PDT) Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-280-cPyyE-jeMPq81sCVLEuQTQ-1; Mon, 09 Mar 2020 12:23:48 -0400 Received: from smtp.corp.redhat.com (int-mx07.intmail.prod.int.phx2.redhat.com [10.5.11.22]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id EC8628010E7; Mon, 9 Mar 2020 16:23:42 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id C21A610002A2; Mon, 9 Mar 2020 16:23:42 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id 760C586A10; Mon, 9 Mar 2020 16:23:42 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id 029GNINx020715 for ; Mon, 9 Mar 2020 12:23:18 -0400 Received: by smtp.corp.redhat.com (Postfix) id CAB2790779; Mon, 9 Mar 2020 16:23:18 +0000 (UTC) Received: from angien.redhat.com (unknown [10.43.2.48]) by smtp.corp.redhat.com (Postfix) with ESMTP id 50D059051C for ; Mon, 9 Mar 2020 16:23:18 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1583771060; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=167KQajTgErD76X0nHe/08TogYr5aJmZ5f6IkCUF4U8=; b=W0h0QgLsCVtdZRnPyzIZ9CtAr/bm7HsVZqSo9xgj44EvO06EAx4Hua2fjG05gk4P5+VhYD ikCb7yAf4gQ/oKvzdm10ezxqnSqQ2b47ayYxyQ9MX0VLnF2lPs1LKGi6h6Ijc2SV9+h66K rFFxTVGGej3VgEZ3lltNztRUDdbavDc= X-MC-Unique: cPyyE-jeMPq81sCVLEuQTQ-1 From: Peter Krempa To: libvir-list@redhat.com Subject: [PATCH 05/30] qemu: domain: Split out encryption of secret object data Date: Mon, 9 Mar 2020 17:22:45 +0100 Message-Id: In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 X-loop: libvir-list@redhat.com X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.84 on 10.5.11.22 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) Content-Type: text/plain; charset="utf-8" Previously qemuDomainSecretAESSetup was looking up the secret in the secret diver as well as encrypting it for use with qemu. Split out the the lookup into a wrapper for this function so that we can reuse the original internals when we don't need to look up a secret with the secret driver. The new wrapper is called qemuDomainSecretAESSetupFromSecret. This refactor also changes the functions to return qemuDomainSecretInfoPtr directly rather than filling it via an argument. This rendered qemuDomainSecretInfoNew obsolete and thus it was deleted. Signed-off-by: Peter Krempa --- src/qemu/qemu_domain.c | 180 ++++++++++++++++++----------------------- src/qemu/qemu_domain.h | 2 + 2 files changed, 81 insertions(+), 101 deletions(-) diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index bd32949e9b..52d2dddede 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -1513,79 +1513,100 @@ qemuDomainSecretPlainSetup(qemuDomainSecretInfoPtr= secinfo, /* qemuDomainSecretAESSetup: * @priv: pointer to domain private object - * @secinfo: Pointer to secret info - * @srcalias: Alias of the disk/hostdev used to generate the secret alias - * @usageType: The virSecretUsageType - * @username: username to use for authentication (may be NULL) - * @seclookupdef: Pointer to seclookupdef data - * @isLuks: True/False for is for luks (alias generation) + * @alias: alias of the secret + * @username: username to use (may be NULL) + * @secret: secret data + * @secretlen: length of @secret * - * Taking a secinfo, fill in the AES specific information using the - * - * Returns 0 on success, -1 on failure with error message + * Encrypts @secret to use with the domain. */ -static int +static qemuDomainSecretInfoPtr qemuDomainSecretAESSetup(qemuDomainObjPrivatePtr priv, - qemuDomainSecretInfoPtr secinfo, - const char *srcalias, - virSecretUsageType usageType, + const char *alias, const char *username, - virSecretLookupTypeDefPtr seclookupdef, - bool isLuks) + uint8_t *secret, + size_t secretlen) { - g_autoptr(virConnect) conn =3D virGetConnectSecret(); - int ret =3D -1; - uint8_t *raw_iv =3D NULL; + g_autoptr(qemuDomainSecretInfo) secinfo =3D NULL; + g_autofree uint8_t *raw_iv =3D NULL; size_t ivlen =3D QEMU_DOMAIN_AES_IV_LEN; - uint8_t *secret =3D NULL; - size_t secretlen =3D 0; - uint8_t *ciphertext =3D NULL; + g_autofree uint8_t *ciphertext =3D NULL; size_t ciphertextlen =3D 0; - if (!conn) - return -1; + if (!qemuDomainSupportsEncryptedSecret(priv)) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", + _("encrypted secrets are not supported")); + return NULL; + } + + secinfo =3D g_new0(qemuDomainSecretInfo, 1); secinfo->type =3D VIR_DOMAIN_SECRET_INFO_TYPE_AES; + secinfo->s.aes.alias =3D g_strdup(alias); secinfo->s.aes.username =3D g_strdup(username); - if (!(secinfo->s.aes.alias =3D qemuDomainGetSecretAESAlias(srcalias, i= sLuks))) - goto cleanup; - - if (VIR_ALLOC_N(raw_iv, ivlen) < 0) - goto cleanup; + raw_iv =3D g_new0(uint8_t, ivlen); /* Create a random initialization vector */ if (virRandomBytes(raw_iv, ivlen) < 0) - goto cleanup; + return NULL; /* Encode the IV and save that since qemu will need it */ secinfo->s.aes.iv =3D g_base64_encode(raw_iv, ivlen); - /* Grab the unencoded secret */ - if (virSecretGetSecretString(conn, seclookupdef, usageType, - &secret, &secretlen) < 0) - goto cleanup; - if (virCryptoEncryptData(VIR_CRYPTO_CIPHER_AES256CBC, priv->masterKey, QEMU_DOMAIN_MASTER_KEY_LEN, raw_iv, ivlen, secret, secretlen, &ciphertext, &ciphertextlen) < 0) - goto cleanup; - - /* Clear out the secret */ - memset(secret, 0, secretlen); + return NULL; /* Now encode the ciphertext and store to be passed to qemu */ - secinfo->s.aes.ciphertext =3D g_base64_encode(ciphertext, - ciphertextlen); + secinfo->s.aes.ciphertext =3D g_base64_encode(ciphertext, ciphertextle= n); - ret =3D 0; + return g_steal_pointer(&secinfo); +} + + +/** + * qemuDomainSecretAESSetupFromSecret: + * @priv: pointer to domain private object + * @srcalias: Alias of the disk/hostdev used to generate the secret alias + * @usageType: The virSecretUsageType + * @username: username to use for authentication (may be NULL) + * @seclookupdef: Pointer to seclookupdef data + * @isLuks: True/False for is for luks (alias generation) + * + * Looks up a secret in the secret driver based on @usageType and @seclook= updef + * and builds qemuDomainSecretInfoPtr from it. + */ +static qemuDomainSecretInfoPtr +qemuDomainSecretAESSetupFromSecret(qemuDomainObjPrivatePtr priv, + const char *srcalias, + virSecretUsageType usageType, + const char *username, + virSecretLookupTypeDefPtr seclookupdef, + bool isLuks) +{ + g_autoptr(virConnect) conn =3D virGetConnectSecret(); + qemuDomainSecretInfoPtr secinfo; + g_autofree char *alias =3D NULL; + uint8_t *secret =3D NULL; + size_t secretlen =3D 0; + + if (!conn) + return NULL; + + if (!(alias =3D qemuDomainGetSecretAESAlias(srcalias, isLuks))) + return NULL; + + if (virSecretGetSecretString(conn, seclookupdef, usageType, &secret, &= secretlen) < 0) + return NULL; + + secinfo =3D qemuDomainSecretAESSetup(priv, alias, username, secret, se= cretlen); - cleanup: - VIR_DISPOSE_N(raw_iv, ivlen); VIR_DISPOSE_N(secret, secretlen); - VIR_DISPOSE_N(ciphertext, ciphertextlen); - return ret; + + return secinfo; } @@ -1635,49 +1656,6 @@ qemuDomainSecretInfoNewPlain(virSecretUsageType usag= eType, } -/* qemuDomainSecretInfoNew: - * @priv: pointer to domain private object - * @srcAlias: Alias base to use for TLS object - * @usageType: Secret usage type - * @username: username - * @looupDef: lookup def describing secret - * @isLuks: boolean for luks lookup - * - * Helper function to create a secinfo to be used for secinfo consumers. T= his - * sets up encrypted data to be used with qemu's 'secret' object. - * - * Returns @secinfo on success, NULL on failure. Caller is responsible - * to eventually free @secinfo. - */ -static qemuDomainSecretInfoPtr -qemuDomainSecretInfoNew(qemuDomainObjPrivatePtr priv, - const char *srcAlias, - virSecretUsageType usageType, - const char *username, - virSecretLookupTypeDefPtr lookupDef, - bool isLuks) -{ - qemuDomainSecretInfoPtr secinfo =3D NULL; - - if (!qemuDomainSupportsEncryptedSecret(priv)) { - virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", - _("encrypted secrets are not supported")); - return NULL; - } - - if (VIR_ALLOC(secinfo) < 0) - return NULL; - - if (qemuDomainSecretAESSetup(priv, secinfo, srcAlias, usageType, usern= ame, - lookupDef, isLuks) < 0) { - g_clear_pointer(&secinfo, qemuDomainSecretInfoFree); - return NULL; - } - - return secinfo; -} - - /** * qemuDomainSecretInfoTLSNew: * @priv: pointer to domain private object @@ -1704,9 +1682,9 @@ qemuDomainSecretInfoTLSNew(qemuDomainObjPrivatePtr pr= iv, } seclookupdef.type =3D VIR_SECRET_LOOKUP_TYPE_UUID; - return qemuDomainSecretInfoNew(priv, srcAlias, - VIR_SECRET_USAGE_TYPE_TLS, NULL, - &seclookupdef, false); + return qemuDomainSecretAESSetupFromSecret(priv, srcAlias, + VIR_SECRET_USAGE_TYPE_TLS, + NULL, &seclookupdef, false); } @@ -1796,11 +1774,11 @@ qemuDomainSecretStorageSourcePrepare(qemuDomainObjP= rivatePtr priv, src->auth->use= rname, &src->auth->se= clookupdef); } else { - srcPriv->secinfo =3D qemuDomainSecretInfoNew(priv, authalias, - usageType, - src->auth->username, - &src->auth->seclook= updef, - false); + srcPriv->secinfo =3D qemuDomainSecretAESSetupFromSecret(priv, = authalias, + usageTyp= e, + src->aut= h->username, + &src->au= th->seclookupdef, + false); } if (!srcPriv->secinfo) @@ -1808,11 +1786,11 @@ qemuDomainSecretStorageSourcePrepare(qemuDomainObjP= rivatePtr priv, } if (hasEnc) { - if (!(srcPriv->encinfo =3D - qemuDomainSecretInfoNew(priv, encalias, - VIR_SECRET_USAGE_TYPE_VOLUME, NULL, - &src->encryption->secrets[0]->secloo= kupdef, - true))) + if (!(srcPriv->encinfo =3D qemuDomainSecretAESSetupFromSecret(priv= , encalias, + VIR_SE= CRET_USAGE_TYPE_VOLUME, + NULL, + &src->= encryption->secrets[0]->seclookupdef, + true))) return -1; } diff --git a/src/qemu/qemu_domain.h b/src/qemu/qemu_domain.h index 10d6264e46..202b85e39a 100644 --- a/src/qemu/qemu_domain.h +++ b/src/qemu/qemu_domain.h @@ -1035,6 +1035,8 @@ bool qemuDomainSupportsEncryptedSecret(qemuDomainObjP= rivatePtr priv); void qemuDomainSecretInfoFree(qemuDomainSecretInfoPtr secinfo) ATTRIBUTE_NONNULL(1); +G_DEFINE_AUTOPTR_CLEANUP_FUNC(qemuDomainSecretInfo, qemuDomainSecretInfoFr= ee); + void qemuDomainSecretInfoDestroy(qemuDomainSecretInfoPtr secinfo); void qemuDomainSecretDiskDestroy(virDomainDiskDefPtr disk) --=20 2.24.1 From nobody Tue Apr 30 02:39:32 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 207.211.31.81 as permitted sender) client-ip=207.211.31.81; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-1.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 207.211.31.81 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1583771029; cv=none; d=zohomail.com; s=zohoarc; b=jx2tog/xj7Z779EKnsVVDM9+aSyJiq05FkhNaRAT32iVUkCmnh6l5W50iZ33JTWPpENn97q8rH5mwX5Rz4ARqAKSZYnnp3H5+sfY6fxxWPAcuwBEZtqjbRm7Iau37y4uDXYvC6yo5HQ0nSUc4SF8pWTHgJk/7iuNjEW2YT4prdA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1583771029; h=Content-Type:Content-Transfer-Encoding:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=WbQVUKBlfyenU0NyrIS/Wq/EuAaPSmS09iDkj6UQRlY=; b=CkUjI2ee39xP+rmjZAHV1NLpnYCJuC7dz2p7sBp0tWNXo01Q4X0JhZy6tO16Vyl0qg9WudqQmuoTfzwbDnZCbzzQZq4/StnuWTly2afV95LSxEeFQbHB3VwRRHXgkXVgXZ3AkOiGIfvUkwGaL3lY8mNa4lC5fhUXTSrTcTA8yR8= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 207.211.31.81 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass header.from= (p=none dis=none) header.from= Return-Path: Received: from us-smtp-delivery-1.mimecast.com (us-smtp-2.mimecast.com [207.211.31.81]) by mx.zohomail.com with SMTPS id 1583771029879807.3454609713219; Mon, 9 Mar 2020 09:23:49 -0700 (PDT) Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-143-4Vb13Qd0OV2UKxOYyn0C6w-1; Mon, 09 Mar 2020 12:23:46 -0400 Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.phx2.redhat.com [10.5.11.23]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id E205E8018A4; Mon, 9 Mar 2020 16:23:40 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id B1C0019C58; Mon, 9 Mar 2020 16:23:40 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id 6206018089D0; Mon, 9 Mar 2020 16:23:40 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id 029GNJeQ020728 for ; Mon, 9 Mar 2020 12:23:19 -0400 Received: by smtp.corp.redhat.com (Postfix) id 9CEE69051C; Mon, 9 Mar 2020 16:23:19 +0000 (UTC) Received: from angien.redhat.com (unknown [10.43.2.48]) by smtp.corp.redhat.com (Postfix) with ESMTP id 241FC90A03 for ; Mon, 9 Mar 2020 16:23:18 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1583771028; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=WbQVUKBlfyenU0NyrIS/Wq/EuAaPSmS09iDkj6UQRlY=; b=ZoLw6V7B8oXvCsJkq4rZyZbSxZCU0dwnOccDm8OjWgv4Q3dGZ5hqumVWq2MwdV2K6HRlPg TSZBQo7Q5xxBvI88nsGjRsQLhgNgSEsIQZqmjt4U2JHMFtoTfWDVZPWRrdJMaZ1QXYItsE 5qMx15QRnpSzAZNu7ZeKgpi81nJ5aJo= X-MC-Unique: 4Vb13Qd0OV2UKxOYyn0C6w-1 From: Peter Krempa To: libvir-list@redhat.com Subject: [PATCH 06/30] qemu: Introduce another helper for creating alias for a 'secret' object Date: Mon, 9 Mar 2020 17:22:46 +0100 Message-Id: In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 X-loop: libvir-list@redhat.com X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.84 on 10.5.11.23 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) Content-Type: text/plain; charset="utf-8" qemuAliasForSecret is meant as a replacement qemuDomainGetSecretAESAlias with saner API. The sub-type we are creating the alias for is passed in as a string rather than the unflexible 'isLuks' boolean. Signed-off-by: Peter Krempa Reviewed-by: J=C3=A1n Tomko --- src/qemu/qemu_alias.c | 17 +++++++++++++++++ src/qemu/qemu_alias.h | 3 +++ 2 files changed, 20 insertions(+) diff --git a/src/qemu/qemu_alias.c b/src/qemu/qemu_alias.c index 95086fc65a..2e466ff23f 100644 --- a/src/qemu/qemu_alias.c +++ b/src/qemu/qemu_alias.c @@ -793,6 +793,23 @@ qemuDomainGetSecretAESAlias(const char *srcalias, } +/* qemuAliasForSecret: + * @parentalias: alias of the parent object + * @obj: optional sub-object of the parent device the secret is for + * + * Generate alias for a secret object used by @parentalias device or one of + * the dependencies of the device described by @obj. + */ +char * +qemuAliasForSecret(const char *parentalias, + const char *obj) +{ + if (obj) + return g_strdup_printf("%s-%s-secret0", parentalias, obj); + else + return g_strdup_printf("%s-secret0", parentalias); +} + /* qemuAliasTLSObjFromSrcAlias * @srcAlias: Pointer to a source alias string * diff --git a/src/qemu/qemu_alias.h b/src/qemu/qemu_alias.h index ae2fce16bc..645956d024 100644 --- a/src/qemu/qemu_alias.h +++ b/src/qemu/qemu_alias.h @@ -86,6 +86,9 @@ char *qemuDomainGetMasterKeyAlias(void); char *qemuDomainGetSecretAESAlias(const char *srcalias, bool isLuks); +char *qemuAliasForSecret(const char *parentalias, + const char *obj); + char *qemuAliasTLSObjFromSrcAlias(const char *srcAlias) ATTRIBUTE_NONNULL(1); --=20 2.24.1 From nobody Tue Apr 30 02:39:32 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 207.211.31.81 as permitted sender) client-ip=207.211.31.81; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-1.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 207.211.31.81 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1583771047; cv=none; d=zohomail.com; s=zohoarc; b=f9keo598+dByGvYmxxLwIVh32e228eDrEBi5PD3tsJ6foZggVfeAUQjj0didKVs9T4vauH3TWUvG4rDKZrdjlrtNfAnJXWnqH2S5AVaTk+LzvLeeMgz79SUNcsDQuYUE4hzsLJqxNYlhYUWXtvatFoPDAE6PtMv+PHkDJIDqEAg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1583771047; h=Content-Type:Content-Transfer-Encoding:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=uFDTSV0IVM0s3wOWPukCXYtTlKmmz47DqJw6hQ/qBHs=; b=PSfjg8xnuJ/iDALKy3R/Oq84MPDYgiGZ1p8nHzjVUdYHA0AHV2J9REPBHdy/qt/S7VZkAg6MFK7EqmBk3nq+Do8cQOOUWCHV4xxAkVvsftsIIoIa9bGynz6NaUFYvaW5QzW6tLzNLWFUDeU5h0f03H/c6uvQcrL6IlyOO688oyI= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 207.211.31.81 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass header.from= (p=none dis=none) header.from= Return-Path: Received: from us-smtp-delivery-1.mimecast.com (us-smtp-1.mimecast.com [207.211.31.81]) by mx.zohomail.com with SMTPS id 158377104774429.4767415487853; Mon, 9 Mar 2020 09:24:07 -0700 (PDT) Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-476-XB68XDL6Mka_MleRYcUQzA-1; Mon, 09 Mar 2020 12:23:43 -0400 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 17C40107ACC7; Mon, 9 Mar 2020 16:23:37 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id E097860304; Mon, 9 Mar 2020 16:23:36 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id 8D6ED86A09; Mon, 9 Mar 2020 16:23:36 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id 029GNKoX020735 for ; Mon, 9 Mar 2020 12:23:20 -0400 Received: by smtp.corp.redhat.com (Postfix) id 74ADB90779; Mon, 9 Mar 2020 16:23:20 +0000 (UTC) Received: from angien.redhat.com (unknown [10.43.2.48]) by smtp.corp.redhat.com (Postfix) with ESMTP id F02C29051C for ; Mon, 9 Mar 2020 16:23:19 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1583771046; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=uFDTSV0IVM0s3wOWPukCXYtTlKmmz47DqJw6hQ/qBHs=; b=JbLrB1mxezDGIKSnBcT73wdmtPnqVJ2pNKQYRto7Iz9/4ldpAmdrrrzbGavsEi8Qyark/9 LXvklv3IR5ujrS7oSzXQR/hGTHebXYlmrvJoj4wJr+bP6OpmdmBndP0+FeXe/DFltvx9Sm QQs2DgxYnWOqK7ngv9jnY189CWe0m7s= X-MC-Unique: XB68XDL6Mka_MleRYcUQzA-1 From: Peter Krempa To: libvir-list@redhat.com Subject: [PATCH 07/30] qemuDomainSecretStorageSourcePrepare: Fix naming of alias variables Date: Mon, 9 Mar 2020 17:22:47 +0100 Message-Id: <11529e9f50441857b89bf774c8f820ffdb1608a5.1583770683.git.pkrempa@redhat.com> In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 X-loop: libvir-list@redhat.com X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) Content-Type: text/plain; charset="utf-8" The naming of the variables was tied to what they are used for not what the alias represents. Since we'll need to use some of the aliases for another type of secrets fix the name so that it makes sense. Signed-off-by: Peter Krempa Reviewed-by: J=C3=A1n Tomko --- src/qemu/qemu_domain.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index 52d2dddede..70b1b5c4f2 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -1746,8 +1746,8 @@ qemuDomainDiskHasEncryptionSecret(virStorageSourcePtr= src) static int qemuDomainSecretStorageSourcePrepare(qemuDomainObjPrivatePtr priv, virStorageSourcePtr src, - const char *authalias, - const char *encalias) + const char *aliasprotocol, + const char *aliasformat) { qemuDomainStorageSourcePrivatePtr srcPriv; bool iscsiHasPS =3D virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_ISCSI_PAS= SWORD_SECRET); @@ -1774,7 +1774,7 @@ qemuDomainSecretStorageSourcePrepare(qemuDomainObjPri= vatePtr priv, src->auth->use= rname, &src->auth->se= clookupdef); } else { - srcPriv->secinfo =3D qemuDomainSecretAESSetupFromSecret(priv, = authalias, + srcPriv->secinfo =3D qemuDomainSecretAESSetupFromSecret(priv, = aliasprotocol, usageTyp= e, src->aut= h->username, &src->au= th->seclookupdef, @@ -1786,7 +1786,7 @@ qemuDomainSecretStorageSourcePrepare(qemuDomainObjPri= vatePtr priv, } if (hasEnc) { - if (!(srcPriv->encinfo =3D qemuDomainSecretAESSetupFromSecret(priv= , encalias, + if (!(srcPriv->encinfo =3D qemuDomainSecretAESSetupFromSecret(priv= , aliasformat, VIR_SE= CRET_USAGE_TYPE_VOLUME, NULL, &src->= encryption->secrets[0]->seclookupdef, --=20 2.24.1 From nobody Tue Apr 30 02:39:32 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 207.211.31.120 as permitted sender) client-ip=207.211.31.120; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-1.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 207.211.31.120 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1583771034; cv=none; d=zohomail.com; s=zohoarc; b=AnjnzEHAqzdtAUlHUV5fIjloYsTHxIkywvv6er/EQBh8+x8jzC2wEPeeJ/RaE/wNQM6/oWApbAimSV18ogmkwKy+YTrRt5XcTbHHfI/z7lIbfncrmgh8zBijdNfHV8Z9Mm4mx17YBjlR2/uf7eSdRtu8Dl6GTVKWIkRAYDALv1E= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1583771034; h=Content-Type:Content-Transfer-Encoding:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=MMS5fE5qGNeaSj22xYxNLCWguBw30Clyno07D2EpiQk=; b=VtoLVAB0v8gPMqPQ8irF9CvNSGjx6BD44Z7+mgHZnz4QmJtSyLQzFAOoG8gtXOTpb15MwAvXGTC6nJN3zdXyF7OUshrWys14PjHpD+vGz0EvzkcV8Ix42usVuywXtfqVu+RJKx4r3CFMtt9k+2TjzLYx+n8XNdm/rv7GU0aT5xs= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 207.211.31.120 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass header.from= (p=none dis=none) header.from= Return-Path: Received: from us-smtp-1.mimecast.com (us-smtp-delivery-1.mimecast.com [207.211.31.120]) by mx.zohomail.com with SMTPS id 1583771034260465.1385040047785; Mon, 9 Mar 2020 09:23:54 -0700 (PDT) Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-61-WZsyX0wDM3KrscbWTnUpsQ-1; Mon, 09 Mar 2020 12:23:50 -0400 Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 77F058010EB; Mon, 9 Mar 2020 16:23:44 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 46AC473892; Mon, 9 Mar 2020 16:23:44 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id D9CDD18089D5; Mon, 9 Mar 2020 16:23:43 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id 029GNL6r020740 for ; Mon, 9 Mar 2020 12:23:21 -0400 Received: by smtp.corp.redhat.com (Postfix) id 49BEC90779; Mon, 9 Mar 2020 16:23:21 +0000 (UTC) Received: from angien.redhat.com (unknown [10.43.2.48]) by smtp.corp.redhat.com (Postfix) with ESMTP id C3B959051C for ; Mon, 9 Mar 2020 16:23:20 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1583771033; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=MMS5fE5qGNeaSj22xYxNLCWguBw30Clyno07D2EpiQk=; b=eJTUqOv1+Pgvkbrjg+3Sw5u8kfm8PbQl+t4Ia/laXvdEXG1c/LVYn5MaVL6WHXSz00kqDW W+83t+1F4KrSB5lgR3laUPqB6lwPi7Ut21QqNTlior4dOFU8WIyob3UEEt6cHEdmIgQ9+O CI9uxfuCbDuZgkhAypyxKoX8l758K40= X-MC-Unique: WZsyX0wDM3KrscbWTnUpsQ-1 From: Peter Krempa To: libvir-list@redhat.com Subject: [PATCH 08/30] qemuDomainDeviceDiskDefPostParseRestoreSecAlias: Hardcode restored aliases Date: Mon, 9 Mar 2020 17:22:48 +0100 Message-Id: In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 X-loop: libvir-list@redhat.com X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.15 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) Content-Type: text/plain; charset="utf-8" In order to be able to change the function generating the alias and thus also the aliases itself, we must hardcode the old format for the case of upgrading form libvirt which didn't record them in the status XML yet. Note that this code path is tested by 'tests/qemustatusxml2xmldata/disk-secinfo-upgrade-in.xml' Signed-off-by: Peter Krempa Reviewed-by: J=C3=A1n Tomko --- src/qemu/qemu_domain.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index 70b1b5c4f2..72e651ecee 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -8993,16 +8993,14 @@ qemuDomainDeviceDiskDefPostParseRestoreSecAlias(vir= DomainDiskDefPtr disk, } if (restoreAuthSecret) { - if (!(authalias =3D qemuDomainGetSecretAESAlias(disk->info.alias, = false))) - return -1; + authalias =3D g_strdup_printf("%s-secret0", disk->info.alias); if (qemuStorageSourcePrivateDataAssignSecinfo(&priv->secinfo, &aut= halias) < 0) return -1; } if (restoreEncSecret) { - if (!(encalias =3D qemuDomainGetSecretAESAlias(disk->info.alias, t= rue))) - return -1; + encalias =3D g_strdup_printf("%s-luks-secret0", disk->info.alias); if (qemuStorageSourcePrivateDataAssignSecinfo(&priv->encinfo, &enc= alias) < 0) return -1; --=20 2.24.1 From nobody Tue Apr 30 02:39:32 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 205.139.110.61 as permitted sender) client-ip=205.139.110.61; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-1.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 205.139.110.61 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1583771036; cv=none; d=zohomail.com; s=zohoarc; b=QNCn7F5Fi4m5If7GaF9A4iyEs0sCWGlslCBPYOTy6ugSu0cltnc8nUrFUeP2E5LjydB5FNzjDtSND6M/rgALzu+1kFPvBKwJRlyUWVpPaHV1C4o7A3xoEyYFHUHEwPvmYRffnm794RjUIU86wSbrsLV7mUZXY7DeLVBGw/ENue4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1583771036; h=Content-Type:Content-Transfer-Encoding:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=Igo/FqcTZ9zEEiwVgXOtpaARTxMqO9tsZG7a2KY+5E4=; b=W9ZPfIYC3eCQFxntfo3BM4Yrd9KG2jQZozFOM9IZfsIS7zTETPCEaQbVPNgPsixj8+KzbkcOmxh2Z5D+T2BqKOijYu8PzbCRqNej9NzdYYiUrfqUv21OYo1DKzB/QKUFoGTdHtjU6ZduAK41AbxB6MsPSpjhzZW0Y58PZwED9Ys= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 205.139.110.61 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass header.from= (p=none dis=none) header.from= Return-Path: Received: from us-smtp-delivery-1.mimecast.com (us-smtp-2.mimecast.com [205.139.110.61]) by mx.zohomail.com with SMTPS id 1583771036115891.5963344921552; Mon, 9 Mar 2020 09:23:56 -0700 (PDT) Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-400-atv9EhyUPY-oxKAajK-jbg-1; Mon, 09 Mar 2020 12:23:52 -0400 Received: from smtp.corp.redhat.com (int-mx07.intmail.prod.int.phx2.redhat.com [10.5.11.22]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id DECD18010EE; Mon, 9 Mar 2020 16:23:46 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id B66DD1001DDE; Mon, 9 Mar 2020 16:23:46 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id 6B1A0180887A; Mon, 9 Mar 2020 16:23:46 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id 029GNM8H020750 for ; Mon, 9 Mar 2020 12:23:22 -0400 Received: by smtp.corp.redhat.com (Postfix) id 1C2549051C; Mon, 9 Mar 2020 16:23:22 +0000 (UTC) Received: from angien.redhat.com (unknown [10.43.2.48]) by smtp.corp.redhat.com (Postfix) with ESMTP id 9778A90A03 for ; Mon, 9 Mar 2020 16:23:21 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1583771034; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=Igo/FqcTZ9zEEiwVgXOtpaARTxMqO9tsZG7a2KY+5E4=; b=aJ7eCpSYIOzLpkIniPGUZp45jkFJp68f3Ro88uXj8ucntquwx1pvDDAfuy6ba8BKbTDxq8 nUAr6Rux2Pw7Pgp+ejXWuuN3u14iuPB8LlrWN79As+s4NMk+uGyqXEaofEtDGDus2Vb+hx tpwQg1IONW8P5Xs+zBrCMucivjQxcEs= X-MC-Unique: atv9EhyUPY-oxKAajK-jbg-1 From: Peter Krempa To: libvir-list@redhat.com Subject: [PATCH 09/30] qemu: Split out initialization of secrets for 'iscsi' hostdevs Date: Mon, 9 Mar 2020 17:22:49 +0100 Message-Id: <0ab4d2583ea88cf360c4a344c8a4934ee4efd789.1583770683.git.pkrempa@redhat.com> In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 X-loop: libvir-list@redhat.com X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.84 on 10.5.11.22 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) Content-Type: text/plain; charset="utf-8" Currently we don't have infrastructure to remember the secret aliases for hostdevs. Since an upcomming patch is going to change aliases for the disks, initialize the iscsi hostdevs separately so that we can keep the alias. At the same time let's use qemuAliasForSecret instead of qemuDomainGetSecretAESAlias when unplugging the iscsi hostdev. Signed-off-by: Peter Krempa Reviewed-by: J=C3=A1n Tomko --- src/qemu/qemu_domain.c | 25 +++++++++++++++++++++++-- src/qemu/qemu_hotplug.c | 2 +- 2 files changed, 24 insertions(+), 3 deletions(-) diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index 72e651ecee..c2218871a7 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -1835,8 +1835,29 @@ qemuDomainSecretHostdevPrepare(qemuDomainObjPrivateP= tr priv, if (scsisrc->protocol =3D=3D VIR_DOMAIN_HOSTDEV_SCSI_PROTOCOL_TYPE= _ISCSI && src->auth) { - if (qemuDomainSecretStorageSourcePrepare(priv, src, - hostdev->info->alias,= NULL) < 0) + bool iscsiHasPS =3D virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_I= SCSI_PASSWORD_SECRET); + virSecretUsageType usageType =3D VIR_SECRET_USAGE_TYPE_ISCSI; + qemuDomainStorageSourcePrivatePtr srcPriv; + + if (!(src->privateData =3D qemuDomainStorageSourcePrivateNew()= )) + return -1; + + srcPriv =3D QEMU_DOMAIN_STORAGE_SOURCE_PRIVATE(src); + + if (!qemuDomainSupportsEncryptedSecret(priv) || !iscsiHasPS) { + srcPriv->secinfo =3D qemuDomainSecretInfoNewPlain(usageTyp= e, + src->auth-= >username, + &src->auth= ->seclookupdef); + } else { + srcPriv->secinfo =3D qemuDomainSecretAESSetupFromSecret(pr= iv, + host= dev->info->alias, + usag= eType, + src-= >auth->username, + &src= ->auth->seclookupdef, + fals= e); + } + + if (!srcPriv->secinfo) return -1; } } diff --git a/src/qemu/qemu_hotplug.c b/src/qemu/qemu_hotplug.c index ca18bb9e5f..e804053933 100644 --- a/src/qemu/qemu_hotplug.c +++ b/src/qemu/qemu_hotplug.c @@ -4471,7 +4471,7 @@ qemuDomainRemoveHostDevice(virQEMUDriverPtr driver, if (scsisrc->protocol =3D=3D VIR_DOMAIN_HOSTDEV_SCSI_PROTOCOL_TYPE= _ISCSI && virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_ISCSI_PASSWORD_SECRET= ) && qemuDomainStorageSourceHasAuth(iscsisrc->src)) { - if (!(objAlias =3D qemuDomainGetSecretAESAlias(hostdev->info->= alias, false))) + if (!(objAlias =3D qemuAliasForSecret(hostdev->info->alias, NU= LL))) return -1; } --=20 2.24.1 From nobody Tue Apr 30 02:39:33 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 205.139.110.120 as permitted sender) client-ip=205.139.110.120; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-1.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 205.139.110.120 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1583771116; cv=none; d=zohomail.com; s=zohoarc; b=DOJXumHJN6fBcpv67hwzKGSCxba6rGqCEefsnaRZerr7v33YU/iervQBEr9UqSwZnpBYDXh1kWTMvdyZXUmmUj8+7eyQN5yw6ZHoeIXkFq3tk1mVMlKozfp1fmfv8YVFWrnJOBfSX3AckM9wN2z/4NuRm3moNkX2tf1s1toEG5A= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1583771116; h=Content-Type:Content-Transfer-Encoding:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=otP0+h/3koUSo2KN3I8G9bxKMPzQ//uv8Joz/U/uasM=; b=fx+57Gt4vbYIrc9jtNhictxcr8cxakwlIvFLRfdnowjY3fTz/AAlTUkTS7ztouboslHERN1vlx9Tw/ZN2tc3Q51Q78XpYjoPZWtwGDYf2ivdeBBDmTlKAz7ntlG4nw+8ogC/YPCNPRUno3VN5x4G4hBQ9qQ25ZDHtslf+rRdLQc= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 205.139.110.120 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass header.from= (p=none dis=none) header.from= Return-Path: Received: from us-smtp-1.mimecast.com (us-smtp-delivery-1.mimecast.com [205.139.110.120]) by mx.zohomail.com with SMTPS id 1583771116214154.10740679436685; Mon, 9 Mar 2020 09:25:16 -0700 (PDT) Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-327--FO1r9R-PDuxdamtvn0AKw-1; Mon, 09 Mar 2020 12:23:54 -0400 Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 30400800D5C; Mon, 9 Mar 2020 16:23:48 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 0581D60C05; Mon, 9 Mar 2020 16:23:48 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id A8F6C1800B6D; Mon, 9 Mar 2020 16:23:47 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id 029GNMae020766 for ; Mon, 9 Mar 2020 12:23:22 -0400 Received: by smtp.corp.redhat.com (Postfix) id E481990779; Mon, 9 Mar 2020 16:23:22 +0000 (UTC) Received: from angien.redhat.com (unknown [10.43.2.48]) by smtp.corp.redhat.com (Postfix) with ESMTP id 6B32B9051C for ; Mon, 9 Mar 2020 16:23:22 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1583771115; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=otP0+h/3koUSo2KN3I8G9bxKMPzQ//uv8Joz/U/uasM=; b=J4dwbvPeKQZUNEzIi5i7uf0F5k42YS6aWiJdpiUtsHdxsIMkIn5aUJTjLQ4nqbO5xLMZfz Lf1xdExYa0affr4CdJSgyCvd3IlyTfdglqJ+vHnDw6OUFWVzPyjRG8iaVXPEeEUY5IdAAn 4fJOIWz2q/ncV6UUAwHS1PWExbb//CY= X-MC-Unique: -FO1r9R-PDuxdamtvn0AKw-1 From: Peter Krempa To: libvir-list@redhat.com Subject: [PATCH 10/30] qemuDomainSecretAESSetupFromSecret: Use 'qemuAliasForSecret' Date: Mon, 9 Mar 2020 17:22:50 +0100 Message-Id: In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 X-loop: libvir-list@redhat.com X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.12 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) Content-Type: text/plain; charset="utf-8" Replace qemuDomainGetSecretAESAlias by the new function si that we can reuse qemuDomainSecretAESSetupFromSecret also for setting up other kinds of objects. Signed-off-by: Peter Krempa Reviewed-by: J=C3=A1n Tomko --- src/qemu/qemu_domain.c | 30 ++++++++++++++---------------- 1 file changed, 14 insertions(+), 16 deletions(-) diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index c2218871a7..c7432b3a98 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -1571,34 +1571,32 @@ qemuDomainSecretAESSetup(qemuDomainObjPrivatePtr pr= iv, * qemuDomainSecretAESSetupFromSecret: * @priv: pointer to domain private object * @srcalias: Alias of the disk/hostdev used to generate the secret alias + * @secretuse: specific usage for the secret (may be NULL if main object i= s using it) * @usageType: The virSecretUsageType * @username: username to use for authentication (may be NULL) * @seclookupdef: Pointer to seclookupdef data - * @isLuks: True/False for is for luks (alias generation) * * Looks up a secret in the secret driver based on @usageType and @seclook= updef - * and builds qemuDomainSecretInfoPtr from it. + * and builds qemuDomainSecretInfoPtr from it. @use describes the usage of= the + * secret in case if @srcalias requires more secrets for various usage cas= es. */ static qemuDomainSecretInfoPtr qemuDomainSecretAESSetupFromSecret(qemuDomainObjPrivatePtr priv, const char *srcalias, + const char *secretuse, virSecretUsageType usageType, const char *username, - virSecretLookupTypeDefPtr seclookupdef, - bool isLuks) + virSecretLookupTypeDefPtr seclookupdef) { g_autoptr(virConnect) conn =3D virGetConnectSecret(); qemuDomainSecretInfoPtr secinfo; - g_autofree char *alias =3D NULL; + g_autofree char *alias =3D qemuAliasForSecret(srcalias, secretuse); uint8_t *secret =3D NULL; size_t secretlen =3D 0; if (!conn) return NULL; - if (!(alias =3D qemuDomainGetSecretAESAlias(srcalias, isLuks))) - return NULL; - if (virSecretGetSecretString(conn, seclookupdef, usageType, &secret, &= secretlen) < 0) return NULL; @@ -1682,9 +1680,9 @@ qemuDomainSecretInfoTLSNew(qemuDomainObjPrivatePtr pr= iv, } seclookupdef.type =3D VIR_SECRET_LOOKUP_TYPE_UUID; - return qemuDomainSecretAESSetupFromSecret(priv, srcAlias, + return qemuDomainSecretAESSetupFromSecret(priv, srcAlias, NULL, VIR_SECRET_USAGE_TYPE_TLS, - NULL, &seclookupdef, false); + NULL, &seclookupdef); } @@ -1775,10 +1773,10 @@ qemuDomainSecretStorageSourcePrepare(qemuDomainObjP= rivatePtr priv, &src->auth->se= clookupdef); } else { srcPriv->secinfo =3D qemuDomainSecretAESSetupFromSecret(priv, = aliasprotocol, + NULL, usageTyp= e, src->aut= h->username, - &src->au= th->seclookupdef, - false); + &src->au= th->seclookupdef); } if (!srcPriv->secinfo) @@ -1787,10 +1785,10 @@ qemuDomainSecretStorageSourcePrepare(qemuDomainObjP= rivatePtr priv, if (hasEnc) { if (!(srcPriv->encinfo =3D qemuDomainSecretAESSetupFromSecret(priv= , aliasformat, + "luks", VIR_SE= CRET_USAGE_TYPE_VOLUME, NULL, - &src->= encryption->secrets[0]->seclookupdef, - true))) + &src->= encryption->secrets[0]->seclookupdef))) return -1; } @@ -1851,10 +1849,10 @@ qemuDomainSecretHostdevPrepare(qemuDomainObjPrivate= Ptr priv, } else { srcPriv->secinfo =3D qemuDomainSecretAESSetupFromSecret(pr= iv, host= dev->info->alias, + NULL, usag= eType, src-= >auth->username, - &src= ->auth->seclookupdef, - fals= e); + &src= ->auth->seclookupdef); } if (!srcPriv->secinfo) --=20 2.24.1 From nobody Tue Apr 30 02:39:33 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 207.211.31.120 as permitted sender) client-ip=207.211.31.120; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-1.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 207.211.31.120 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1583771045; cv=none; d=zohomail.com; s=zohoarc; b=VRljwXA/72XulsX72UCuCj2Kc8TnpSoa/HpVao2+pCNCwwh70PtkOaw0PeP6w9YYXju4KFpUQoCZYYx6YBHASeERhTUysO7/msyhIiQAGEacsbs+clQ03d95tpMLKat6anXE3onkjSYn8MTZH5ie3t1IfufQaut24OhErerLH9I= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1583771045; h=Content-Type:Content-Transfer-Encoding:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=VRAUvVj1pDKmxp6ECPBVJjH2VQ2V5qHMdxdHWAa647Y=; b=Dizpr+w7crkThocTvm6FasUnLifXxRhdh7Krjfdufdnrx3Tuhs7c+8iIKcvsiCeeX7sqntxY4pQC+HsVhVNMgO8G3w/cWYZMwsMbmxxv2vyjIIJkDx+SA1jdokAW8BMehMidesNdF6Y2UUwOEDbGJF55ST1EDbYZB6ZAJuTdm1E= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 207.211.31.120 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass header.from= (p=none dis=none) header.from= Return-Path: Received: from us-smtp-1.mimecast.com (us-smtp-delivery-1.mimecast.com [207.211.31.120]) by mx.zohomail.com with SMTPS id 1583771045979484.51513648101457; Mon, 9 Mar 2020 09:24:05 -0700 (PDT) Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-45-PLPZaQU-PQOhRN7SsPd0Kw-1; Mon, 09 Mar 2020 12:23:56 -0400 Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id AA12E19057A7; Mon, 9 Mar 2020 16:23:50 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 72EB873890; Mon, 9 Mar 2020 16:23:50 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id 26DF21803C32; Mon, 9 Mar 2020 16:23:50 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id 029GNNs0020774 for ; Mon, 9 Mar 2020 12:23:23 -0400 Received: by smtp.corp.redhat.com (Postfix) id E0F549051C; Mon, 9 Mar 2020 16:23:23 +0000 (UTC) Received: from angien.redhat.com (unknown [10.43.2.48]) by smtp.corp.redhat.com (Postfix) with ESMTP id 3F5FC90A03 for ; Mon, 9 Mar 2020 16:23:23 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1583771044; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=VRAUvVj1pDKmxp6ECPBVJjH2VQ2V5qHMdxdHWAa647Y=; b=V3ocDdrrX4/fu/jr15Z2o6XOpo1s6L+f9KfJxfUjcu30YuY2k1WMbgIQk6BHc3rne8lHG/ OAEHbBhX7yT0oc6pKVz2M/nxZA2zGLQ2Sk+SkfQIWpyA6OJ8Oi45c7d3xuVKedSUKI1ckm k+Lr+gKuPtagjbmETQ9Tq2Y+UcDUqhE= X-MC-Unique: PLPZaQU-PQOhRN7SsPd0Kw-1 From: Peter Krempa To: libvir-list@redhat.com Subject: [PATCH 11/30] qemuDomainSecretStorageSourcePrepare: Change aliases for disk secrets Date: Mon, 9 Mar 2020 17:22:51 +0100 Message-Id: <2846ad62b34d5c1aed881545cf13f8d7d5e7ef7a.1583770683.git.pkrempa@redhat.com> In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 X-loop: libvir-list@redhat.com X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.15 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) Content-Type: text/plain; charset="utf-8" Originally there was only the secret for authentication so we didn't use any suffix to tell it apart. With the introduction of encryption we added a 'luks' suffix for the encryption secrets. Since encryption is really generic and authentication is not the only secret modify the aliases for the secrets to better describe what they are used for. This is possible as we store the disk secrets in the status XML thus only new machines will use the new secrets. Signed-off-by: Peter Krempa Reviewed-by: J=C3=A1n Tomko --- src/qemu/qemu_domain.c | 4 +-- ...-backing-chains-noindex.x86_64-2.12.0.args | 4 +-- ...-backing-chains-noindex.x86_64-latest.args | 6 ++-- ...sk-hostdev-scsi-virtio-iscsi-auth-AES.args | 6 ++-- .../disk-network-iscsi.x86_64-2.12.0.args | 12 +++---- .../disk-network-iscsi.x86_64-latest.args | 8 ++--- .../disk-network-rbd.x86_64-2.12.0.args | 4 +-- .../disk-network-rbd.x86_64-latest.args | 4 +-- ...isk-network-source-auth.x86_64-2.12.0.args | 10 +++--- ...isk-network-source-auth.x86_64-latest.args | 8 ++--- .../disk-nvme.x86_64-latest.args | 4 +-- .../encrypted-disk-usage.args | 4 +-- tests/qemuxml2argvdata/encrypted-disk.args | 4 +-- .../luks-disks-source-qcow2.args | 24 +++++++------- ...luks-disks-source-qcow2.x86_64-latest.args | 32 +++++++++---------- tests/qemuxml2argvdata/luks-disks-source.args | 26 ++++++++------- tests/qemuxml2argvdata/luks-disks.args | 10 +++--- tests/qemuxml2argvdata/user-aliases.args | 4 +-- 18 files changed, 90 insertions(+), 84 deletions(-) diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index c7432b3a98..1d551f248f 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -1773,7 +1773,7 @@ qemuDomainSecretStorageSourcePrepare(qemuDomainObjPri= vatePtr priv, &src->auth->se= clookupdef); } else { srcPriv->secinfo =3D qemuDomainSecretAESSetupFromSecret(priv, = aliasprotocol, - NULL, + "auth", usageTyp= e, src->aut= h->username, &src->au= th->seclookupdef); @@ -1785,7 +1785,7 @@ qemuDomainSecretStorageSourcePrepare(qemuDomainObjPri= vatePtr priv, if (hasEnc) { if (!(srcPriv->encinfo =3D qemuDomainSecretAESSetupFromSecret(priv= , aliasformat, - "luks", + "encry= ption", VIR_SE= CRET_USAGE_TYPE_VOLUME, NULL, &src->= encryption->secrets[0]->seclookupdef))) diff --git a/tests/qemuxml2argvdata/disk-backing-chains-noindex.x86_64-2.12= .0.args b/tests/qemuxml2argvdata/disk-backing-chains-noindex.x86_64-2.12.0.= args index a8675debd5..47691339d6 100644 --- a/tests/qemuxml2argvdata/disk-backing-chains-noindex.x86_64-2.12.0.args +++ b/tests/qemuxml2argvdata/disk-backing-chains-noindex.x86_64-2.12.0.args @@ -39,12 +39,12 @@ id=3Dvirtio-disk1 \ if=3Dnone,id=3Ddrive-virtio-disk2 \ -device virtio-blk-pci,scsi=3Doff,bus=3Dpci.0,addr=3D0x4,drive=3Ddrive-vir= tio-disk2,\ id=3Dvirtio-disk2 \ --object secret,id=3Dvirtio-disk3-secret0,\ +-object secret,id=3Dvirtio-disk3-auth-secret0,\ data=3D9eao5F8qtkGt+seB1HYivWIxbtwUu6MQtg1zpj/oDtUsPr1q8wBYM91uEHCn6j/1,\ keyid=3DmasterKey0,iv=3DAAECAwQFBgcICQoLDA0ODw=3D=3D,format=3Dbase64 \ -drive 'file=3Drbd:pool/image:id=3Dmyname:auth_supported=3Dcephx\;none:\ mon_host=3Dmon1.example.org\:6321\;mon2.example.org\:6322\;mon3.example.or= g\:\ -6322,file.password-secret=3Dvirtio-disk3-secret0,format=3Dqcow2,if=3Dnone,\ +6322,file.password-secret=3Dvirtio-disk3-auth-secret0,format=3Dqcow2,if=3D= none,\ id=3Ddrive-virtio-disk3' \ -device virtio-blk-pci,scsi=3Doff,bus=3Dpci.0,addr=3D0x5,drive=3Ddrive-vir= tio-disk3,\ id=3Dvirtio-disk3 \ diff --git a/tests/qemuxml2argvdata/disk-backing-chains-noindex.x86_64-late= st.args b/tests/qemuxml2argvdata/disk-backing-chains-noindex.x86_64-latest.= args index b1a1f8a6bc..6c19da970f 100644 --- a/tests/qemuxml2argvdata/disk-backing-chains-noindex.x86_64-latest.args +++ b/tests/qemuxml2argvdata/disk-backing-chains-noindex.x86_64-latest.args @@ -81,15 +81,15 @@ id=3Dvirtio-disk2 \ "node-name":"libvirt-15-storage","auto-read-only":true,"discard":"unmap"}'= \ -blockdev '{"node-name":"libvirt-15-format","read-only":true,"driver":"qco= w2",\ "file":"libvirt-15-storage","backing":null}' \ --object secret,id=3Dlibvirt-14-storage-secret0,\ +-object secret,id=3Dlibvirt-14-storage-auth-secret0,\ data=3D9eao5F8qtkGt+seB1HYivWIxbtwUu6MQtg1zpj/oDtUsPr1q8wBYM91uEHCn6j/1,\ keyid=3DmasterKey0,iv=3DAAECAwQFBgcICQoLDA0ODw=3D=3D,format=3Dbase64 \ -blockdev '{"driver":"rbd","pool":"pool","image":"image",\ "server":[{"host":"mon1.example.org","port":"6321"},{"host":"mon2.example.= org",\ "port":"6322"},{"host":"mon3.example.org","port":"6322"}],"user":"myname",\ "auth-client-required":["cephx","none"],\ -"key-secret":"libvirt-14-storage-secret0","node-name":"libvirt-14-storage"= ,\ -"auto-read-only":true,"discard":"unmap"}' \ +"key-secret":"libvirt-14-storage-auth-secret0",\ +"node-name":"libvirt-14-storage","auto-read-only":true,"discard":"unmap"}'= \ -blockdev '{"node-name":"libvirt-14-format","read-only":false,"driver":"qc= ow2",\ "file":"libvirt-14-storage","backing":"libvirt-15-format"}' \ -device virtio-blk-pci,scsi=3Doff,bus=3Dpci.0,addr=3D0x5,drive=3Dlibvirt-1= 4-format,\ diff --git a/tests/qemuxml2argvdata/disk-hostdev-scsi-virtio-iscsi-auth-AES= .args b/tests/qemuxml2argvdata/disk-hostdev-scsi-virtio-iscsi-auth-AES.args index aece52dad2..47b014aacc 100644 --- a/tests/qemuxml2argvdata/disk-hostdev-scsi-virtio-iscsi-auth-AES.args +++ b/tests/qemuxml2argvdata/disk-hostdev-scsi-virtio-iscsi-auth-AES.args @@ -28,13 +28,13 @@ server,nowait \ -no-acpi \ -device virtio-scsi-pci,id=3Dscsi0,bus=3Dpci.0,addr=3D0x3 \ -usb \ --object secret,id=3Dvirtio-disk0-secret0,\ +-object secret,id=3Dvirtio-disk0-auth-secret0,\ data=3D9eao5F8qtkGt+seB1HYivWIxbtwUu6MQtg1zpj/oDtUsPr1q8wBYM91uEHCn6j/1,\ keyid=3DmasterKey0,iv=3DAAECAwQFBgcICQoLDA0ODw=3D=3D,format=3Dbase64 \ -drive file.driver=3Discsi,file.portal=3Dexample.org:6000,\ file.target=3Diqn.1992-01.com.example:storage,file.lun=3D1,file.transport= =3Dtcp,\ -file.user=3Dmyname,file.password-secret=3Dvirtio-disk0-secret0,format=3Dra= w,if=3Dnone,\ -id=3Ddrive-virtio-disk0 \ +file.user=3Dmyname,file.password-secret=3Dvirtio-disk0-auth-secret0,format= =3Draw,\ +if=3Dnone,id=3Ddrive-virtio-disk0 \ -device virtio-blk-pci,bus=3Dpci.0,addr=3D0x4,drive=3Ddrive-virtio-disk0,\ id=3Dvirtio-disk0,bootindex=3D1 \ -object secret,id=3Dhostdev0-secret0,\ diff --git a/tests/qemuxml2argvdata/disk-network-iscsi.x86_64-2.12.0.args b= /tests/qemuxml2argvdata/disk-network-iscsi.x86_64-2.12.0.args index 55347521da..930d8d5db2 100644 --- a/tests/qemuxml2argvdata/disk-network-iscsi.x86_64-2.12.0.args +++ b/tests/qemuxml2argvdata/disk-network-iscsi.x86_64-2.12.0.args @@ -38,22 +38,22 @@ file.target=3Diqn.1992-01.com.example,file.lun=3D1,file= .transport=3Dtcp,format=3Draw,\ if=3Dnone,id=3Ddrive-virtio-disk1 \ -device virtio-blk-pci,scsi=3Doff,bus=3Dpci.0,addr=3D0x4,drive=3Ddrive-vir= tio-disk1,\ id=3Dvirtio-disk1 \ --object secret,id=3Dvirtio-disk2-secret0,\ +-object secret,id=3Dvirtio-disk2-auth-secret0,\ data=3D9eao5F8qtkGt+seB1HYivWIxbtwUu6MQtg1zpj/oDtUsPr1q8wBYM91uEHCn6j/1,\ keyid=3DmasterKey0,iv=3DAAECAwQFBgcICQoLDA0ODw=3D=3D,format=3Dbase64 \ -drive file.driver=3Discsi,file.portal=3Dexample.org:6000,\ file.target=3Diqn.1992-01.com.example:storage,file.lun=3D1,file.transport= =3Dtcp,\ -file.user=3Dmyname,file.password-secret=3Dvirtio-disk2-secret0,format=3Dra= w,if=3Dnone,\ -id=3Ddrive-virtio-disk2 \ +file.user=3Dmyname,file.password-secret=3Dvirtio-disk2-auth-secret0,format= =3Draw,\ +if=3Dnone,id=3Ddrive-virtio-disk2 \ -device virtio-blk-pci,scsi=3Doff,bus=3Dpci.0,addr=3D0x5,drive=3Ddrive-vir= tio-disk2,\ id=3Dvirtio-disk2 \ --object secret,id=3Dvirtio-disk3-secret0,\ +-object secret,id=3Dvirtio-disk3-auth-secret0,\ data=3D9eao5F8qtkGt+seB1HYivWIxbtwUu6MQtg1zpj/oDtUsPr1q8wBYM91uEHCn6j/1,\ keyid=3DmasterKey0,iv=3DAAECAwQFBgcICQoLDA0ODw=3D=3D,format=3Dbase64 \ -drive file.driver=3Discsi,file.portal=3Dexample.org:6000,\ file.target=3Diqn.1992-01.com.example:storage,file.lun=3D2,file.transport= =3Dtcp,\ -file.user=3Dmyname,file.password-secret=3Dvirtio-disk3-secret0,format=3Dra= w,if=3Dnone,\ -id=3Ddrive-virtio-disk3 \ +file.user=3Dmyname,file.password-secret=3Dvirtio-disk3-auth-secret0,format= =3Draw,\ +if=3Dnone,id=3Ddrive-virtio-disk3 \ -device virtio-blk-pci,scsi=3Doff,bus=3Dpci.0,addr=3D0x6,drive=3Ddrive-vir= tio-disk3,\ id=3Dvirtio-disk3 \ -drive file.driver=3Discsi,file.portal=3Dexample.org:3260,\ diff --git a/tests/qemuxml2argvdata/disk-network-iscsi.x86_64-latest.args b= /tests/qemuxml2argvdata/disk-network-iscsi.x86_64-latest.args index 0df7819237..3f61f6dc2c 100644 --- a/tests/qemuxml2argvdata/disk-network-iscsi.x86_64-latest.args +++ b/tests/qemuxml2argvdata/disk-network-iscsi.x86_64-latest.args @@ -43,23 +43,23 @@ id=3Dvirtio-disk0,bootindex=3D1 \ "file":"libvirt-4-storage"}' \ -device virtio-blk-pci,scsi=3Doff,bus=3Dpci.0,addr=3D0x4,drive=3Dlibvirt-4= -format,\ id=3Dvirtio-disk1 \ --object secret,id=3Dlibvirt-3-storage-secret0,\ +-object secret,id=3Dlibvirt-3-storage-auth-secret0,\ data=3D9eao5F8qtkGt+seB1HYivWIxbtwUu6MQtg1zpj/oDtUsPr1q8wBYM91uEHCn6j/1,\ keyid=3DmasterKey0,iv=3DAAECAwQFBgcICQoLDA0ODw=3D=3D,format=3Dbase64 \ -blockdev '{"driver":"iscsi","portal":"example.org:6000",\ "target":"iqn.1992-01.com.example:storage","lun":1,"transport":"tcp",\ -"user":"myname","password-secret":"libvirt-3-storage-secret0",\ +"user":"myname","password-secret":"libvirt-3-storage-auth-secret0",\ "node-name":"libvirt-3-storage","auto-read-only":true,"discard":"unmap"}' \ -blockdev '{"node-name":"libvirt-3-format","read-only":false,"driver":"raw= ",\ "file":"libvirt-3-storage"}' \ -device virtio-blk-pci,scsi=3Doff,bus=3Dpci.0,addr=3D0x5,drive=3Dlibvirt-3= -format,\ id=3Dvirtio-disk2 \ --object secret,id=3Dlibvirt-2-storage-secret0,\ +-object secret,id=3Dlibvirt-2-storage-auth-secret0,\ data=3D9eao5F8qtkGt+seB1HYivWIxbtwUu6MQtg1zpj/oDtUsPr1q8wBYM91uEHCn6j/1,\ keyid=3DmasterKey0,iv=3DAAECAwQFBgcICQoLDA0ODw=3D=3D,format=3Dbase64 \ -blockdev '{"driver":"iscsi","portal":"example.org:6000",\ "target":"iqn.1992-01.com.example:storage","lun":2,"transport":"tcp",\ -"user":"myname","password-secret":"libvirt-2-storage-secret0",\ +"user":"myname","password-secret":"libvirt-2-storage-auth-secret0",\ "node-name":"libvirt-2-storage","auto-read-only":true,"discard":"unmap"}' \ -blockdev '{"node-name":"libvirt-2-format","read-only":false,"driver":"raw= ",\ "file":"libvirt-2-storage"}' \ diff --git a/tests/qemuxml2argvdata/disk-network-rbd.x86_64-2.12.0.args b/t= ests/qemuxml2argvdata/disk-network-rbd.x86_64-2.12.0.args index 18cb534552..21d1c2deba 100644 --- a/tests/qemuxml2argvdata/disk-network-rbd.x86_64-2.12.0.args +++ b/tests/qemuxml2argvdata/disk-network-rbd.x86_64-2.12.0.args @@ -45,12 +45,12 @@ id=3Dvirtio-disk2 \ format=3Draw,if=3Dnone,id=3Ddrive-virtio-disk3 \ -device virtio-blk-pci,scsi=3Doff,bus=3Dpci.0,addr=3D0x5,drive=3Ddrive-vir= tio-disk3,\ id=3Dvirtio-disk3 \ --object secret,id=3Dvirtio-disk4-secret0,\ +-object secret,id=3Dvirtio-disk4-auth-secret0,\ data=3D9eao5F8qtkGt+seB1HYivWIxbtwUu6MQtg1zpj/oDtUsPr1q8wBYM91uEHCn6j/1,\ keyid=3DmasterKey0,iv=3DAAECAwQFBgcICQoLDA0ODw=3D=3D,format=3Dbase64 \ -drive 'file=3Drbd:pool/image:id=3Dmyname:auth_supported=3Dcephx\;none:\ mon_host=3Dmon1.example.org\:6321\;mon2.example.org\:6322\;mon3.example.or= g\:\ -6322,file.password-secret=3Dvirtio-disk4-secret0,format=3Draw,if=3Dnone,\ +6322,file.password-secret=3Dvirtio-disk4-auth-secret0,format=3Draw,if=3Dno= ne,\ id=3Ddrive-virtio-disk4' \ -device virtio-blk-pci,scsi=3Doff,bus=3Dpci.0,addr=3D0x6,drive=3Ddrive-vir= tio-disk4,\ id=3Dvirtio-disk4 \ diff --git a/tests/qemuxml2argvdata/disk-network-rbd.x86_64-latest.args b/t= ests/qemuxml2argvdata/disk-network-rbd.x86_64-latest.args index ea4cb6ff06..fb8fc988e8 100644 --- a/tests/qemuxml2argvdata/disk-network-rbd.x86_64-latest.args +++ b/tests/qemuxml2argvdata/disk-network-rbd.x86_64-latest.args @@ -57,14 +57,14 @@ id=3Dvirtio-disk2 \ "file":"libvirt-3-storage"}' \ -device virtio-blk-pci,scsi=3Doff,bus=3Dpci.0,addr=3D0x5,drive=3Dlibvirt-3= -format,\ id=3Dvirtio-disk3 \ --object secret,id=3Dlibvirt-2-storage-secret0,\ +-object secret,id=3Dlibvirt-2-storage-auth-secret0,\ data=3D9eao5F8qtkGt+seB1HYivWIxbtwUu6MQtg1zpj/oDtUsPr1q8wBYM91uEHCn6j/1,\ keyid=3DmasterKey0,iv=3DAAECAwQFBgcICQoLDA0ODw=3D=3D,format=3Dbase64 \ -blockdev '{"driver":"rbd","pool":"pool","image":"image",\ "server":[{"host":"mon1.example.org","port":"6321"},{"host":"mon2.example.= org",\ "port":"6322"},{"host":"mon3.example.org","port":"6322"}],"user":"myname",\ "auth-client-required":["cephx","none"],\ -"key-secret":"libvirt-2-storage-secret0","node-name":"libvirt-2-storage",\ +"key-secret":"libvirt-2-storage-auth-secret0","node-name":"libvirt-2-stora= ge",\ "auto-read-only":true,"discard":"unmap"}' \ -blockdev '{"node-name":"libvirt-2-format","read-only":false,"driver":"raw= ",\ "file":"libvirt-2-storage"}' \ diff --git a/tests/qemuxml2argvdata/disk-network-source-auth.x86_64-2.12.0.= args b/tests/qemuxml2argvdata/disk-network-source-auth.x86_64-2.12.0.args index f34c6b678d..279d5c73ec 100644 --- a/tests/qemuxml2argvdata/disk-network-source-auth.x86_64-2.12.0.args +++ b/tests/qemuxml2argvdata/disk-network-source-auth.x86_64-2.12.0.args @@ -27,21 +27,21 @@ file=3D/tmp/lib/domain--1-QEMUGuest1/master-key.aes \ -no-acpi \ -boot strict=3Don \ -device piix3-usb-uhci,id=3Dusb,bus=3Dpci.0,addr=3D0x1.0x2 \ --object secret,id=3Dvirtio-disk0-secret0,\ +-object secret,id=3Dvirtio-disk0-auth-secret0,\ data=3D9eao5F8qtkGt+seB1HYivWIxbtwUu6MQtg1zpj/oDtUsPr1q8wBYM91uEHCn6j/1,\ keyid=3DmasterKey0,iv=3DAAECAwQFBgcICQoLDA0ODw=3D=3D,format=3Dbase64 \ -drive file.driver=3Discsi,file.portal=3Dexample.org:6000,\ file.target=3Diqn.1992-01.com.example:storage,file.lun=3D1,file.transport= =3Dtcp,\ -file.user=3Dmyname,file.password-secret=3Dvirtio-disk0-secret0,format=3Dra= w,if=3Dnone,\ -id=3Ddrive-virtio-disk0 \ +file.user=3Dmyname,file.password-secret=3Dvirtio-disk0-auth-secret0,format= =3Draw,\ +if=3Dnone,id=3Ddrive-virtio-disk0 \ -device virtio-blk-pci,scsi=3Doff,bus=3Dpci.0,addr=3D0x2,drive=3Ddrive-vir= tio-disk0,\ id=3Dvirtio-disk0,bootindex=3D1 \ --object secret,id=3Dvirtio-disk1-secret0,\ +-object secret,id=3Dvirtio-disk1-auth-secret0,\ data=3D9eao5F8qtkGt+seB1HYivWIxbtwUu6MQtg1zpj/oDtUsPr1q8wBYM91uEHCn6j/1,\ keyid=3DmasterKey0,iv=3DAAECAwQFBgcICQoLDA0ODw=3D=3D,format=3Dbase64 \ -drive 'file=3Drbd:pool/image:id=3Dmyname:auth_supported=3Dcephx\;none:\ mon_host=3Dmon1.example.org\:6321\;mon2.example.org\:6322\;mon3.example.or= g\:\ -6322,file.password-secret=3Dvirtio-disk1-secret0,format=3Draw,if=3Dnone,\ +6322,file.password-secret=3Dvirtio-disk1-auth-secret0,format=3Draw,if=3Dno= ne,\ id=3Ddrive-virtio-disk1' \ -device virtio-blk-pci,scsi=3Doff,bus=3Dpci.0,addr=3D0x3,drive=3Ddrive-vir= tio-disk1,\ id=3Dvirtio-disk1 \ diff --git a/tests/qemuxml2argvdata/disk-network-source-auth.x86_64-latest.= args b/tests/qemuxml2argvdata/disk-network-source-auth.x86_64-latest.args index 44b8ec87df..7a504d49be 100644 --- a/tests/qemuxml2argvdata/disk-network-source-auth.x86_64-latest.args +++ b/tests/qemuxml2argvdata/disk-network-source-auth.x86_64-latest.args @@ -28,25 +28,25 @@ file=3D/tmp/lib/domain--1-QEMUGuest1/master-key.aes \ -no-acpi \ -boot strict=3Don \ -device piix3-usb-uhci,id=3Dusb,bus=3Dpci.0,addr=3D0x1.0x2 \ --object secret,id=3Dlibvirt-2-storage-secret0,\ +-object secret,id=3Dlibvirt-2-storage-auth-secret0,\ data=3D9eao5F8qtkGt+seB1HYivWIxbtwUu6MQtg1zpj/oDtUsPr1q8wBYM91uEHCn6j/1,\ keyid=3DmasterKey0,iv=3DAAECAwQFBgcICQoLDA0ODw=3D=3D,format=3Dbase64 \ -blockdev '{"driver":"iscsi","portal":"example.org:6000",\ "target":"iqn.1992-01.com.example:storage","lun":1,"transport":"tcp",\ -"user":"myname","password-secret":"libvirt-2-storage-secret0",\ +"user":"myname","password-secret":"libvirt-2-storage-auth-secret0",\ "node-name":"libvirt-2-storage","auto-read-only":true,"discard":"unmap"}' \ -blockdev '{"node-name":"libvirt-2-format","read-only":false,"driver":"raw= ",\ "file":"libvirt-2-storage"}' \ -device virtio-blk-pci,scsi=3Doff,bus=3Dpci.0,addr=3D0x2,drive=3Dlibvirt-2= -format,\ id=3Dvirtio-disk0,bootindex=3D1 \ --object secret,id=3Dlibvirt-1-storage-secret0,\ +-object secret,id=3Dlibvirt-1-storage-auth-secret0,\ data=3D9eao5F8qtkGt+seB1HYivWIxbtwUu6MQtg1zpj/oDtUsPr1q8wBYM91uEHCn6j/1,\ keyid=3DmasterKey0,iv=3DAAECAwQFBgcICQoLDA0ODw=3D=3D,format=3Dbase64 \ -blockdev '{"driver":"rbd","pool":"pool","image":"image",\ "server":[{"host":"mon1.example.org","port":"6321"},{"host":"mon2.example.= org",\ "port":"6322"},{"host":"mon3.example.org","port":"6322"}],"user":"myname",\ "auth-client-required":["cephx","none"],\ -"key-secret":"libvirt-1-storage-secret0","node-name":"libvirt-1-storage",\ +"key-secret":"libvirt-1-storage-auth-secret0","node-name":"libvirt-1-stora= ge",\ "auto-read-only":true,"discard":"unmap"}' \ -blockdev '{"node-name":"libvirt-1-format","read-only":false,"driver":"raw= ",\ "file":"libvirt-1-storage"}' \ diff --git a/tests/qemuxml2argvdata/disk-nvme.x86_64-latest.args b/tests/qe= muxml2argvdata/disk-nvme.x86_64-latest.args index 2962f496c4..5334882c0b 100644 --- a/tests/qemuxml2argvdata/disk-nvme.x86_64-latest.args +++ b/tests/qemuxml2argvdata/disk-nvme.x86_64-latest.args @@ -47,7 +47,7 @@ id=3Dvirtio-disk1 \ "file":"libvirt-2-storage"}' \ -device virtio-blk-pci,scsi=3Doff,bus=3Dpci.0,addr=3D0x6,drive=3Dlibvirt-2= -format,\ id=3Dvirtio-disk2 \ --object secret,id=3Dlibvirt-1-format-luks-secret0,\ +-object secret,id=3Dlibvirt-1-format-encryption-secret0,\ data=3D9eao5F8qtkGt+seB1HYivWIxbtwUu6MQtg1zpj/oDtUsPr1q8wBYM91uEHCn6j/1,\ keyid=3DmasterKey0,iv=3DAAECAwQFBgcICQoLDA0ODw=3D=3D,format=3Dbase64 \ -blockdev '{"driver":"nvme","device":"0001:02:00.0","namespace":2,\ @@ -55,7 +55,7 @@ keyid=3DmasterKey0,iv=3DAAECAwQFBgcICQoLDA0ODw=3D=3D,form= at=3Dbase64 \ "auto-read-only":true,"discard":"unmap"}' \ -blockdev '{"node-name":"libvirt-1-format","read-only":false,\ "cache":{"direct":true,"no-flush":false},"driver":"qcow2",\ -"encrypt":{"format":"luks","key-secret":"libvirt-1-format-luks-secret0"},\ +"encrypt":{"format":"luks","key-secret":"libvirt-1-format-encryption-secre= t0"},\ "file":"libvirt-1-storage"}' \ -device virtio-blk-pci,scsi=3Doff,bus=3Dpci.0,addr=3D0x7,drive=3Dlibvirt-1= -format,\ id=3Dvirtio-disk3,write-cache=3Don \ diff --git a/tests/qemuxml2argvdata/encrypted-disk-usage.args b/tests/qemux= ml2argvdata/encrypted-disk-usage.args index 4522d2cb84..8641701293 100644 --- a/tests/qemuxml2argvdata/encrypted-disk-usage.args +++ b/tests/qemuxml2argvdata/encrypted-disk-usage.args @@ -27,11 +27,11 @@ path=3D/tmp/lib/domain--1-encryptdisk/monitor.sock,serv= er,nowait \ -no-shutdown \ -no-acpi \ -usb \ --object secret,id=3Dvirtio-disk0-luks-secret0,\ +-object secret,id=3Dvirtio-disk0-encryption-secret0,\ data=3D9eao5F8qtkGt+seB1HYivWIxbtwUu6MQtg1zpj/oDtUsPr1q8wBYM91uEHCn6j/1,\ keyid=3DmasterKey0,iv=3DAAECAwQFBgcICQoLDA0ODw=3D=3D,format=3Dbase64 \ -drive file=3D/storage/guest_disks/encryptdisk,encrypt.format=3Dluks,\ -encrypt.key-secret=3Dvirtio-disk0-luks-secret0,format=3Dqcow2,if=3Dnone,\ +encrypt.key-secret=3Dvirtio-disk0-encryption-secret0,format=3Dqcow2,if=3Dn= one,\ id=3Ddrive-virtio-disk0 \ -device virtio-blk-pci,bus=3Dpci.0,addr=3D0x4,drive=3Ddrive-virtio-disk0,\ id=3Dvirtio-disk0,bootindex=3D1 \ diff --git a/tests/qemuxml2argvdata/encrypted-disk.args b/tests/qemuxml2arg= vdata/encrypted-disk.args index 4522d2cb84..8641701293 100644 --- a/tests/qemuxml2argvdata/encrypted-disk.args +++ b/tests/qemuxml2argvdata/encrypted-disk.args @@ -27,11 +27,11 @@ path=3D/tmp/lib/domain--1-encryptdisk/monitor.sock,serv= er,nowait \ -no-shutdown \ -no-acpi \ -usb \ --object secret,id=3Dvirtio-disk0-luks-secret0,\ +-object secret,id=3Dvirtio-disk0-encryption-secret0,\ data=3D9eao5F8qtkGt+seB1HYivWIxbtwUu6MQtg1zpj/oDtUsPr1q8wBYM91uEHCn6j/1,\ keyid=3DmasterKey0,iv=3DAAECAwQFBgcICQoLDA0ODw=3D=3D,format=3Dbase64 \ -drive file=3D/storage/guest_disks/encryptdisk,encrypt.format=3Dluks,\ -encrypt.key-secret=3Dvirtio-disk0-luks-secret0,format=3Dqcow2,if=3Dnone,\ +encrypt.key-secret=3Dvirtio-disk0-encryption-secret0,format=3Dqcow2,if=3Dn= one,\ id=3Ddrive-virtio-disk0 \ -device virtio-blk-pci,bus=3Dpci.0,addr=3D0x4,drive=3Ddrive-virtio-disk0,\ id=3Dvirtio-disk0,bootindex=3D1 \ diff --git a/tests/qemuxml2argvdata/luks-disks-source-qcow2.args b/tests/qe= muxml2argvdata/luks-disks-source-qcow2.args index ab1c864cf6..e7a29b2e03 100644 --- a/tests/qemuxml2argvdata/luks-disks-source-qcow2.args +++ b/tests/qemuxml2argvdata/luks-disks-source-qcow2.args @@ -27,53 +27,53 @@ path=3D/tmp/lib/domain--1-encryptdisk/monitor.sock,serv= er,nowait \ -no-shutdown \ -no-acpi \ -usb \ --object secret,id=3Dvirtio-disk0-luks-secret0,\ +-object secret,id=3Dvirtio-disk0-encryption-secret0,\ data=3D9eao5F8qtkGt+seB1HYivWIxbtwUu6MQtg1zpj/oDtUsPr1q8wBYM91uEHCn6j/1,\ keyid=3DmasterKey0,iv=3DAAECAwQFBgcICQoLDA0ODw=3D=3D,format=3Dbase64 \ -drive file=3D/storage/guest_disks/encryptdisk,encrypt.format=3Dluks,\ -encrypt.key-secret=3Dvirtio-disk0-luks-secret0,format=3Dqcow2,if=3Dnone,\ +encrypt.key-secret=3Dvirtio-disk0-encryption-secret0,format=3Dqcow2,if=3Dn= one,\ id=3Ddrive-virtio-disk0 \ -device virtio-blk-pci,bus=3Dpci.0,addr=3D0x4,drive=3Ddrive-virtio-disk0,\ id=3Dvirtio-disk0,bootindex=3D1 \ --object secret,id=3Dvirtio-disk1-luks-secret0,\ +-object secret,id=3Dvirtio-disk1-encryption-secret0,\ data=3D9eao5F8qtkGt+seB1HYivWIxbtwUu6MQtg1zpj/oDtUsPr1q8wBYM91uEHCn6j/1,\ keyid=3DmasterKey0,iv=3DAAECAwQFBgcICQoLDA0ODw=3D=3D,format=3Dbase64 \ -drive file=3D/storage/guest_disks/encryptdisk2,encrypt.format=3Dluks,\ -encrypt.key-secret=3Dvirtio-disk1-luks-secret0,format=3Dqcow2,if=3Dnone,\ +encrypt.key-secret=3Dvirtio-disk1-encryption-secret0,format=3Dqcow2,if=3Dn= one,\ id=3Ddrive-virtio-disk1 \ -device virtio-blk-pci,bus=3Dpci.0,addr=3D0x5,drive=3Ddrive-virtio-disk1,\ id=3Dvirtio-disk1 \ --object secret,id=3Dvirtio-disk2-luks-secret0,\ +-object secret,id=3Dvirtio-disk2-encryption-secret0,\ data=3D9eao5F8qtkGt+seB1HYivWIxbtwUu6MQtg1zpj/oDtUsPr1q8wBYM91uEHCn6j/1,\ keyid=3DmasterKey0,iv=3DAAECAwQFBgcICQoLDA0ODw=3D=3D,format=3Dbase64 \ -drive file=3Discsi://myname:AQCVn5hO6HzFAhAAq0NCv8jtJcIcE+HOBlMQ1A@exampl= e.org:\ 6000/iqn.1992-01.com.example%3Astorage/1,encrypt.format=3Dluks,\ -encrypt.key-secret=3Dvirtio-disk2-luks-secret0,format=3Dqcow2,if=3Dnone,\ +encrypt.key-secret=3Dvirtio-disk2-encryption-secret0,format=3Dqcow2,if=3Dn= one,\ id=3Ddrive-virtio-disk2 \ -device virtio-blk-pci,bus=3Dpci.0,addr=3D0x6,drive=3Ddrive-virtio-disk2,\ id=3Dvirtio-disk2 \ --object secret,id=3Dvirtio-disk3-luks-secret0,\ +-object secret,id=3Dvirtio-disk3-encryption-secret0,\ data=3D9eao5F8qtkGt+seB1HYivWIxbtwUu6MQtg1zpj/oDtUsPr1q8wBYM91uEHCn6j/1,\ keyid=3DmasterKey0,iv=3DAAECAwQFBgcICQoLDA0ODw=3D=3D,format=3Dbase64 \ -drive file=3Discsi://iscsi.example.com:3260/demo-target/3,encrypt.format= =3Dluks,\ -encrypt.key-secret=3Dvirtio-disk3-luks-secret0,format=3Dqcow2,if=3Dnone,\ +encrypt.key-secret=3Dvirtio-disk3-encryption-secret0,format=3Dqcow2,if=3Dn= one,\ id=3Ddrive-virtio-disk3 \ -device virtio-blk-pci,bus=3Dpci.0,addr=3D0x7,drive=3Ddrive-virtio-disk3,\ id=3Dvirtio-disk3 \ --object secret,id=3Dvirtio-disk4-luks-secret0,\ +-object secret,id=3Dvirtio-disk4-encryption-secret0,\ data=3D9eao5F8qtkGt+seB1HYivWIxbtwUu6MQtg1zpj/oDtUsPr1q8wBYM91uEHCn6j/1,\ keyid=3DmasterKey0,iv=3DAAECAwQFBgcICQoLDA0ODw=3D=3D,format=3Dbase64 \ -drive 'file=3Drbd:pool/image:auth_supported=3Dnone:mon_host=3Dmon1.exampl= e.org/ 6321\;mon2.example.org\:6322\;mon3.example.org\:6322,encrypt.format=3Dluks= ,\ -encrypt.key-secret=3Dvirtio-disk4-luks-secret0,format=3Dqcow2,if=3Dnone,\ +encrypt.key-secret=3Dvirtio-disk4-encryption-secret0,format=3Dqcow2,if=3Dn= one,\ id=3Ddrive-virtio-disk4' \ -device virtio-blk-pci,bus=3Dpci.0,addr=3D0x8,drive=3Ddrive-virtio-disk4,\ id=3Dvirtio-disk4 \ --object secret,id=3Dvirtio-disk5-luks-secret0,\ +-object secret,id=3Dvirtio-disk5-encryption-secret0,\ data=3D9eao5F8qtkGt+seB1HYivWIxbtwUu6MQtg1zpj/oDtUsPr1q8wBYM91uEHCn6j/1,\ keyid=3DmasterKey0,iv=3DAAECAwQFBgcICQoLDA0ODw=3D=3D,format=3Dbase64 \ -drive file=3D/storage/guest_disks/encryptdisk5,encrypt.format=3Dluks,\ -encrypt.key-secret=3Dvirtio-disk5-luks-secret0,format=3Dqcow2,if=3Dnone,\ +encrypt.key-secret=3Dvirtio-disk5-encryption-secret0,format=3Dqcow2,if=3Dn= one,\ id=3Ddrive-virtio-disk5 \ -device virtio-blk-pci,bus=3Dpci.0,addr=3D0x9,drive=3Ddrive-virtio-disk5,\ id=3Dvirtio-disk5 \ diff --git a/tests/qemuxml2argvdata/luks-disks-source-qcow2.x86_64-latest.a= rgs b/tests/qemuxml2argvdata/luks-disks-source-qcow2.x86_64-latest.args index 021bcb6961..44e4c5698d 100644 --- a/tests/qemuxml2argvdata/luks-disks-source-qcow2.x86_64-latest.args +++ b/tests/qemuxml2argvdata/luks-disks-source-qcow2.x86_64-latest.args @@ -28,53 +28,53 @@ file=3D/tmp/lib/domain--1-encryptdisk/master-key.aes \ -no-acpi \ -boot strict=3Don \ -device piix3-usb-uhci,id=3Dusb,bus=3Dpci.0,addr=3D0x1.0x2 \ --object secret,id=3Dlibvirt-7-format-luks-secret0,\ +-object secret,id=3Dlibvirt-7-format-encryption-secret0,\ data=3D9eao5F8qtkGt+seB1HYivWIxbtwUu6MQtg1zpj/oDtUsPr1q8wBYM91uEHCn6j/1,\ keyid=3DmasterKey0,iv=3DAAECAwQFBgcICQoLDA0ODw=3D=3D,format=3Dbase64 \ -blockdev '{"driver":"file","filename":"/storage/guest_disks/encryptdisk",\ "node-name":"libvirt-7-storage","auto-read-only":true,"discard":"unmap"}' \ -blockdev '{"node-name":"libvirt-7-format","read-only":false,"driver":"qco= w2",\ -"encrypt":{"format":"luks","key-secret":"libvirt-7-format-luks-secret0"},\ +"encrypt":{"format":"luks","key-secret":"libvirt-7-format-encryption-secre= t0"},\ "file":"libvirt-7-storage"}' \ -device virtio-blk-pci,scsi=3Doff,bus=3Dpci.0,addr=3D0x4,drive=3Dlibvirt-7= -format,\ id=3Dvirtio-disk0,bootindex=3D1 \ --object secret,id=3Dlibvirt-6-format-luks-secret0,\ +-object secret,id=3Dlibvirt-6-format-encryption-secret0,\ data=3D9eao5F8qtkGt+seB1HYivWIxbtwUu6MQtg1zpj/oDtUsPr1q8wBYM91uEHCn6j/1,\ keyid=3DmasterKey0,iv=3DAAECAwQFBgcICQoLDA0ODw=3D=3D,format=3Dbase64 \ -blockdev '{"driver":"file","filename":"/storage/guest_disks/encryptdisk2"= ,\ "node-name":"libvirt-6-storage","auto-read-only":true,"discard":"unmap"}' \ -blockdev '{"node-name":"libvirt-6-format","read-only":false,"driver":"qco= w2",\ -"encrypt":{"format":"luks","key-secret":"libvirt-6-format-luks-secret0"},\ +"encrypt":{"format":"luks","key-secret":"libvirt-6-format-encryption-secre= t0"},\ "file":"libvirt-6-storage"}' \ -device virtio-blk-pci,scsi=3Doff,bus=3Dpci.0,addr=3D0x5,drive=3Dlibvirt-6= -format,\ id=3Dvirtio-disk1 \ --object secret,id=3Dlibvirt-5-storage-secret0,\ +-object secret,id=3Dlibvirt-5-storage-auth-secret0,\ data=3D9eao5F8qtkGt+seB1HYivWIxbtwUu6MQtg1zpj/oDtUsPr1q8wBYM91uEHCn6j/1,\ keyid=3DmasterKey0,iv=3DAAECAwQFBgcICQoLDA0ODw=3D=3D,format=3Dbase64 \ --object secret,id=3Dlibvirt-5-format-luks-secret0,\ +-object secret,id=3Dlibvirt-5-format-encryption-secret0,\ data=3D9eao5F8qtkGt+seB1HYivWIxbtwUu6MQtg1zpj/oDtUsPr1q8wBYM91uEHCn6j/1,\ keyid=3DmasterKey0,iv=3DAAECAwQFBgcICQoLDA0ODw=3D=3D,format=3Dbase64 \ -blockdev '{"driver":"iscsi","portal":"example.org:6000",\ "target":"iqn.1992-01.com.example:storage","lun":1,"transport":"tcp",\ -"user":"myname","password-secret":"libvirt-5-storage-secret0",\ +"user":"myname","password-secret":"libvirt-5-storage-auth-secret0",\ "node-name":"libvirt-5-storage","auto-read-only":true,"discard":"unmap"}' \ -blockdev '{"node-name":"libvirt-5-format","read-only":false,"driver":"qco= w2",\ -"encrypt":{"format":"luks","key-secret":"libvirt-5-format-luks-secret0"},\ +"encrypt":{"format":"luks","key-secret":"libvirt-5-format-encryption-secre= t0"},\ "file":"libvirt-5-storage"}' \ -device virtio-blk-pci,scsi=3Doff,bus=3Dpci.0,addr=3D0x2,drive=3Dlibvirt-5= -format,\ id=3Dvirtio-disk2 \ --object secret,id=3Dlibvirt-4-format-luks-secret0,\ +-object secret,id=3Dlibvirt-4-format-encryption-secret0,\ data=3D9eao5F8qtkGt+seB1HYivWIxbtwUu6MQtg1zpj/oDtUsPr1q8wBYM91uEHCn6j/1,\ keyid=3DmasterKey0,iv=3DAAECAwQFBgcICQoLDA0ODw=3D=3D,format=3Dbase64 \ -blockdev '{"driver":"iscsi","portal":"iscsi.example.com:3260",\ "target":"demo-target","lun":3,"transport":"tcp",\ "node-name":"libvirt-4-storage","auto-read-only":true,"discard":"unmap"}' \ -blockdev '{"node-name":"libvirt-4-format","read-only":false,"driver":"qco= w2",\ -"encrypt":{"format":"luks","key-secret":"libvirt-4-format-luks-secret0"},\ +"encrypt":{"format":"luks","key-secret":"libvirt-4-format-encryption-secre= t0"},\ "file":"libvirt-4-storage"}' \ -device virtio-blk-pci,scsi=3Doff,bus=3Dpci.0,addr=3D0x6,drive=3Dlibvirt-4= -format,\ id=3Dvirtio-disk3 \ --object secret,id=3Dlibvirt-3-format-luks-secret0,\ +-object secret,id=3Dlibvirt-3-format-encryption-secret0,\ data=3D9eao5F8qtkGt+seB1HYivWIxbtwUu6MQtg1zpj/oDtUsPr1q8wBYM91uEHCn6j/1,\ keyid=3DmasterKey0,iv=3DAAECAwQFBgcICQoLDA0ODw=3D=3D,format=3Dbase64 \ -blockdev '{"driver":"rbd","pool":"pool","image":"image",\ @@ -82,25 +82,25 @@ keyid=3DmasterKey0,iv=3DAAECAwQFBgcICQoLDA0ODw=3D=3D,fo= rmat=3Dbase64 \ "port":"6322"},{"host":"mon3.example.org","port":"6322"}],\ "node-name":"libvirt-3-storage","auto-read-only":true,"discard":"unmap"}' \ -blockdev '{"node-name":"libvirt-3-format","read-only":false,"driver":"qco= w2",\ -"encrypt":{"format":"luks","key-secret":"libvirt-3-format-luks-secret0"},\ +"encrypt":{"format":"luks","key-secret":"libvirt-3-format-encryption-secre= t0"},\ "file":"libvirt-3-storage"}' \ -device virtio-blk-pci,scsi=3Doff,bus=3Dpci.0,addr=3D0x7,drive=3Dlibvirt-3= -format,\ id=3Dvirtio-disk4 \ --object secret,id=3Dlibvirt-2-format-luks-secret0,\ +-object secret,id=3Dlibvirt-2-format-encryption-secret0,\ data=3D9eao5F8qtkGt+seB1HYivWIxbtwUu6MQtg1zpj/oDtUsPr1q8wBYM91uEHCn6j/1,\ keyid=3DmasterKey0,iv=3DAAECAwQFBgcICQoLDA0ODw=3D=3D,format=3Dbase64 \ -blockdev '{"driver":"file","filename":"/storage/guest_disks/base.qcow2",\ "node-name":"libvirt-2-storage","auto-read-only":true,"discard":"unmap"}' \ -blockdev '{"node-name":"libvirt-2-format","read-only":true,"driver":"qcow= 2",\ -"encrypt":{"format":"luks","key-secret":"libvirt-2-format-luks-secret0"},\ +"encrypt":{"format":"luks","key-secret":"libvirt-2-format-encryption-secre= t0"},\ "file":"libvirt-2-storage","backing":null}' \ --object secret,id=3Dlibvirt-1-format-luks-secret0,\ +-object secret,id=3Dlibvirt-1-format-encryption-secret0,\ data=3D9eao5F8qtkGt+seB1HYivWIxbtwUu6MQtg1zpj/oDtUsPr1q8wBYM91uEHCn6j/1,\ keyid=3DmasterKey0,iv=3DAAECAwQFBgcICQoLDA0ODw=3D=3D,format=3Dbase64 \ -blockdev '{"driver":"file","filename":"/storage/guest_disks/encryptdisk5"= ,\ "node-name":"libvirt-1-storage","auto-read-only":true,"discard":"unmap"}' \ -blockdev '{"node-name":"libvirt-1-format","read-only":false,"driver":"qco= w2",\ -"encrypt":{"format":"luks","key-secret":"libvirt-1-format-luks-secret0"},\ +"encrypt":{"format":"luks","key-secret":"libvirt-1-format-encryption-secre= t0"},\ "file":"libvirt-1-storage","backing":"libvirt-2-format"}' \ -device virtio-blk-pci,scsi=3Doff,bus=3Dpci.0,addr=3D0x8,drive=3Dlibvirt-1= -format,\ id=3Dvirtio-disk5 \ diff --git a/tests/qemuxml2argvdata/luks-disks-source.args b/tests/qemuxml2= argvdata/luks-disks-source.args index 4566f84ff1..e2bd559212 100644 --- a/tests/qemuxml2argvdata/luks-disks-source.args +++ b/tests/qemuxml2argvdata/luks-disks-source.args @@ -27,41 +27,45 @@ path=3D/tmp/lib/domain--1-encryptdisk/monitor.sock,serv= er,nowait \ -no-shutdown \ -no-acpi \ -usb \ --object secret,id=3Dvirtio-disk0-luks-secret0,\ +-object secret,id=3Dvirtio-disk0-encryption-secret0,\ data=3D9eao5F8qtkGt+seB1HYivWIxbtwUu6MQtg1zpj/oDtUsPr1q8wBYM91uEHCn6j/1,\ keyid=3DmasterKey0,iv=3DAAECAwQFBgcICQoLDA0ODw=3D=3D,format=3Dbase64 \ -drive file=3D/storage/guest_disks/encryptdisk,\ -key-secret=3Dvirtio-disk0-luks-secret0,format=3Dluks,if=3Dnone,id=3Ddrive-= virtio-disk0 \ +key-secret=3Dvirtio-disk0-encryption-secret0,format=3Dluks,if=3Dnone,\ +id=3Ddrive-virtio-disk0 \ -device virtio-blk-pci,bus=3Dpci.0,addr=3D0x4,drive=3Ddrive-virtio-disk0,\ id=3Dvirtio-disk0,bootindex=3D1 \ --object secret,id=3Dvirtio-disk1-luks-secret0,\ +-object secret,id=3Dvirtio-disk1-encryption-secret0,\ data=3D9eao5F8qtkGt+seB1HYivWIxbtwUu6MQtg1zpj/oDtUsPr1q8wBYM91uEHCn6j/1,\ keyid=3DmasterKey0,iv=3DAAECAwQFBgcICQoLDA0ODw=3D=3D,format=3Dbase64 \ -drive file=3D/storage/guest_disks/encryptdisk2,\ -key-secret=3Dvirtio-disk1-luks-secret0,format=3Dluks,if=3Dnone,id=3Ddrive-= virtio-disk1 \ +key-secret=3Dvirtio-disk1-encryption-secret0,format=3Dluks,if=3Dnone,\ +id=3Ddrive-virtio-disk1 \ -device virtio-blk-pci,bus=3Dpci.0,addr=3D0x5,drive=3Ddrive-virtio-disk1,\ id=3Dvirtio-disk1 \ --object secret,id=3Dvirtio-disk2-luks-secret0,\ +-object secret,id=3Dvirtio-disk2-encryption-secret0,\ data=3D9eao5F8qtkGt+seB1HYivWIxbtwUu6MQtg1zpj/oDtUsPr1q8wBYM91uEHCn6j/1,\ keyid=3DmasterKey0,iv=3DAAECAwQFBgcICQoLDA0ODw=3D=3D,format=3Dbase64 \ -drive file=3Discsi://myname:AQCVn5hO6HzFAhAAq0NCv8jtJcIcE+HOBlMQ1A@exampl= e.org:\ -6000/iqn.1992-01.com.example%3Astorage/1,key-secret=3Dvirtio-disk2-luks-se= cret0,\ -format=3Dluks,if=3Dnone,id=3Ddrive-virtio-disk2 \ +6000/iqn.1992-01.com.example%3Astorage/1,\ +key-secret=3Dvirtio-disk2-encryption-secret0,format=3Dluks,if=3Dnone,\ +id=3Ddrive-virtio-disk2 \ -device virtio-blk-pci,bus=3Dpci.0,addr=3D0x6,drive=3Ddrive-virtio-disk2,\ id=3Dvirtio-disk2 \ --object secret,id=3Dvirtio-disk3-luks-secret0,\ +-object secret,id=3Dvirtio-disk3-encryption-secret0,\ data=3D9eao5F8qtkGt+seB1HYivWIxbtwUu6MQtg1zpj/oDtUsPr1q8wBYM91uEHCn6j/1,\ keyid=3DmasterKey0,iv=3DAAECAwQFBgcICQoLDA0ODw=3D=3D,format=3Dbase64 \ -drive file=3Discsi://iscsi.example.com:3260/demo-target/3,\ -key-secret=3Dvirtio-disk3-luks-secret0,format=3Dluks,if=3Dnone,id=3Ddrive-= virtio-disk3 \ +key-secret=3Dvirtio-disk3-encryption-secret0,format=3Dluks,if=3Dnone,\ +id=3Ddrive-virtio-disk3 \ -device virtio-blk-pci,bus=3Dpci.0,addr=3D0x7,drive=3Ddrive-virtio-disk3,\ id=3Dvirtio-disk3 \ --object secret,id=3Dvirtio-disk4-luks-secret0,\ +-object secret,id=3Dvirtio-disk4-encryption-secret0,\ data=3D9eao5F8qtkGt+seB1HYivWIxbtwUu6MQtg1zpj/oDtUsPr1q8wBYM91uEHCn6j/1,\ keyid=3DmasterKey0,iv=3DAAECAwQFBgcICQoLDA0ODw=3D=3D,format=3Dbase64 \ -drive 'file=3Drbd:pool/image:auth_supported=3Dnone:mon_host=3Dmon1.exampl= e.org/ 6321\;mon2.example.org\:6322\;mon3.example.org\:6322,\ -key-secret=3Dvirtio-disk4-luks-secret0,format=3Dluks,if=3Dnone,\ +key-secret=3Dvirtio-disk4-encryption-secret0,format=3Dluks,if=3Dnone,\ id=3Ddrive-virtio-disk4' \ -device virtio-blk-pci,bus=3Dpci.0,addr=3D0x8,drive=3Ddrive-virtio-disk4,\ id=3Dvirtio-disk4 \ diff --git a/tests/qemuxml2argvdata/luks-disks.args b/tests/qemuxml2argvdat= a/luks-disks.args index db1ae45b60..47626966f2 100644 --- a/tests/qemuxml2argvdata/luks-disks.args +++ b/tests/qemuxml2argvdata/luks-disks.args @@ -27,18 +27,20 @@ path=3D/tmp/lib/domain--1-encryptdisk/monitor.sock,serv= er,nowait \ -no-shutdown \ -no-acpi \ -usb \ --object secret,id=3Dvirtio-disk0-luks-secret0,\ +-object secret,id=3Dvirtio-disk0-encryption-secret0,\ data=3D9eao5F8qtkGt+seB1HYivWIxbtwUu6MQtg1zpj/oDtUsPr1q8wBYM91uEHCn6j/1,\ keyid=3DmasterKey0,iv=3DAAECAwQFBgcICQoLDA0ODw=3D=3D,format=3Dbase64 \ -drive file=3D/storage/guest_disks/encryptdisk,\ -key-secret=3Dvirtio-disk0-luks-secret0,format=3Dluks,if=3Dnone,id=3Ddrive-= virtio-disk0 \ +key-secret=3Dvirtio-disk0-encryption-secret0,format=3Dluks,if=3Dnone,\ +id=3Ddrive-virtio-disk0 \ -device virtio-blk-pci,bus=3Dpci.0,addr=3D0x4,drive=3Ddrive-virtio-disk0,\ id=3Dvirtio-disk0,bootindex=3D1 \ --object secret,id=3Dvirtio-disk1-luks-secret0,\ +-object secret,id=3Dvirtio-disk1-encryption-secret0,\ data=3D9eao5F8qtkGt+seB1HYivWIxbtwUu6MQtg1zpj/oDtUsPr1q8wBYM91uEHCn6j/1,\ keyid=3DmasterKey0,iv=3DAAECAwQFBgcICQoLDA0ODw=3D=3D,format=3Dbase64 \ -drive file=3D/storage/guest_disks/encryptdisk2,\ -key-secret=3Dvirtio-disk1-luks-secret0,format=3Dluks,if=3Dnone,id=3Ddrive-= virtio-disk1 \ +key-secret=3Dvirtio-disk1-encryption-secret0,format=3Dluks,if=3Dnone,\ +id=3Ddrive-virtio-disk1 \ -device virtio-blk-pci,bus=3Dpci.0,addr=3D0x5,drive=3Ddrive-virtio-disk1,\ id=3Dvirtio-disk1 \ -device virtio-balloon-pci,id=3Dballoon0,bus=3Dpci.0,addr=3D0x3 diff --git a/tests/qemuxml2argvdata/user-aliases.args b/tests/qemuxml2argvd= ata/user-aliases.args index 54463386cd..88e540bc3c 100644 --- a/tests/qemuxml2argvdata/user-aliases.args +++ b/tests/qemuxml2argvdata/user-aliases.args @@ -48,11 +48,11 @@ id=3Ddrive-ua-myDisk1,cache=3Dnone \ id=3Ddrive-ua-myDisk2 \ -device virtio-blk-pci,bus=3Dpci.0,addr=3D0x5,drive=3Ddrive-ua-myDisk2,id= =3Dua-myDisk2,\ bootindex=3D1 \ --object secret,id=3Dua-myEncryptedDisk1-luks-secret0,\ +-object secret,id=3Dua-myEncryptedDisk1-encryption-secret0,\ data=3D9eao5F8qtkGt+seB1HYivWIxbtwUu6MQtg1zpj/oDtUsPr1q8wBYM91uEHCn6j/1,\ keyid=3DmasterKey0,iv=3DAAECAwQFBgcICQoLDA0ODw=3D=3D,format=3Dbase64 \ -drive file=3D/var/lib/libvirt/images/OtherDemo.img,encrypt.format=3Dluks,\ -encrypt.key-secret=3Dua-myEncryptedDisk1-luks-secret0,format=3Dqcow2,if=3D= none,\ +encrypt.key-secret=3Dua-myEncryptedDisk1-encryption-secret0,format=3Dqcow2= ,if=3Dnone,\ id=3Ddrive-ua-myEncryptedDisk1 \ -device virtio-blk-pci,bus=3Dpci.0,addr=3D0x7,drive=3Ddrive-ua-myEncrypted= Disk1,\ id=3Dua-myEncryptedDisk1 \ --=20 2.24.1 From nobody Tue Apr 30 02:39:33 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 207.211.31.81 as permitted sender) client-ip=207.211.31.81; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-1.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 207.211.31.81 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1583771171; cv=none; d=zohomail.com; s=zohoarc; b=mP60fK7iX/jOLohq1fZa07dJ6ddrbAnBpPNkug/rMjh9+alW/m/XBPZOiWccWW/84ndikF18YYtDtDdMK2qBSvQ+GdOfO6/su+zQ8geQa/WPTNNRR7YuuETCgU4tuaEVloCX2TRb9J0REPuU0lkWCnA30bA7/8UEZcrjD4A6sAI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1583771171; h=Content-Type:Content-Transfer-Encoding:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=lqO/8ZDJ1adN6ilVVLMMn12bwpvIEsmei86/85HT56o=; b=N0hQ41KzUBvpUq/+RoCmrv6HZsA1b7TNrXInY24hYXfS0Ewi1WZbXHJ4uoRdDe8jMZghcB2EeYkoAQGqoIreXsjGTq9Q5QJWFdz59AnCjrFC13vZ614I3aOm99dVhYtghiSJe5h9/ccmU5tLGdIqAWC0Wq7Qmh0Ej/oJBxNaNW4= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 207.211.31.81 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass header.from= (p=none dis=none) header.from= Return-Path: Received: from us-smtp-delivery-1.mimecast.com (us-smtp-2.mimecast.com [207.211.31.81]) by mx.zohomail.com with SMTPS id 1583771171284762.3538171666215; Mon, 9 Mar 2020 09:26:11 -0700 (PDT) Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-295-7EO718bwOdWGZxj5KhD6GA-1; Mon, 09 Mar 2020 12:23:53 -0400 Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.phx2.redhat.com [10.5.11.23]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id A99EADB61; Mon, 9 Mar 2020 16:23:44 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 6FD2219C58; Mon, 9 Mar 2020 16:23:44 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id 0B67618089C8; Mon, 9 Mar 2020 16:23:44 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id 029GNOHm020789 for ; Mon, 9 Mar 2020 12:23:24 -0400 Received: by smtp.corp.redhat.com (Postfix) id B7CFA90779; Mon, 9 Mar 2020 16:23:24 +0000 (UTC) Received: from angien.redhat.com (unknown [10.43.2.48]) by smtp.corp.redhat.com (Postfix) with ESMTP id 3D6A39051C for ; Mon, 9 Mar 2020 16:23:24 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1583771170; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=lqO/8ZDJ1adN6ilVVLMMn12bwpvIEsmei86/85HT56o=; b=LUKsfWZ890fZQxbSZ9YGTu6sQ0/9w74Bko/XVsRVo2WGauNHmJOnIZ/rmD2yZKwyIQel0U iNadjGer6DTx90wRIxeKwbAHN1pb8QiSvbp9mPGObYdK+A7tytcCfeDqF9XVDdhkiCIeGm RAe1CEtKXaFC4QDOhulKk+WOLdpiEHk= X-MC-Unique: 7EO718bwOdWGZxj5KhD6GA-1 From: Peter Krempa To: libvir-list@redhat.com Subject: [PATCH 12/30] qemuDomainGetSecretAESAlias: Replace outstanding uses with qemuAliasForSecret Date: Mon, 9 Mar 2020 17:22:52 +0100 Message-Id: <681a6ed30f438dab31fb32417310773fa93e3968.1583770683.git.pkrempa@redhat.com> In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 X-loop: libvir-list@redhat.com X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.84 on 10.5.11.23 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) Content-Type: text/plain; charset="utf-8" There are two last callers of this function. Replace them by qemuAliasForSecret and delete qemuDomainGetSecretAESAlias. Signed-off-by: Peter Krempa Reviewed-by: J=C3=A1n Tomko --- src/qemu/qemu_alias.c | 29 ----------------------------- src/qemu/qemu_alias.h | 3 --- src/qemu/qemu_hotplug.c | 2 +- src/qemu/qemu_migration_params.c | 2 +- 4 files changed, 2 insertions(+), 34 deletions(-) diff --git a/src/qemu/qemu_alias.c b/src/qemu/qemu_alias.c index 2e466ff23f..b450bf0866 100644 --- a/src/qemu/qemu_alias.c +++ b/src/qemu/qemu_alias.c @@ -764,35 +764,6 @@ qemuDomainGetMasterKeyAlias(void) } -/* qemuDomainGetSecretAESAlias: - * @srcalias: Source alias used to generate the secret alias - * @isLuks: True when we are generating a secret for LUKS encrypt/decrypt - * - * Generate and return an alias for the encrypted secret - * - * Returns NULL or a string containing the alias - */ -char * -qemuDomainGetSecretAESAlias(const char *srcalias, - bool isLuks) -{ - char *alias; - - if (!srcalias) { - virReportError(VIR_ERR_INVALID_ARG, "%s", - _("encrypted secret alias requires valid source ali= as")); - return NULL; - } - - if (isLuks) - alias =3D g_strdup_printf("%s-luks-secret0", srcalias); - else - alias =3D g_strdup_printf("%s-secret0", srcalias); - - return alias; -} - - /* qemuAliasForSecret: * @parentalias: alias of the parent object * @obj: optional sub-object of the parent device the secret is for diff --git a/src/qemu/qemu_alias.h b/src/qemu/qemu_alias.h index 645956d024..490aa568a9 100644 --- a/src/qemu/qemu_alias.h +++ b/src/qemu/qemu_alias.h @@ -83,9 +83,6 @@ char *qemuAliasFromHostdev(const virDomainHostdevDef *hos= tdev); char *qemuDomainGetMasterKeyAlias(void); -char *qemuDomainGetSecretAESAlias(const char *srcalias, - bool isLuks); - char *qemuAliasForSecret(const char *parentalias, const char *obj); diff --git a/src/qemu/qemu_hotplug.c b/src/qemu/qemu_hotplug.c index e804053933..47069be900 100644 --- a/src/qemu/qemu_hotplug.c +++ b/src/qemu/qemu_hotplug.c @@ -1842,7 +1842,7 @@ qemuDomainDelChardevTLSObjects(virQEMUDriverPtr drive= r, * secret UUID and we have a serial TCP chardev, then formulate a * secAlias which we'll attempt to destroy. */ if (cfg->chardevTLSx509secretUUID && - !(secAlias =3D qemuDomainGetSecretAESAlias(inAlias, false))) + !(secAlias =3D qemuAliasForSecret(inAlias, NULL))) return -1; qemuDomainObjEnterMonitor(driver, vm); diff --git a/src/qemu/qemu_migration_params.c b/src/qemu/qemu_migration_par= ams.c index f9bc43afee..6a2033b484 100644 --- a/src/qemu/qemu_migration_params.c +++ b/src/qemu/qemu_migration_params.c @@ -1080,7 +1080,7 @@ qemuMigrationParamsResetTLS(virQEMUDriverPtr driver, return; tlsAlias =3D qemuAliasTLSObjFromSrcAlias(QEMU_MIGRATION_TLS_ALIAS_BASE= ); - secAlias =3D qemuDomainGetSecretAESAlias(QEMU_MIGRATION_TLS_ALIAS_BASE= , false); + secAlias =3D qemuAliasForSecret(QEMU_MIGRATION_TLS_ALIAS_BASE, NULL); qemuDomainDelTLSObjects(driver, vm, asyncJob, secAlias, tlsAlias); g_clear_pointer(&QEMU_DOMAIN_PRIVATE(vm)->migSecinfo, qemuDomainSecret= InfoFree); --=20 2.24.1 From nobody Tue Apr 30 02:39:33 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 207.211.31.81 as permitted sender) client-ip=207.211.31.81; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-1.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 207.211.31.81 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1583771048; cv=none; d=zohomail.com; s=zohoarc; b=mixerO7uBKs+ww6k/aNVSrIpoIwgPFjttrqOtyMWwDDtg1FRfQBQxSpEkQVY9feu2nqx4mYIJgBSN3L3+aN3r2NGjroefo6AUJzWy35w7gvNoBc3VASzT/TC7H3kw08whcKsfZv9tkzXRpZ96aKRh4pOardfCRfk4kZhSFHDAhk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1583771048; h=Content-Type:Content-Transfer-Encoding:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=sSouqRTlbV8LCyYLsksIlf0+J6y9ddayb2yiyxvSfCQ=; b=RaOssad2tmMnkSLNhCAQwS0p2nfpcGpK2VigiqBFyxDHv9NFvY+b6g1d3bl4FHgxZmeyQon8LHuHuOc9KyxOMEn3UbkpenHUlg17Ubi52g0rUrxcKRu/701H9fU5VF4SSJ//8OWnsPGFAQOVTUKAfcGJXpzsnzy9vFJzJnoxAtw= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 207.211.31.81 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass header.from= (p=none dis=none) header.from= Return-Path: Received: from us-smtp-delivery-1.mimecast.com (us-smtp-2.mimecast.com [207.211.31.81]) by mx.zohomail.com with SMTPS id 1583771048287174.91888104684904; Mon, 9 Mar 2020 09:24:08 -0700 (PDT) Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-89-vdY0sJV-NsuGFNlBTtrkrQ-1; Mon, 09 Mar 2020 12:24:00 -0400 Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 65E29DB61; Mon, 9 Mar 2020 16:23:54 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 3903973890; Mon, 9 Mar 2020 16:23:54 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id CFE7B1803C41; Mon, 9 Mar 2020 16:23:53 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id 029GNPhX020796 for ; Mon, 9 Mar 2020 12:23:25 -0400 Received: by smtp.corp.redhat.com (Postfix) id 8B43990779; Mon, 9 Mar 2020 16:23:25 +0000 (UTC) Received: from angien.redhat.com (unknown [10.43.2.48]) by smtp.corp.redhat.com (Postfix) with ESMTP id 1225C9051C for ; Mon, 9 Mar 2020 16:23:24 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1583771047; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=sSouqRTlbV8LCyYLsksIlf0+J6y9ddayb2yiyxvSfCQ=; b=FDjzhf6xxB/q8E6XGsBmzAlBi9s8i7YKfprryONLac1FJiOYvADhYdwPw718+wRmm2E0UQ 6uCmIvLHQ12aZLEXCJJKww3wY4sdBk44s2vUx18b1g7Dhvz70m0Xu+y/r5wLTw3nweTcA1 QsFzXPyqjscRUeyl3O3ndI/ONEQ4neg= X-MC-Unique: vdY0sJV-NsuGFNlBTtrkrQ-1 From: Peter Krempa To: libvir-list@redhat.com Subject: [PATCH 13/30] conf: Add support for modifying ssl validation for https/ftps disks Date: Mon, 9 Mar 2020 17:22:53 +0100 Message-Id: <58ba4825594a296a516c38bfa5c97227e3e119cf.1583770683.git.pkrempa@redhat.com> In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 X-loop: libvir-list@redhat.com X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.15 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) Content-Type: text/plain; charset="utf-8" To allow turning of verification of SSL cerificates add a new element to the disk source XML which will allow configuring the validation process using the 'verify' attribute. Signed-off-by: Peter Krempa Reviewed-by: J=C3=A1n Tomko --- docs/formatdomain.html.in | 9 ++++ docs/schemas/domaincommon.rng | 51 ++++++++++++++++++- src/conf/domain_conf.c | 18 +++++++ src/util/virstoragefile.c | 1 + src/util/virstoragefile.h | 1 + .../disk-network-http.xml | 9 ++++ 6 files changed, 87 insertions(+), 2 deletions(-) diff --git a/docs/formatdomain.html.in b/docs/formatdomain.html.in index 7e7771725c..8f503f6967 100644 --- a/docs/formatdomain.html.in +++ b/docs/formatdomain.html.in @@ -2857,6 +2857,7 @@ <driver name=3D'qemu' type=3D'raw'/> <source protocol=3D"https" name=3D"url_path"> <host name=3D"hostname" port=3D"443"/> + <ssl verify=3D"no"/> </source> <target dev=3D'hdf' bus=3D'ide' tray=3D'open'/> <readonly/> @@ -3383,6 +3384,14 @@ The offset and size values are in by= tes. Since 6.1.0 +
ssl
+
+ For https and ftps accessed storage = it's + possible to tweak the SSL transport parameters with this eleme= nt. + The verify attribute allows to turn on or of SSL + certificate validation. Supported values are yes = and + no. Since 6.1.0 +

diff --git a/docs/schemas/domaincommon.rng b/docs/schemas/domaincommon.rng index 529a98fc05..d179a25ee6 100644 --- a/docs/schemas/domaincommon.rng +++ b/docs/schemas/domaincommon.rng @@ -1808,12 +1808,39 @@ + + + + + + + + + + + + + + https + + + + + + + + + + + + + + http - https @@ -1825,13 +1852,31 @@ + + + + + ftps + + + + + + + + + + + + + + sheepdog ftp - ftps tftp @@ -1909,6 +1954,8 @@ + + diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index d8471acd2d..dd3a3a1439 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -9350,6 +9350,7 @@ virDomainDiskSourceNetworkParse(xmlNodePtr node, g_autofree char *protocol =3D NULL; g_autofree char *haveTLS =3D NULL; g_autofree char *tlsCfg =3D NULL; + g_autofree char *sslverifystr =3D NULL; if (!(protocol =3D virXMLPropString(node, "protocol"))) { virReportError(VIR_ERR_XML_ERROR, "%s", @@ -9422,6 +9423,19 @@ virDomainDiskSourceNetworkParse(xmlNodePtr node, virStorageSourceInitiatorParseXML(ctxt, &src->initiator); + if ((src->protocol =3D=3D VIR_STORAGE_NET_PROTOCOL_HTTPS || + src->protocol =3D=3D VIR_STORAGE_NET_PROTOCOL_FTPS) && + (sslverifystr =3D virXPathString("string(./ssl/@verify)", ctxt))) { + int verify; + if ((verify =3D virTristateBoolTypeFromString(sslverifystr)) < 0) { + virReportError(VIR_ERR_XML_ERROR, + _("invalid ssl verify mode '%s'"), sslverifystr= ); + return -1; + } + + src->sslverify =3D verify; + } + return 0; } @@ -24531,6 +24545,10 @@ virDomainDiskSourceFormatNetwork(virBufferPtr attr= Buf, virStorageSourceInitiatorFormatXML(&src->initiator, childBuf); + if (src->sslverify !=3D VIR_TRISTATE_BOOL_ABSENT) + virBufferAsprintf(childBuf, "\n", + virTristateBoolTypeToString(src->sslverify)); + return 0; } diff --git a/src/util/virstoragefile.c b/src/util/virstoragefile.c index b133cf17f1..ca91fc65ba 100644 --- a/src/util/virstoragefile.c +++ b/src/util/virstoragefile.c @@ -2270,6 +2270,7 @@ virStorageSourceCopy(const virStorageSource *src, def->cachemode =3D src->cachemode; def->discard =3D src->discard; def->detect_zeroes =3D src->detect_zeroes; + def->sslverify =3D src->sslverify; /* storage driver metadata are not copied */ def->drv =3D NULL; diff --git a/src/util/virstoragefile.h b/src/util/virstoragefile.h index 9af7b4f226..49718b51d8 100644 --- a/src/util/virstoragefile.h +++ b/src/util/virstoragefile.h @@ -281,6 +281,7 @@ struct _virStorageSource { virStorageEncryptionPtr encryption; bool encryptionInherited; virStoragePRDefPtr pr; + virTristateBool sslverify; virStorageSourceNVMeDefPtr nvme; /* type =3D=3D VIR_STORAGE_TYPE_NVME = */ diff --git a/tests/genericxml2xmlindata/disk-network-http.xml b/tests/gener= icxml2xmlindata/disk-network-http.xml index fde1222fd0..bdcc1977f2 100644 --- a/tests/genericxml2xmlindata/disk-network-http.xml +++ b/tests/genericxml2xmlindata/disk-network-http.xml @@ -25,6 +25,7 @@ + @@ -35,6 +36,14 @@ + + + + + + + + --=20 2.24.1 From nobody Tue Apr 30 02:39:33 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 205.139.110.120 as permitted sender) client-ip=205.139.110.120; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-1.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 205.139.110.120 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1583771107; cv=none; d=zohomail.com; s=zohoarc; b=ACfSdF0/6jS+68UalvM/v94mrB6gm3Q3PUG5wBLFmyYBqw0Gu4tpkIIexAWzGiwfhQ2d1PPIKIwFyO0+X/v8MOqWGDSO+ydE8GwaRXq2USCYY6rBEmBTt5bmVkdRo34hTqGbY0INtqy+HUnAfj+voFn2emrpfnUi9i1LDn9bof4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1583771107; h=Content-Type:Content-Transfer-Encoding:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=d8KsGEJVo4q0hga81k2FNVhWSg4POdM36jACtUaB280=; b=gmLKgUQtobzNod11RI69sofFhwFaTzEwLNJ4iKYr1cf58LCfc3UOoL7DsQjbwbKgiEczWClu8n8orzPqsHCCJhEfsgyccAswBMt/U1cdrtLWzWcNSTPp9F1npU8F5NSbYbT3fXf3M0/76UFRumCbcHC4tbdjhc5bgJXkKGdhPXk= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 205.139.110.120 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass header.from= (p=none dis=none) header.from= Return-Path: Received: from us-smtp-1.mimecast.com (us-smtp-delivery-1.mimecast.com [205.139.110.120]) by mx.zohomail.com with SMTPS id 1583771107335119.94080435876856; Mon, 9 Mar 2020 09:25:07 -0700 (PDT) Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-378-dtnl3wYZPlesOogeTPOJFg-1; Mon, 09 Mar 2020 12:23:58 -0400 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 9D7211088380; Mon, 9 Mar 2020 16:23:52 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 6F6598F358; Mon, 9 Mar 2020 16:23:52 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id 2524086A13; Mon, 9 Mar 2020 16:23:52 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id 029GNQkK020802 for ; Mon, 9 Mar 2020 12:23:26 -0400 Received: by smtp.corp.redhat.com (Postfix) id 5FE9F909E9; Mon, 9 Mar 2020 16:23:26 +0000 (UTC) Received: from angien.redhat.com (unknown [10.43.2.48]) by smtp.corp.redhat.com (Postfix) with ESMTP id D9C6C9051C for ; Mon, 9 Mar 2020 16:23:25 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1583771106; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=d8KsGEJVo4q0hga81k2FNVhWSg4POdM36jACtUaB280=; b=FKdmRoxDtKmCeAmetGEwytDp2aUQosdisEW4vvhe7F6Mv8yDJVEI6feFYNAubrRCeJHX3T s8EURxHzAH5jrCoSS0EjUr8qGWQHwKzrUtw64Y1wBr5Txl7pgtUqPCFvTfzngAiBNT0/ST ALmE/fXel58xdZh/z6gZkmzphciZ+og= X-MC-Unique: dtnl3wYZPlesOogeTPOJFg-1 From: Peter Krempa To: libvir-list@redhat.com Subject: [PATCH 14/30] conf: Add support for cookies for HTTP based disks Date: Mon, 9 Mar 2020 17:22:54 +0100 Message-Id: <9a0c534ed8385d4646e96f88db56c166be211858.1583770683.git.pkrempa@redhat.com> In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 X-loop: libvir-list@redhat.com X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) Content-Type: text/plain; charset="utf-8" Add possibility to specify one or more cookies for http based disks. This patch adds the config parser, storage and validation of the cookies. Signed-off-by: Peter Krempa Reviewed-by: J=C3=A1n Tomko --- docs/formatdomain.html.in | 10 ++ docs/schemas/domaincommon.rng | 24 ++++ src/conf/domain_conf.c | 82 +++++++++++++ src/libvirt_private.syms | 1 + src/util/virstoragefile.c | 115 ++++++++++++++++++ src/util/virstoragefile.h | 15 +++ .../disk-network-http.xml | 8 ++ 7 files changed, 255 insertions(+) diff --git a/docs/formatdomain.html.in b/docs/formatdomain.html.in index 8f503f6967..dfea614907 100644 --- a/docs/formatdomain.html.in +++ b/docs/formatdomain.html.in @@ -2849,6 +2849,9 @@ <driver name=3D'qemu' type=3D'raw'/> <source protocol=3D"http" name=3D"url_path"> <host name=3D"hostname" port=3D"80"/> + <cookies> + <cookie name=3D"test">somevalue</cookie> + </cookies> </source> <target dev=3D'hde' bus=3D'ide' tray=3D'open'/> <readonly/> @@ -3392,6 +3395,13 @@ certificate validation. Supported values are yes = and no. Since 6.1.0 +

cookies
+
+ For http and https accessed storage = it's + possible to pass one or more cookies. The cookie name and value + must conform to the HTTP specification. + Since 6.2.0 +

diff --git a/docs/schemas/domaincommon.rng b/docs/schemas/domaincommon.rng index d179a25ee6..85d6484dbd 100644 --- a/docs/schemas/domaincommon.rng +++ b/docs/schemas/domaincommon.rng @@ -1817,6 +1817,24 @@ + + + + + + + [!#$%&'*+\-.0-9A-Z\^_`a-z|~]+ + + + + [!#$%&'()*+\-./0-9:>=3D<?@A-= Z\^_`\[\]a-z|~]+ + + + + + + + @@ -1833,6 +1851,9 @@ + + + @@ -1849,6 +1870,9 @@ + + + diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index dd3a3a1439..dc7a47dd21 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -9340,6 +9340,62 @@ virDomainDiskSourcePoolDefParse(xmlNodePtr node, } +static virStorageNetCookieDefPtr +virDomainStorageCookieParse(xmlNodePtr node, + xmlXPathContextPtr ctxt) +{ + VIR_XPATH_NODE_AUTORESTORE(ctxt); + g_autoptr(virStorageNetCookieDef) cookie =3D NULL; + + ctxt->node =3D node; + + cookie =3D g_new0(virStorageNetCookieDef, 1); + + if (!(cookie->name =3D virXPathString("string(./@name)", ctxt))) { + virReportError(VIR_ERR_XML_ERROR, "%s", _("missing cookie name")); + return NULL; + } + + if (!(cookie->value =3D virXPathString("string(.)", ctxt))) { + virReportError(VIR_ERR_XML_ERROR, _("missing value for cookie '%s'= "), + cookie->name); + return NULL; + } + + return g_steal_pointer(&cookie); +} + + +static int +virDomainStorageCookiesParse(xmlNodePtr node, + xmlXPathContextPtr ctxt, + virStorageSourcePtr src) +{ + VIR_XPATH_NODE_AUTORESTORE(ctxt); + g_autofree xmlNodePtr *nodes =3D NULL; + ssize_t nnodes; + size_t i; + + ctxt->node =3D node; + + if ((nnodes =3D virXPathNodeSet("./cookie", ctxt, &nodes)) < 0) + return -1; + + src->cookies =3D g_new0(virStorageNetCookieDefPtr, nnodes); + src->ncookies =3D nnodes; + + for (i =3D 0; i < nnodes; i++) { + if (!(src->cookies[i] =3D virDomainStorageCookieParse(nodes[i], ct= xt))) + return -1; + } + + if (virStorageSourceNetCookiesValidate(src) < 0) + return -1; + + return 0; +} + + static int virDomainDiskSourceNetworkParse(xmlNodePtr node, xmlXPathContextPtr ctxt, @@ -9351,6 +9407,7 @@ virDomainDiskSourceNetworkParse(xmlNodePtr node, g_autofree char *haveTLS =3D NULL; g_autofree char *tlsCfg =3D NULL; g_autofree char *sslverifystr =3D NULL; + xmlNodePtr tmpnode; if (!(protocol =3D virXMLPropString(node, "protocol"))) { virReportError(VIR_ERR_XML_ERROR, "%s", @@ -9436,6 +9493,13 @@ virDomainDiskSourceNetworkParse(xmlNodePtr node, src->sslverify =3D verify; } + if ((src->protocol =3D=3D VIR_STORAGE_NET_PROTOCOL_HTTP || + src->protocol =3D=3D VIR_STORAGE_NET_PROTOCOL_HTTPS) && + (tmpnode =3D virXPathNode("./cookies", ctxt))) { + if (virDomainStorageCookiesParse(tmpnode, ctxt, src) < 0) + return -1; + } + return 0; } @@ -24500,6 +24564,22 @@ virDomainSourceDefFormatSeclabel(virBufferPtr buf, } +static void +virDomainDiskSourceFormatNetworkCookies(virBufferPtr buf, + virStorageSourcePtr src) +{ + g_auto(virBuffer) childBuf =3D VIR_BUFFER_INIT_CHILD(buf); + size_t i; + + for (i =3D 0; i < src->ncookies; i++) { + virBufferEscapeString(&childBuf, "", src->cook= ies[i]->name); + virBufferEscapeString(&childBuf, "%s\n", src->cookies[i]-= >value); + } + + virXMLFormatElement(buf, "cookies", NULL, &childBuf); +} + + static int virDomainDiskSourceFormatNetwork(virBufferPtr attrBuf, virBufferPtr childBuf, @@ -24549,6 +24629,8 @@ virDomainDiskSourceFormatNetwork(virBufferPtr attrB= uf, virBufferAsprintf(childBuf, "\n", virTristateBoolTypeToString(src->sslverify)); + virDomainDiskSourceFormatNetworkCookies(childBuf, src); + return 0; } diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms index 511fb88872..73db753652 100644 --- a/src/libvirt_private.syms +++ b/src/libvirt_private.syms @@ -3143,6 +3143,7 @@ virStorageSourceIsEmpty; virStorageSourceIsLocalStorage; virStorageSourceIsRelative; virStorageSourceIsSameLocation; +virStorageSourceNetCookiesValidate; virStorageSourceNetworkAssignDefaultPorts; virStorageSourceNew; virStorageSourceNewFromBacking; diff --git a/src/util/virstoragefile.c b/src/util/virstoragefile.c index ca91fc65ba..fb5fff5c5f 100644 --- a/src/util/virstoragefile.c +++ b/src/util/virstoragefile.c @@ -2157,6 +2157,118 @@ virStorageSourceSeclabelsCopy(virStorageSourcePtr t= o, } +void +virStorageNetCookieDefFree(virStorageNetCookieDefPtr def) +{ + if (!def) + return; + + g_free(def->name); + g_free(def->value); + + g_free(def); +} + + +static void +virStorageSourceCookiesClear(virStorageSourcePtr src) +{ + size_t i; + + if (!src || !src->cookies) + return; + + for (i =3D 0; i < src->ncookies; i++) + virStorageNetCookieDefFree(src->cookies[i]); + + g_clear_pointer(&src->cookies, g_free); + src->ncookies =3D 0; +} + + +static void +virStorageSourceNetCookiesCopy(virStorageSourcePtr to, + const virStorageSource *from) +{ + size_t i; + + if (from->ncookies =3D=3D 0) + return; + + to->cookies =3D g_new0(virStorageNetCookieDefPtr, from->ncookies); + to->ncookies =3D from->ncookies; + + for (i =3D 0; i < from->ncookies; i++) { + to->cookies[i]->name =3D g_strdup(from->cookies[i]->name); + to->cookies[i]->value =3D g_strdup(from->cookies[i]->value); + } +} + + +/* see https://tools.ietf.org/html/rfc6265#section-4.1.1 */ +static const char virStorageSourceCookieValueInvalidChars[] =3D + "\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0A\x0B\x0C\x0D\x0E\x0F" + "\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1A\x1B\x1C\x1D\x1E\x1F" + " \",;\\"; + +/* in addition cookie name can't contain these */ +static const char virStorageSourceCookieNameInvalidChars[] =3D + "()<>@:/[]?=3D{}"; + +static int +virStorageSourceNetCookieValidate(virStorageNetCookieDefPtr def) +{ + /* name must have at least 1 character */ + if (*(def->name) =3D=3D '\0') { + virReportError(VIR_ERR_XML_ERROR, "%s", + _("cookie name must not be empty")); + return -1; + } + + /* check invalid characters in name */ + if (virStringHasChars(def->name, virStorageSourceCookieValueInvalidCha= rs) || + virStringHasChars(def->name, virStorageSourceCookieNameInvalidChar= s)) { + virReportError(VIR_ERR_XML_ERROR, + _("cookie name '%s' contains invalid characters"), + def->name); + return -1; + } + + /* check invalid characters in value */ + if (virStringHasChars(def->value, virStorageSourceCookieValueInvalidCh= ars)) { + virReportError(VIR_ERR_XML_ERROR, + _("value of cookie '%s' contains invalid characters= "), + def->name); + return -1; + } + + return 0; +} + + +int +virStorageSourceNetCookiesValidate(virStorageSourcePtr src) +{ + size_t i; + size_t j; + + for (i =3D 0; i < src->ncookies; i++) { + if (virStorageSourceNetCookieValidate(src->cookies[i]) < 0) + return -1; + + for (j =3D i + 1; j < src->ncookies; j++) { + if (STREQ(src->cookies[i]->name, src->cookies[j]->name)) { + virReportError(VIR_ERR_XML_ERROR, _("duplicate cookie '%s'= "), + src->cookies[i]->name); + return -1; + } + } + } + + return 0; +} + + static virStorageTimestampsPtr virStorageTimestampsCopy(const virStorageTimestamps *src) { @@ -2299,6 +2411,8 @@ virStorageSourceCopy(const virStorageSource *src, def->nhosts =3D src->nhosts; } + virStorageSourceNetCookiesCopy(def, src); + if (src->srcpool && !(def->srcpool =3D virStorageSourcePoolDefCopy(src->srcpool))) return NULL; @@ -2560,6 +2674,7 @@ virStorageSourceClear(virStorageSourcePtr def) VIR_FREE(def->volume); VIR_FREE(def->snapshot); VIR_FREE(def->configFile); + virStorageSourceCookiesClear(def); virStorageSourcePoolDefFree(def->srcpool); virBitmapFree(def->features); VIR_FREE(def->compat); diff --git a/src/util/virstoragefile.h b/src/util/virstoragefile.h index 49718b51d8..95d9501dd8 100644 --- a/src/util/virstoragefile.h +++ b/src/util/virstoragefile.h @@ -161,6 +161,17 @@ struct _virStorageNetHostDef { char *socket; /* path to unix socket */ }; +typedef struct _virStorageNetCookieDef virStorageNetCookieDef; +typedef virStorageNetCookieDef *virStorageNetCookieDefPtr; +struct _virStorageNetCookieDef { + char *name; + char *value; +}; + +void virStorageNetCookieDefFree(virStorageNetCookieDefPtr def); + +G_DEFINE_AUTOPTR_CLEANUP_FUNC(virStorageNetCookieDef, virStorageNetCookieD= efFree); + /* Information for a storage volume from a virStoragePool */ /* @@ -275,6 +286,8 @@ struct _virStorageSource { the source definition */ size_t nhosts; virStorageNetHostDefPtr hosts; + size_t ncookies; + virStorageNetCookieDefPtr *cookies; virStorageSourcePoolDefPtr srcpool; virStorageAuthDefPtr auth; bool authInherited; @@ -476,6 +489,8 @@ int virStorageSourceUpdateCapacity(virStorageSourcePtr = src, int virStorageSourceNewFromBacking(virStorageSourcePtr parent, virStorageSourcePtr *backing); +int virStorageSourceNetCookiesValidate(virStorageSourcePtr src); + virStorageSourcePtr virStorageSourceCopy(const virStorageSource *src, bool backingChain) ATTRIBUTE_NONNULL(1); diff --git a/tests/genericxml2xmlindata/disk-network-http.xml b/tests/gener= icxml2xmlindata/disk-network-http.xml index bdcc1977f2..bafb77c8ec 100644 --- a/tests/genericxml2xmlindata/disk-network-http.xml +++ b/tests/genericxml2xmlindata/disk-network-http.xml @@ -33,6 +33,10 @@ + + testcookievalue + blurb + @@ -41,6 +45,10 @@ + + testcookievalue + blurb + --=20 2.24.1 From nobody Tue Apr 30 02:39:33 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 205.139.110.120 as permitted sender) client-ip=205.139.110.120; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-1.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 205.139.110.120 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1583771110; cv=none; d=zohomail.com; s=zohoarc; b=icqjp3DmpInKFyskVwrqNqtOku73geCzZT1gGHkIF+xt4R1C+PSwFbpqP242eEN5+/x6bxpAGZpAsgYhvPNVns17vkjcnuNm1MUq+mfgz/EbSRCp3rph2HAS8demC3DBFl8AwirbvjCeF1SdnYW91nRzn9ksqlsZgqJEoeR6d+c= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1583771110; h=Content-Type:Content-Transfer-Encoding:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=LmHvwOSvg2VSCDnIyCO2i8CoIRrqhzKIAh6ETPbOUcM=; b=EXZBmcR12i0aYhzxAc7itFHeNQedVm4rKKgY7dDgh2+POw0X/R9X0RqWzLl+ju8rykXeWy8/uHyf+qYUxaxlEzt1cXGcJ38mttXlpjj5maKj+G36XwxhfBTokbinMRdpTwSC3tsCxiNfT4XgjVu8jmXLR4J1kSbIzrdwBjfz0NE= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 205.139.110.120 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass header.from= (p=none dis=none) header.from= Return-Path: Received: from us-smtp-1.mimecast.com (us-smtp-delivery-1.mimecast.com [205.139.110.120]) by mx.zohomail.com with SMTPS id 1583771110781215.64663031802786; Mon, 9 Mar 2020 09:25:10 -0700 (PDT) Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-259-ik71AFWLO_KmDLlIUm699g-1; Mon, 09 Mar 2020 12:24:04 -0400 Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id BE1C4800D54; Mon, 9 Mar 2020 16:23:56 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 91C5A60C05; Mon, 9 Mar 2020 16:23:56 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id 38B2F86A1D; Mon, 9 Mar 2020 16:23:56 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id 029GNRJm020810 for ; Mon, 9 Mar 2020 12:23:27 -0400 Received: by smtp.corp.redhat.com (Postfix) id 32BE7909E9; Mon, 9 Mar 2020 16:23:27 +0000 (UTC) Received: from angien.redhat.com (unknown [10.43.2.48]) by smtp.corp.redhat.com (Postfix) with ESMTP id ADEE19051C for ; Mon, 9 Mar 2020 16:23:26 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1583771109; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=LmHvwOSvg2VSCDnIyCO2i8CoIRrqhzKIAh6ETPbOUcM=; b=YzoGbpxcFBaUA4A51qMfzlMl1sFVqQifU2vaiP/VHuc8uTWCwpzdRmMpuTzpWdap32F9nN xkSWbGhf1/s8FMdPZSoFqwVnMI1Tx7Ki/fiwBOWAYvL9heROQVpV5KUXVSPNJHDkv0cHuB yTFb/5hy0HyOfkKC40SlVwqlbn90/5c= X-MC-Unique: ik71AFWLO_KmDLlIUm699g-1 From: Peter Krempa To: libvir-list@redhat.com Subject: [PATCH 15/30] conf: Add support for setting timeout and readahead size for network disks Date: Mon, 9 Mar 2020 17:22:55 +0100 Message-Id: In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 X-loop: libvir-list@redhat.com X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.12 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) Content-Type: text/plain; charset="utf-8" Some disk backends support configuring the readahead buffer or timeout for requests. Add the knobs to the XML. Signed-off-by: Peter Krempa Reviewed-by: J=C3=A1n Tomko --- docs/formatdomain.html.in | 16 +++++++++++++ docs/schemas/domaincommon.rng | 23 +++++++++++++++++++ src/conf/domain_conf.c | 19 +++++++++++++++ src/util/virstoragefile.c | 2 ++ src/util/virstoragefile.h | 3 +++ .../disk-network-http.xml | 2 ++ 6 files changed, 65 insertions(+) diff --git a/docs/formatdomain.html.in b/docs/formatdomain.html.in index dfea614907..79cf82522f 100644 --- a/docs/formatdomain.html.in +++ b/docs/formatdomain.html.in @@ -2852,6 +2852,8 @@ <cookies> <cookie name=3D"test">somevalue</cookie> </cookies> + <readahead size=3D'65536'/> + <timeout seconds=3D'6'/> </source> <target dev=3D'hde' bus=3D'ide' tray=3D'open'/> <readonly/> @@ -3402,6 +3404,20 @@ must conform to the HTTP specification. Since 6.2.0 +

readahead
+
+ Specifies the size of the readahead buffer for protocols + which support it. (all 'curl' based drivers in qemu). The size + is in bytes. Note that '0' is considered as if the value is not + provided. + Since 6.2.0 +
+
timeout
+
+ Specifies the connection timeout for protocols which support i= t. + Note that '0' is considered as if the value is not provided. + Since 6.2.0 +

diff --git a/docs/schemas/domaincommon.rng b/docs/schemas/domaincommon.rng index 85d6484dbd..6805420451 100644 --- a/docs/schemas/domaincommon.rng +++ b/docs/schemas/domaincommon.rng @@ -1808,6 +1808,25 @@ + + + + + + + + + + + + + + + + + + + @@ -1854,6 +1873,7 @@ + @@ -1873,6 +1893,7 @@ + @@ -1892,6 +1913,7 @@ + @@ -1910,6 +1932,7 @@ + diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index dc7a47dd21..81352c7b5d 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -9500,6 +9500,19 @@ virDomainDiskSourceNetworkParse(xmlNodePtr node, return -1; } + if (src->protocol =3D=3D VIR_STORAGE_NET_PROTOCOL_HTTP || + src->protocol =3D=3D VIR_STORAGE_NET_PROTOCOL_HTTPS || + src->protocol =3D=3D VIR_STORAGE_NET_PROTOCOL_FTP || + src->protocol =3D=3D VIR_STORAGE_NET_PROTOCOL_FTPS) { + + if (virXPathULongLong("string(./readahead/@size)", ctxt, &src->rea= dahead) =3D=3D -2 || + virXPathULongLong("string(./timeout/@seconds)", ctxt, &src->ti= meout) =3D=3D -2) { + virReportError(VIR_ERR_XML_ERROR, "%s", + _("invalid readahead size or timeout")); + return -1; + } + } + return 0; } @@ -24631,6 +24644,12 @@ virDomainDiskSourceFormatNetwork(virBufferPtr attr= Buf, virDomainDiskSourceFormatNetworkCookies(childBuf, src); + if (src->readahead) + virBufferAsprintf(childBuf, "\n", src->r= eadahead); + + if (src->timeout) + virBufferAsprintf(childBuf, "\n", src->= timeout); + return 0; } diff --git a/src/util/virstoragefile.c b/src/util/virstoragefile.c index fb5fff5c5f..9e740419eb 100644 --- a/src/util/virstoragefile.c +++ b/src/util/virstoragefile.c @@ -2383,6 +2383,8 @@ virStorageSourceCopy(const virStorageSource *src, def->discard =3D src->discard; def->detect_zeroes =3D src->detect_zeroes; def->sslverify =3D src->sslverify; + def->readahead =3D src->readahead; + def->timeout =3D src->timeout; /* storage driver metadata are not copied */ def->drv =3D NULL; diff --git a/src/util/virstoragefile.h b/src/util/virstoragefile.h index 95d9501dd8..dd2186c4ff 100644 --- a/src/util/virstoragefile.h +++ b/src/util/virstoragefile.h @@ -295,6 +295,9 @@ struct _virStorageSource { bool encryptionInherited; virStoragePRDefPtr pr; virTristateBool sslverify; + /* both values below have 0 as default value */ + unsigned long long readahead; /* size of the readahead buffer in bytes= */ + unsigned long long timeout; /* connection timeout in seconds */ virStorageSourceNVMeDefPtr nvme; /* type =3D=3D VIR_STORAGE_TYPE_NVME = */ diff --git a/tests/genericxml2xmlindata/disk-network-http.xml b/tests/gener= icxml2xmlindata/disk-network-http.xml index bafb77c8ec..a8430b8365 100644 --- a/tests/genericxml2xmlindata/disk-network-http.xml +++ b/tests/genericxml2xmlindata/disk-network-http.xml @@ -49,6 +49,8 @@ testcookievalue blurb + + --=20 2.24.1 From nobody Tue Apr 30 02:39:33 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 207.211.31.81 as permitted sender) client-ip=207.211.31.81; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-1.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 207.211.31.81 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1583771052; cv=none; d=zohomail.com; s=zohoarc; b=TSsHjOysSm9Gu64XYgeASAijHFLxw9vC3ZFlwcbDAkRJSlJZJJ4CwnVMSLWIjGyWJ+UXwOD4SmrRiNiib/rZ3h5/VtMbZUxUrb0IqW5di4+IIThl0rZzP5gGuu6TfkKxtPGloageqvVdzmLaNKEdxjlLC5A8FEJ5lnZll3lS740= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1583771052; h=Content-Type:Content-Transfer-Encoding:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=HoiygD0eCW2Sv2RPjm0CowPNVR0rAstmVYIDOjxLgoQ=; b=Sd3Bv8XDVeLPVVqYjDxlL1PX5/Cu0BbIkVe94NqXUG1h2zgKaV0DepiOOnRPqP7HKToWAjLGPZSZasUvZon17NjJA6dgpWpgRgE7N9GOp69Pz5mFYuo1LmlV5j/gOXzTaydDCXXGdYCnG6+gbBVVmuQiXWJECdYrUgoRrIIEt6Q= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 207.211.31.81 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass header.from= (p=none dis=none) header.from= Return-Path: Received: from us-smtp-delivery-1.mimecast.com (us-smtp-1.mimecast.com [207.211.31.81]) by mx.zohomail.com with SMTPS id 1583771052107638.5585594334798; Mon, 9 Mar 2020 09:24:12 -0700 (PDT) Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-231-KzqFaT_SNX-7qGaCMF8X9w-1; Mon, 09 Mar 2020 12:24:08 -0400 Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.phx2.redhat.com [10.5.11.16]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 6E3D0DB63; Mon, 9 Mar 2020 16:23:59 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 449C55C3F8; Mon, 9 Mar 2020 16:23:59 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id E1C4986A1F; Mon, 9 Mar 2020 16:23:58 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id 029GNSQu020827 for ; Mon, 9 Mar 2020 12:23:28 -0400 Received: by smtp.corp.redhat.com (Postfix) id 0708790779; Mon, 9 Mar 2020 16:23:28 +0000 (UTC) Received: from angien.redhat.com (unknown [10.43.2.48]) by smtp.corp.redhat.com (Postfix) with ESMTP id 822A39051C for ; Mon, 9 Mar 2020 16:23:27 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1583771051; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=HoiygD0eCW2Sv2RPjm0CowPNVR0rAstmVYIDOjxLgoQ=; b=BasvCggk9A6rRyE/5hBiwxv2I+iCw4xNwCj0VXhAPX38tIcjQ4IOyIi1qUSo30zos3AQXi ii8UAAit4QQDBH7G2Dnmc4gcngvGLCFw//PLpTM4r5vT5uOJheXZsH18GS13XFm5ylEehh maqOSdfS6aBfzYEazfiSnX6iQsi26H4= X-MC-Unique: KzqFaT_SNX-7qGaCMF8X9w-1 From: Peter Krempa To: libvir-list@redhat.com Subject: [PATCH 16/30] qemuDomainValidateStorageSource: Validate new network storage parameters Date: Mon, 9 Mar 2020 17:22:56 +0100 Message-Id: <1b2f4bd23d4b6c7565803b8436fa9230b118fab3.1583770683.git.pkrempa@redhat.com> In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 X-loop: libvir-list@redhat.com X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.16 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) Content-Type: text/plain; charset="utf-8" Ensure that the new fields are allowed only when -blockdev is used or when they are in the detected part of the backing chain where qemu will handle them internally. Signed-off-by: Peter Krempa Reviewed-by: J=C3=A1n Tomko --- src/qemu/qemu_domain.c | 55 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index 1d551f248f..e7aaded4d5 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -6881,6 +6881,61 @@ qemuDomainValidateStorageSource(virStorageSourcePtr = src, } } + if (src->sslverify !=3D VIR_TRISTATE_BOOL_ABSENT) { + if (actualType !=3D VIR_STORAGE_TYPE_NETWORK || + (src->protocol !=3D VIR_STORAGE_NET_PROTOCOL_HTTPS && + src->protocol !=3D VIR_STORAGE_NET_PROTOCOL_FTPS)) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", + _("ssl verification is supported only with HTTP= S/FTPS protocol")); + return -1; + } + + if (!src->detected && + !virQEMUCapsGet(qemuCaps, QEMU_CAPS_BLOCKDEV)) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", + _("ssl verification setting is not supported by= this QEMU binary")); + return -1; + } + } + + if (src->ncookies > 0) { + if (actualType !=3D VIR_STORAGE_TYPE_NETWORK || + (src->protocol !=3D VIR_STORAGE_NET_PROTOCOL_HTTPS && + src->protocol !=3D VIR_STORAGE_NET_PROTOCOL_HTTP)) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", + _("http cookies are supported only with HTTP(S)= protocol")); + return -1; + } + + if (!src->detected && + !virQEMUCapsGet(qemuCaps, QEMU_CAPS_BLOCKDEV)) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", + _("http cookies are not supported by this QEMU = binary")); + return -1; + } + + if (virStorageSourceNetCookiesValidate(src) < 0) + return -1; + } + + if (src->readahead > 0) { + if (!src->detected && + !virQEMUCapsGet(qemuCaps, QEMU_CAPS_BLOCKDEV)) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", + _("readahead setting is not supported by this Q= EMU binary")); + return -1; + } + } + + if (src->timeout > 0) { + if (!src->detected && + !virQEMUCapsGet(qemuCaps, QEMU_CAPS_BLOCKDEV)) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", + _("timeout setting is not supported by this QEM= U binary")); + return -1; + } + } + return 0; } --=20 2.24.1 From nobody Tue Apr 30 02:39:33 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 205.139.110.120 as permitted sender) client-ip=205.139.110.120; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-1.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 205.139.110.120 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1583771037; cv=none; d=zohomail.com; s=zohoarc; b=gJwwO0fmSGlfhn3iEMkzt674NQpPzY3/w2UNZEG/O4e0yE9re4lZf5bt1rSEFOEz/h05SlZttweBzCrM/2ed9WBODfKIQfW+6c5i+p2j7zJlqOSASKZ0xWrUsaZbMYCYlPwBe+xSJE15k1yqxQXfDh56fwzO8v2J8RdyM+iX2WY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1583771037; h=Content-Type:Content-Transfer-Encoding:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=/9GEja28wgEJQmWM8nkrNonOYP+c54oKl+cIPByogN4=; b=hc/zpThiQhUeaqk8+q5imDAQS8gzSaFKuf3i10A+GtlOm0sgAavLQLEzEVPzxc0RnZlQ8S0O+g3fUBwyhUzC6lgMGWvXIAkfLPeSYE5AFTUqAapdr4N/jtLbrI9F3ronXRftL+r7SUpqmzvOgxhdVJt7c+fQzb05R4jyr8lN580= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 205.139.110.120 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass header.from= (p=none dis=none) header.from= Return-Path: Received: from us-smtp-1.mimecast.com (us-smtp-delivery-1.mimecast.com [205.139.110.120]) by mx.zohomail.com with SMTPS id 158377103792726.649048284120454; Mon, 9 Mar 2020 09:23:57 -0700 (PDT) Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-336-pKfggcnUNv2i7tSJzxjhTg-1; Mon, 09 Mar 2020 12:23:54 -0400 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 72B8E8018A2; Mon, 9 Mar 2020 16:23:48 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 497438D569; Mon, 9 Mar 2020 16:23:48 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id F018F86A04; Mon, 9 Mar 2020 16:23:47 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id 029GNSSc020832 for ; Mon, 9 Mar 2020 12:23:28 -0400 Received: by smtp.corp.redhat.com (Postfix) id D018B9051C; Mon, 9 Mar 2020 16:23:28 +0000 (UTC) Received: from angien.redhat.com (unknown [10.43.2.48]) by smtp.corp.redhat.com (Postfix) with ESMTP id 5648B90A03 for ; Mon, 9 Mar 2020 16:23:28 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1583771036; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=/9GEja28wgEJQmWM8nkrNonOYP+c54oKl+cIPByogN4=; b=DVOfUA31zFlSBFAqDkTzB1AztMkPu+zx6kZ66QZBjy2ya1Bq7VY2wm+dg+AZ3kjMxlG/jk wqGtWhuwMnekQZZ2nlrfvItWDx9duGkpBtXBNkgV/LY4ScZnR5Wbb08WJwp1ntky+AZEbB gmkJ2T+SMtF0vjCCv8LrfKv7P1u5cRg= X-MC-Unique: pKfggcnUNv2i7tSJzxjhTg-1 From: Peter Krempa To: libvir-list@redhat.com Subject: [PATCH 17/30] qemuxml2argvtest: Add test case for disks with http(s) source Date: Mon, 9 Mar 2020 17:22:57 +0100 Message-Id: In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 X-loop: libvir-list@redhat.com X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) Content-Type: text/plain; charset="utf-8" Upcoming patches will implement the support for sslverify, cookies, readahead, and timeout properties. Add a test file which will collect the cases. Signed-off-by: Peter Krempa Reviewed-by: J=C3=A1n Tomko --- .../disk-network-http.x86_64-latest.args | 57 +++++++++++++++++++ tests/qemuxml2argvdata/disk-network-http.xml | 50 ++++++++++++++++ tests/qemuxml2argvtest.c | 1 + 3 files changed, 108 insertions(+) create mode 100644 tests/qemuxml2argvdata/disk-network-http.x86_64-latest.= args create mode 100644 tests/qemuxml2argvdata/disk-network-http.xml diff --git a/tests/qemuxml2argvdata/disk-network-http.x86_64-latest.args b/= tests/qemuxml2argvdata/disk-network-http.x86_64-latest.args new file mode 100644 index 0000000000..61daecf6f1 --- /dev/null +++ b/tests/qemuxml2argvdata/disk-network-http.x86_64-latest.args @@ -0,0 +1,57 @@ +LC_ALL=3DC \ +PATH=3D/bin \ +HOME=3D/tmp/lib/domain--1-QEMUGuest1 \ +USER=3Dtest \ +LOGNAME=3Dtest \ +XDG_DATA_HOME=3D/tmp/lib/domain--1-QEMUGuest1/.local/share \ +XDG_CACHE_HOME=3D/tmp/lib/domain--1-QEMUGuest1/.cache \ +XDG_CONFIG_HOME=3D/tmp/lib/domain--1-QEMUGuest1/.config \ +QEMU_AUDIO_DRV=3Dnone \ +/usr/bin/qemu-system-x86_64 \ +-name guest=3DQEMUGuest1,debug-threads=3Don \ +-S \ +-object secret,id=3DmasterKey0,format=3Draw,\ +file=3D/tmp/lib/domain--1-QEMUGuest1/master-key.aes \ +-machine pc,accel=3Dkvm,usb=3Doff,dump-guest-core=3Doff \ +-cpu qemu64 \ +-m 214 \ +-overcommit mem-lock=3Doff \ +-smp 1,sockets=3D1,cores=3D1,threads=3D1 \ +-uuid c7a5fdbd-edaf-9455-926a-d65c16db1809 \ +-display none \ +-no-user-config \ +-nodefaults \ +-chardev socket,id=3Dcharmonitor,fd=3D1729,server,nowait \ +-mon chardev=3Dcharmonitor,id=3Dmonitor,mode=3Dcontrol \ +-rtc base=3Dutc \ +-no-shutdown \ +-no-acpi \ +-boot strict=3Don \ +-device piix3-usb-uhci,id=3Dusb,bus=3Dpci.0,addr=3D0x1.0x2 \ +-blockdev '{"driver":"http","url":"http://example.org:80/test.img",\ +"node-name":"libvirt-4-storage","auto-read-only":true,"discard":"unmap"}' \ +-blockdev '{"node-name":"libvirt-4-format","read-only":false,"driver":"raw= ",\ +"file":"libvirt-4-storage"}' \ +-device virtio-blk-pci,scsi=3Doff,bus=3Dpci.0,addr=3D0x2,drive=3Dlibvirt-4= -format,\ +id=3Dvirtio-disk0,bootindex=3D1 \ +-blockdev '{"driver":"https","url":"https://example.org:443/test2.img",\ +"node-name":"libvirt-3-storage","auto-read-only":true,"discard":"unmap"}' \ +-blockdev '{"node-name":"libvirt-3-format","read-only":false,"driver":"raw= ",\ +"file":"libvirt-3-storage"}' \ +-device virtio-blk-pci,scsi=3Doff,bus=3Dpci.0,addr=3D0x3,drive=3Dlibvirt-3= -format,\ +id=3Dvirtio-disk1 \ +-blockdev '{"driver":"http","url":"http://example.org:1234/test3.img",\ +"node-name":"libvirt-2-storage","auto-read-only":true,"discard":"unmap"}' \ +-blockdev '{"node-name":"libvirt-2-format","read-only":false,"driver":"raw= ",\ +"file":"libvirt-2-storage"}' \ +-device virtio-blk-pci,scsi=3Doff,bus=3Dpci.0,addr=3D0x4,drive=3Dlibvirt-2= -format,\ +id=3Dvirtio-disk2 \ +-blockdev '{"driver":"https","url":"https://example.org:1234/test4.img",\ +"node-name":"libvirt-1-storage","auto-read-only":true,"discard":"unmap"}' \ +-blockdev '{"node-name":"libvirt-1-format","read-only":false,"driver":"raw= ",\ +"file":"libvirt-1-storage"}' \ +-device virtio-blk-pci,scsi=3Doff,bus=3Dpci.0,addr=3D0x5,drive=3Dlibvirt-1= -format,\ +id=3Dvirtio-disk3 \ +-sandbox on,obsolete=3Ddeny,elevateprivileges=3Ddeny,spawn=3Ddeny,\ +resourcecontrol=3Ddeny \ +-msg timestamp=3Don diff --git a/tests/qemuxml2argvdata/disk-network-http.xml b/tests/qemuxml2a= rgvdata/disk-network-http.xml new file mode 100644 index 0000000000..83a9865c83 --- /dev/null +++ b/tests/qemuxml2argvdata/disk-network-http.xml @@ -0,0 +1,50 @@ + + QEMUGuest1 + c7a5fdbd-edaf-9455-926a-d65c16db1809 + 219136 + 219136 + 1 + + hvm + + + + destroy + restart + destroy + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/qemuxml2argvtest.c b/tests/qemuxml2argvtest.c index 35d413d40b..e81d1d7fa1 100644 --- a/tests/qemuxml2argvtest.c +++ b/tests/qemuxml2argvtest.c @@ -1092,6 +1092,7 @@ mymain(void) QEMU_CAPS_OBJECT_TLS_CREDS_X509, QEMU_CAPS_NBD_TLS); DO_TEST_CAPS_VER("disk-network-tlsx509", "2.12.0"); DO_TEST_CAPS_LATEST("disk-network-tlsx509"); + DO_TEST_CAPS_LATEST("disk-network-http"); driver.config->vxhsTLS =3D 0; VIR_FREE(driver.config->vxhsTLSx509certdir); DO_TEST("disk-no-boot", NONE); --=20 2.24.1 From nobody Tue Apr 30 02:39:33 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 205.139.110.61 as permitted sender) client-ip=205.139.110.61; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-1.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 205.139.110.61 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1583771238; cv=none; d=zohomail.com; s=zohoarc; b=V6hE5f38bNVf7CHeReY+AuDd/obiezsDiYE3+2rbxAUjZO+GjxEb0Z1jI7DJnH8hKSyvtLShOqzPEu+inNcbMMnDhakStZc8Rz+y5R1E5K9Zk+pDRmiY5MOhbYan6gbaL7bnc3DHtfSIW1Y+b3M8MZdQx38rKyzsy35MPv4QfcQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1583771238; h=Content-Type:Content-Transfer-Encoding:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=3dRqg4BvNjHelgfTsMlwMXf0z7oACVTsAHlKAmADx7U=; b=ATSgFlhM34bnIszrG3ab97ETeC9Ufb0iI5kD4oz1R+cfJ+zdnQLK08T/6WN2OqS3RJCiF1CWzAQyFPHCf44scfymjU6ftaDY8v2I4SuiSuwjsFoJbdWm9GE0nkK0Dv2x1AxHHo3fh0kqhkV4drYXbC+fJJbKPmMdXlxLFQ93tY4= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 205.139.110.61 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass header.from= (p=none dis=none) header.from= Return-Path: Received: from us-smtp-delivery-1.mimecast.com (us-smtp-1.mimecast.com [205.139.110.61]) by mx.zohomail.com with SMTPS id 1583771238650263.42367454998623; Mon, 9 Mar 2020 09:27:18 -0700 (PDT) Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-192-ZjFmIp34OvycdeefTQlesg-1; Mon, 09 Mar 2020 12:24:12 -0400 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 5E2A619057A3; Mon, 9 Mar 2020 16:24:03 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 2905C8F343; Mon, 9 Mar 2020 16:24:03 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id CF53086A26; Mon, 9 Mar 2020 16:24:02 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id 029GNTCH020845 for ; Mon, 9 Mar 2020 12:23:29 -0400 Received: by smtp.corp.redhat.com (Postfix) id A2EDD91D75; Mon, 9 Mar 2020 16:23:29 +0000 (UTC) Received: from angien.redhat.com (unknown [10.43.2.48]) by smtp.corp.redhat.com (Postfix) with ESMTP id 29A7C90A03 for ; Mon, 9 Mar 2020 16:23:29 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1583771237; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=3dRqg4BvNjHelgfTsMlwMXf0z7oACVTsAHlKAmADx7U=; b=AgMyXfXqeHjQ2TVFcGAp7JLWIN/ZeEbPRUAHIaz3H6oCmPTHbzs5Yw+bCLV0WhVAQj+WkD RM4GPXt15PCtZX0Af5dEQACq0MCVYTFKN8s4crxBWk5isF6AhLjVxptt0mAaffpKIfjwsH kSCjO9XBSryuH5abEO6EobG5DcHevus= X-MC-Unique: ZjFmIp34OvycdeefTQlesg-1 From: Peter Krempa To: libvir-list@redhat.com Subject: [PATCH 18/30] qemu: block: Implement ssl verification configuration Date: Mon, 9 Mar 2020 17:22:58 +0100 Message-Id: <566958024ed1c1ca4c6246bffdc78fb0138c0b01.1583770683.git.pkrempa@redhat.com> In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 X-loop: libvir-list@redhat.com X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) Content-Type: text/plain; charset="utf-8" Allow disabling of SSL certificate validation for HTTPS and FTPS drives in qemu. Signed-off-by: Peter Krempa Reviewed-by: J=C3=A1n Tomko --- src/qemu/qemu_block.c | 1 + tests/qemuxml2argvdata/disk-network-http.x86_64-latest.args | 3 ++- tests/qemuxml2argvdata/disk-network-http.xml | 1 + 3 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/qemu/qemu_block.c b/src/qemu/qemu_block.c index 0357815b07..6bfd46a489 100644 --- a/src/qemu/qemu_block.c +++ b/src/qemu/qemu_block.c @@ -713,6 +713,7 @@ qemuBlockStorageSourceGetCURLProps(virStorageSourcePtr = src, "s:url", uristr, "S:username", username, "S:password-secret", passwordali= as, + "T:sslverify", src->sslverify, NULL)); return ret; diff --git a/tests/qemuxml2argvdata/disk-network-http.x86_64-latest.args b/= tests/qemuxml2argvdata/disk-network-http.x86_64-latest.args index 61daecf6f1..a700c26bf6 100644 --- a/tests/qemuxml2argvdata/disk-network-http.x86_64-latest.args +++ b/tests/qemuxml2argvdata/disk-network-http.x86_64-latest.args @@ -47,7 +47,8 @@ id=3Dvirtio-disk1 \ -device virtio-blk-pci,scsi=3Doff,bus=3Dpci.0,addr=3D0x4,drive=3Dlibvirt-2= -format,\ id=3Dvirtio-disk2 \ -blockdev '{"driver":"https","url":"https://example.org:1234/test4.img",\ -"node-name":"libvirt-1-storage","auto-read-only":true,"discard":"unmap"}' \ +"sslverify":false,"node-name":"libvirt-1-storage","auto-read-only":true,\ +"discard":"unmap"}' \ -blockdev '{"node-name":"libvirt-1-format","read-only":false,"driver":"raw= ",\ "file":"libvirt-1-storage"}' \ -device virtio-blk-pci,scsi=3Doff,bus=3Dpci.0,addr=3D0x5,drive=3Dlibvirt-1= -format,\ diff --git a/tests/qemuxml2argvdata/disk-network-http.xml b/tests/qemuxml2a= rgvdata/disk-network-http.xml index 83a9865c83..8c475aec1d 100644 --- a/tests/qemuxml2argvdata/disk-network-http.xml +++ b/tests/qemuxml2argvdata/disk-network-http.xml @@ -38,6 +38,7 @@ + --=20 2.24.1 From nobody Tue Apr 30 02:39:33 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 205.139.110.120 as permitted sender) client-ip=205.139.110.120; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-1.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 205.139.110.120 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1583771043; cv=none; d=zohomail.com; s=zohoarc; b=BXqX/iUFPy1dFB6P3479E5/urOtf2r+cttL1WheWiTywbXSEO09/na06qmA0RH/IU+5mDIDL9Y2DBvvqGFmavuza6ekxdflYcVqxUU6PJPEsazw50sxTS5mwUEjIY3yKT7cMICaZt9XxlZrsheyw0Kl+pHTllNL0lSjbK/i4LXI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1583771043; h=Content-Type:Content-Transfer-Encoding:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=nwV9SVJDo0kaSS/33361QtS1RvTXH+C3r0vGInMc5Lw=; b=OHX9mKSbdWAhhPRCJSGTE/Kh3DXX5pDdUrU5R8OMKQjoB50QXpaDdlpwt3gDQfZCueCP+EDq+feu0uRni0uorP8mB0u9uhdj7THEv+XnaTXOlwGGYDSNFr5SlI+D1NjpOCSNJ5kEFDWCmU03EP0tcf+5HyIR4rxOtrRSlIcgkZk= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 205.139.110.120 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass header.from= (p=none dis=none) header.from= Return-Path: Received: from us-smtp-1.mimecast.com (us-smtp-delivery-1.mimecast.com [205.139.110.120]) by mx.zohomail.com with SMTPS id 1583771043466180.07284463466237; Mon, 9 Mar 2020 09:24:03 -0700 (PDT) Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-204-sAjXPwy1MiG7x6jK6N1oxg-1; Mon, 09 Mar 2020 12:23:58 -0400 Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id BA36B8010D9; Mon, 9 Mar 2020 16:23:52 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 89E178681F; Mon, 9 Mar 2020 16:23:52 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id D8F4686A18; Mon, 9 Mar 2020 16:23:51 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id 029GNU9s020857 for ; Mon, 9 Mar 2020 12:23:30 -0400 Received: by smtp.corp.redhat.com (Postfix) id C194890A03; Mon, 9 Mar 2020 16:23:30 +0000 (UTC) Received: from angien.redhat.com (unknown [10.43.2.48]) by smtp.corp.redhat.com (Postfix) with ESMTP id 4694D91D94 for ; Mon, 9 Mar 2020 16:23:29 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1583771042; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=nwV9SVJDo0kaSS/33361QtS1RvTXH+C3r0vGInMc5Lw=; b=d2bwwg2CUsHfmBxwyfSu7fbwtlywoYGoFWKQWnoW2vy45hSAH/gq/WM3q8Yadvnb1M2NsI p2Q6Ps+LIUaiwLKRvcZK6lzNTbG+3+7wmQKzZpUqiujlBL1Um1NndSI07dx28dF+IaWM+4 noToWyz3bPQB3Vizpzj47vFnygIHB+o= X-MC-Unique: sAjXPwy1MiG7x6jK6N1oxg-1 From: Peter Krempa To: libvir-list@redhat.com Subject: [PATCH 19/30] qemu: domain: Store data for 'secret' object representing http cookies Date: Mon, 9 Mar 2020 17:22:59 +0100 Message-Id: In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 X-loop: libvir-list@redhat.com X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.15 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) Content-Type: text/plain; charset="utf-8" The http cookies can have potentially sensitive values and thus should not be leaked into the command line. This means that we'll need to instantiate a 'secret' object in qemu to pass the value encrypted. This patch adds infrastructure for storing of the alias in the status XML.t Signed-off-by: Peter Krempa Reviewed-by: J=C3=A1n Tomko --- src/qemu/qemu_domain.c | 8 +++++++- src/qemu/qemu_domain.h | 3 +++ tests/qemustatusxml2xmldata/modern-in.xml | 1 + 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index e7aaded4d5..b36ff434f3 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -2314,6 +2314,7 @@ qemuStorageSourcePrivateDataParse(xmlXPathContextPtr = ctxt, qemuDomainStorageSourcePrivatePtr priv; g_autofree char *authalias =3D NULL; g_autofree char *encalias =3D NULL; + g_autofree char *httpcookiealias =3D NULL; src->nodestorage =3D virXPathString("string(./nodenames/nodename[@type= =3D'storage']/@name)", ctxt); src->nodeformat =3D virXPathString("string(./nodenames/nodename[@type= =3D'format']/@name)", ctxt); @@ -2327,8 +2328,9 @@ qemuStorageSourcePrivateDataParse(xmlXPathContextPtr = ctxt, authalias =3D virXPathString("string(./objects/secret[@type=3D'auth']/= @alias)", ctxt); encalias =3D virXPathString("string(./objects/secret[@type=3D'encrypti= on']/@alias)", ctxt); + httpcookiealias =3D virXPathString("string(./objects/secret[@type=3D'h= ttpcookie']/@alias)", ctxt); - if (authalias || encalias) { + if (authalias || encalias || httpcookiealias) { if (!src->privateData && !(src->privateData =3D qemuDomainStorageSourcePrivateNew())) return -1; @@ -2340,6 +2342,9 @@ qemuStorageSourcePrivateDataParse(xmlXPathContextPtr = ctxt, if (qemuStorageSourcePrivateDataAssignSecinfo(&priv->encinfo, &enc= alias) < 0) return -1; + + if (qemuStorageSourcePrivateDataAssignSecinfo(&priv->httpcookie, &= httpcookiealias) < 0) + return -1; } if (virStorageSourcePrivateDataParseRelPath(ctxt, src) < 0) @@ -2390,6 +2395,7 @@ qemuStorageSourcePrivateDataFormat(virStorageSourcePt= r src, if (srcPriv) { qemuStorageSourcePrivateDataFormatSecinfo(&tmp, srcPriv->secinfo, = "auth"); qemuStorageSourcePrivateDataFormatSecinfo(&tmp, srcPriv->encinfo, = "encryption"); + qemuStorageSourcePrivateDataFormatSecinfo(&tmp, srcPriv->httpcooki= e, "httpcookie"); } if (src->tlsAlias) diff --git a/src/qemu/qemu_domain.h b/src/qemu/qemu_domain.h index 202b85e39a..4e59f316fa 100644 --- a/src/qemu/qemu_domain.h +++ b/src/qemu/qemu_domain.h @@ -460,6 +460,9 @@ struct _qemuDomainStorageSourcePrivate { /* data required for decryption of encrypted storage source */ qemuDomainSecretInfoPtr encinfo; + + /* secure passthrough of the http cookie */ + qemuDomainSecretInfoPtr httpcookie; }; virObjectPtr qemuDomainStorageSourcePrivateNew(void); diff --git a/tests/qemustatusxml2xmldata/modern-in.xml b/tests/qemustatusxm= l2xmldata/modern-in.xml index c8d21ceada..cb56cdcef9 100644 --- a/tests/qemustatusxml2xmldata/modern-in.xml +++ b/tests/qemustatusxml2xmldata/modern-in.xml @@ -332,6 +332,7 @@ + --=20 2.24.1 From nobody Tue Apr 30 02:39:33 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 205.139.110.61 as permitted sender) client-ip=205.139.110.61; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-1.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 205.139.110.61 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1583771105; cv=none; d=zohomail.com; s=zohoarc; b=N5GvlhUSsZHNyKMcMRpjvSdt9ogJgD3uxrugeCZkFyFhg84ZaBk1OPFaJqoGAYnZTcSNH91lqCWgyCZOgxjVByJWrIckeEX6+26mP+vbO0GJaHin1KhflBmJMPcWmQiJdVyMPIHy4xFszQbily+qwKHMkVTR8Uy2y64V2EBIG8g= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1583771105; h=Content-Type:Content-Transfer-Encoding:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=MCj8+7z6F7Lvy/vDbBijZGY065IDcdBNur4+q55iN5k=; b=UEmCWiKu8nRJjyIJ5NNf3a5EJuLnxnJrPtxVmm+DqCaMMOpns40vUtlX3Tb79yLfMa2+YMTQXJ/zsp3Qa+WWDu8Cpm5XmPxev+bN/DQDdDVju7e+fxVCQeJGBHtdoVkEzyzt036sSdxMOGgTbEW+yVKrs5kKHbv0QdDQP9EqqGk= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 205.139.110.61 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass header.from= (p=none dis=none) header.from= Return-Path: Received: from us-smtp-delivery-1.mimecast.com (us-smtp-1.mimecast.com [205.139.110.61]) by mx.zohomail.com with SMTPS id 1583771105302565.0517195991353; Mon, 9 Mar 2020 09:25:05 -0700 (PDT) Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-436-sHTSMIP2P6m83QpRQRVpGw-1; Mon, 09 Mar 2020 12:24:09 -0400 Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.phx2.redhat.com [10.5.11.16]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 76AA1DB61; Mon, 9 Mar 2020 16:24:01 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 44D615C557; Mon, 9 Mar 2020 16:24:01 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id EACB118034ED; Mon, 9 Mar 2020 16:24:00 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id 029GNYa5020880 for ; Mon, 9 Mar 2020 12:23:34 -0400 Received: by smtp.corp.redhat.com (Postfix) id 8AED390779; Mon, 9 Mar 2020 16:23:34 +0000 (UTC) Received: from angien.redhat.com (unknown [10.43.2.48]) by smtp.corp.redhat.com (Postfix) with ESMTP id 10EED9051C for ; Mon, 9 Mar 2020 16:23:30 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1583771104; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=MCj8+7z6F7Lvy/vDbBijZGY065IDcdBNur4+q55iN5k=; b=FUXUwYnqvnTdszN5igfgyN2JMMzjJoxIZ5MKUFz6TcljgSZfbw29zg4xf4B1kr+EheoBDZ mvQ9mV40vyUfylsOG+wWFZk94j3AW3fLbcJc9Msv+OFx6EDY6h+YQGurYKm9heGEYhZDQQ hJ4zkyS5Lu5IQinqJrAxqPi1zNIJyD8= X-MC-Unique: sHTSMIP2P6m83QpRQRVpGw-1 From: Peter Krempa To: libvir-list@redhat.com Subject: [PATCH 20/30] qemuDomainSecretStorageSourcePrepare: Setup secret for http cookies Date: Mon, 9 Mar 2020 17:23:00 +0100 Message-Id: In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 X-loop: libvir-list@redhat.com X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.16 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) Content-Type: text/plain; charset="utf-8" QEMU's curl driver requires the cookes concatenated and allows them passed in via a secret. Prepare the value for the secret and encrypt it. Signed-off-by: Peter Krempa Reviewed-by: J=C3=A1n Tomko --- src/qemu/qemu_domain.c | 33 ++++++++++++++++++++++++++++++++- 1 file changed, 32 insertions(+), 1 deletion(-) diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index b36ff434f3..5c8fc83417 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -1727,6 +1727,30 @@ qemuDomainDiskHasEncryptionSecret(virStorageSourcePt= r src) } +static qemuDomainSecretInfoPtr +qemuDomainSecretStorageSourcePrepareCookies(qemuDomainObjPrivatePtr priv, + virStorageSourcePtr src, + const char *aliasprotocol) +{ + g_autofree char *secretalias =3D qemuAliasForSecret(aliasprotocol, "ht= tpcookie"); + g_autofree char *cookies =3D NULL; + g_auto(virBuffer) buf =3D VIR_BUFFER_INITIALIZER; + size_t i; + + for (i =3D 0; i < src->ncookies; i++) { + virStorageNetCookieDefPtr cookie =3D src->cookies[i]; + + virBufferAsprintf(&buf, "%s=3D%s; ", cookie->name, cookie->value); + } + + virBufferTrim(&buf, "; "); + cookies =3D virBufferContentAndReset(&buf); + + return qemuDomainSecretAESSetup(priv, secretalias, NULL, + (uint8_t *) cookies, strlen(cookies)); +} + + /** * qemuDomainSecretStorageSourcePrepare: * @priv: domain private object @@ -1752,7 +1776,7 @@ qemuDomainSecretStorageSourcePrepare(qemuDomainObjPri= vatePtr priv, bool hasAuth =3D qemuDomainStorageSourceHasAuth(src); bool hasEnc =3D qemuDomainDiskHasEncryptionSecret(src); - if (!hasAuth && !hasEnc) + if (!hasAuth && !hasEnc && src->ncookies =3D=3D 0) return 0; if (!(src->privateData =3D qemuDomainStorageSourcePrivateNew())) @@ -1792,6 +1816,13 @@ qemuDomainSecretStorageSourcePrepare(qemuDomainObjPr= ivatePtr priv, return -1; } + if (src->ncookies && + virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_BLOCKDEV) && + !(srcPriv->httpcookie =3D qemuDomainSecretStorageSourcePrepareCook= ies(priv, + = src, + = aliasprotocol))) + return -1; + return 0; } --=20 2.24.1 From nobody Tue Apr 30 02:39:33 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 207.211.31.120 as permitted sender) client-ip=207.211.31.120; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-1.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 207.211.31.120 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1583771106; cv=none; d=zohomail.com; s=zohoarc; b=KmBRUysOwFPQZro3tbIMMNpie+PA4bSFc9VwyvjV7vuIVjSFv0JYC0Euce7KBQeDj9UKAvY2iXW1w2mhpxBucrk3gSgOLaRIwDQ5vMq91wpHPrndUGJ2QIcksj0t/higRvolIoTxhU1sQQ/pdtfKqgzjDSfF7z59SEnsN7whAlg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1583771106; h=Content-Type:Content-Transfer-Encoding:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=UMKrxCTMLrEs0C+Kdc+6cz46j3/XcTOQ0QQKH2MNLUA=; b=ZILDqoDquturzIdUGOjU35oz4kRXuaqkiD5p9Sry5hEzJ4JZqstrZ4H6AG1msr2g+GEinFty1K3ytuhvGtX6yIUmZ4W9LbyRBKHsXhs2HyxfZWGorou1I3ey93EcUTIZ5nNLCKcfTCPd+KJRc56WjU5WqUWhfX+zMF4B2d28qVw= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 207.211.31.120 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass header.from= (p=none dis=none) header.from= Return-Path: Received: from us-smtp-1.mimecast.com (us-smtp-delivery-1.mimecast.com [207.211.31.120]) by mx.zohomail.com with SMTPS id 1583771106534222.36874551330095; Mon, 9 Mar 2020 09:25:06 -0700 (PDT) Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-26-VueQpnwJPnyVig2ehS679w-1; Mon, 09 Mar 2020 12:24:15 -0400 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id F1DA3801E77; Mon, 9 Mar 2020 16:24:07 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id C64668F35E; Mon, 9 Mar 2020 16:24:07 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id 7711E18034FD; Mon, 9 Mar 2020 16:24:07 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id 029GNZ5p020888 for ; Mon, 9 Mar 2020 12:23:35 -0400 Received: by smtp.corp.redhat.com (Postfix) id 5EBAE90779; Mon, 9 Mar 2020 16:23:35 +0000 (UTC) Received: from angien.redhat.com (unknown [10.43.2.48]) by smtp.corp.redhat.com (Postfix) with ESMTP id DA1679051C for ; Mon, 9 Mar 2020 16:23:34 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1583771105; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=UMKrxCTMLrEs0C+Kdc+6cz46j3/XcTOQ0QQKH2MNLUA=; b=S8Dx3ZZLI3OMqTbXbWxmp2764fR3t0Wwrlf11ng6Xb8XD6HAEEGm32y4NNwtooE7RIM65x hdERYcoFCrZU0O8lc8mtwJvswwqxGrazZIf+ciNS3vvzwKD1r+PTIjwjVaGIUcrDoWfn6s UrfWnkwO70C6h5O6ibNd9Yhhx1z6dGs= X-MC-Unique: VueQpnwJPnyVig2ehS679w-1 From: Peter Krempa To: libvir-list@redhat.com Subject: [PATCH 21/30] qemu: Handle hotplug and commandline for secret objects for http cookies Date: Mon, 9 Mar 2020 17:23:01 +0100 Message-Id: <6ff7073a92985f71733a1d10f4251fc191c379d7.1583770683.git.pkrempa@redhat.com> In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 X-loop: libvir-list@redhat.com X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) Content-Type: text/plain; charset="utf-8" Implement both commandline support and hotplug by adding the http cookie handling to 'qemuBlockStorageSourceAttachData' handling functions for it. Signed-off-by: Peter Krempa Reviewed-by: J=C3=A1n Tomko --- src/qemu/qemu_block.c | 13 +++++++++++++ src/qemu/qemu_block.h | 3 +++ src/qemu/qemu_command.c | 5 +++++ 3 files changed, 21 insertions(+) diff --git a/src/qemu/qemu_block.c b/src/qemu/qemu_block.c index 6bfd46a489..aba0f31f94 100644 --- a/src/qemu/qemu_block.c +++ b/src/qemu/qemu_block.c @@ -1499,11 +1499,13 @@ qemuBlockStorageSourceAttachDataFree(qemuBlockStora= geSourceAttachDataPtr data) virJSONValueFree(data->formatProps); virJSONValueFree(data->prmgrProps); virJSONValueFree(data->authsecretProps); + virJSONValueFree(data->httpcookiesecretProps); virJSONValueFree(data->encryptsecretProps); virJSONValueFree(data->tlsProps); VIR_FREE(data->tlsAlias); VIR_FREE(data->authsecretAlias); VIR_FREE(data->encryptsecretAlias); + VIR_FREE(data->httpcookiesecretAlias); VIR_FREE(data->driveCmd); VIR_FREE(data->driveAlias); VIR_FREE(data); @@ -1570,6 +1572,11 @@ qemuBlockStorageSourceAttachApplyStorageDeps(qemuMon= itorPtr mon, &data->authsecretAlias) < 0) return -1; + if (data->httpcookiesecretProps && + qemuMonitorAddObject(mon, &data->httpcookiesecretProps, + &data->httpcookiesecretAlias) < 0) + return -1; + if (data->tlsProps && qemuMonitorAddObject(mon, &data->tlsProps, &data->tlsAlias) < 0) return -1; @@ -1713,6 +1720,9 @@ qemuBlockStorageSourceAttachRollback(qemuMonitorPtr m= on, if (data->encryptsecretAlias) ignore_value(qemuMonitorDelObject(mon, data->encryptsecretAlias)); + if (data->httpcookiesecretAlias) + ignore_value(qemuMonitorDelObject(mon, data->httpcookiesecretAlias= )); + if (data->tlsAlias) ignore_value(qemuMonitorDelObject(mon, data->tlsAlias)); @@ -1768,6 +1778,9 @@ qemuBlockStorageSourceDetachPrepare(virStorageSourceP= tr src, if (srcpriv->encinfo && srcpriv->encinfo->type =3D=3D VIR_DOMAIN_S= ECRET_INFO_TYPE_AES) data->encryptsecretAlias =3D g_strdup(srcpriv->encinfo->s.aes.= alias); + + if (srcpriv->httpcookie) + data->httpcookiesecretAlias =3D g_strdup(srcpriv->httpcookie->= s.aes.alias); } return g_steal_pointer(&data); diff --git a/src/qemu/qemu_block.h b/src/qemu/qemu_block.h index eab0128d5d..197f5dae97 100644 --- a/src/qemu/qemu_block.h +++ b/src/qemu/qemu_block.h @@ -100,6 +100,9 @@ struct qemuBlockStorageSourceAttachData { virJSONValuePtr encryptsecretProps; char *encryptsecretAlias; + virJSONValuePtr httpcookiesecretProps; + char *httpcookiesecretAlias; + virJSONValuePtr tlsProps; char *tlsAlias; }; diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index 9e0334a3e7..9790c92cf8 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -2398,6 +2398,7 @@ qemuBuildBlockStorageSourceAttachDataCommandline(virC= ommandPtr cmd, if (qemuBuildObjectCommandline(cmd, data->prmgrProps) < 0 || qemuBuildObjectCommandline(cmd, data->authsecretProps) < 0 || qemuBuildObjectCommandline(cmd, data->encryptsecretProps) < 0 || + qemuBuildObjectCommandline(cmd, data->httpcookiesecretProps) < 0 || qemuBuildObjectCommandline(cmd, data->tlsProps) < 0) return -1; @@ -10333,6 +10334,10 @@ qemuBuildStorageSourceAttachPrepareCommon(virStora= geSourcePtr src, if (srcpriv->encinfo && qemuBuildSecretInfoProps(srcpriv->encinfo, &data->encryptsecre= tProps) < 0) return -1; + + if (srcpriv->httpcookie && + qemuBuildSecretInfoProps(srcpriv->httpcookie, &data->httpcooki= esecretProps) < 0) + return -1; } if (src->haveTLS =3D=3D VIR_TRISTATE_BOOL_YES && --=20 2.24.1 From nobody Tue Apr 30 02:39:33 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 205.139.110.120 as permitted sender) client-ip=205.139.110.120; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-1.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 205.139.110.120 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1583771048; cv=none; d=zohomail.com; s=zohoarc; b=SwfMRDluydPA2hDRqJVBYy0VuKNuDFfmU9i1rlv+DnkadB6sVqTsBHh/vsQKfdHEcfwm7qbrS4p35VTvYAGaoTWswif7U3KPeFEQpcGa5X5jmt3yyh0adK2/PFYIhTzoFCN7xkcainsHCpiA0kEQXZ5klDfyYeQ6H9g1BRxSdso= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1583771048; h=Content-Type:Content-Transfer-Encoding:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=tIaeEfirFDOlL25pkzgZVwQZy31eCwWSrhlacjiRMwg=; b=YJlmiesn0znuCOFuEv1xs0PTXvke8acs0cdvsIhnwSFydZu7y/VfRtKw36yaDpMZVHXO7rrf27g18GXw8fY/jzzrzugv/q+3nyYwxX2q7uAcNEmWGSeU3Cd0HYMnYXin2342ULG5FF08M1LCgT3AyuoZky12VOe2jzb4+moqmA4= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 205.139.110.120 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass header.from= (p=none dis=none) header.from= Return-Path: Received: from us-smtp-1.mimecast.com (us-smtp-delivery-1.mimecast.com [205.139.110.120]) by mx.zohomail.com with SMTPS id 1583771048661302.55408783217376; Mon, 9 Mar 2020 09:24:08 -0700 (PDT) Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-292-FGX0B90kPOuQn3r36tN6Mw-1; Mon, 09 Mar 2020 12:24:04 -0400 Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.phx2.redhat.com [10.5.11.16]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 7F8D1DB6A; Mon, 9 Mar 2020 16:23:56 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 4E4215C3F8; Mon, 9 Mar 2020 16:23:56 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id E693218037C8; Mon, 9 Mar 2020 16:23:55 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id 029GNcGY020902 for ; Mon, 9 Mar 2020 12:23:38 -0400 Received: by smtp.corp.redhat.com (Postfix) id DA400909E9; Mon, 9 Mar 2020 16:23:38 +0000 (UTC) Received: from angien.redhat.com (unknown [10.43.2.48]) by smtp.corp.redhat.com (Postfix) with ESMTP id 6099D90779 for ; Mon, 9 Mar 2020 16:23:35 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1583771047; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=tIaeEfirFDOlL25pkzgZVwQZy31eCwWSrhlacjiRMwg=; b=BuJ5HFD7XysjHtQi/1M0iTF7EwI1uh9qCo9qojRvJjs05iWPkuG7zr6AYm+OdK8nl7iHmi 1VXGz2HJaCat8/4nrPxH/iM5p5RvQ/JOK8yt1DEcbjUCyH+RWCdJ7kgpg7KQsHwIz8mxYt J2GYTb3RsUkwxvicgMDAI758q4rkIyA= X-MC-Unique: FGX0B90kPOuQn3r36tN6Mw-1 From: Peter Krempa To: libvir-list@redhat.com Subject: [PATCH 22/30] qemu: block: Add support for HTTP cookies Date: Mon, 9 Mar 2020 17:23:02 +0100 Message-Id: In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 X-loop: libvir-list@redhat.com X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.16 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) Content-Type: text/plain; charset="utf-8" Pass the alias of the secret object holding the cookie data as 'cookie-secret' to qemu. Signed-off-by: Peter Krempa Reviewed-by: J=C3=A1n Tomko --- src/qemu/qemu_block.c | 14 +++++++++++--- .../disk-network-http.x86_64-latest.args | 11 +++++++++-- tests/qemuxml2argvdata/disk-network-http.xml | 8 ++++++++ 3 files changed, 28 insertions(+), 5 deletions(-) diff --git a/src/qemu/qemu_block.c b/src/qemu/qemu_block.c index aba0f31f94..119b34f869 100644 --- a/src/qemu/qemu_block.c +++ b/src/qemu/qemu_block.c @@ -680,6 +680,7 @@ qemuBlockStorageSourceGetCURLProps(virStorageSourcePtr = src, { qemuDomainStorageSourcePrivatePtr srcPriv =3D QEMU_DOMAIN_STORAGE_SOUR= CE_PRIVATE(src); const char *passwordalias =3D NULL; + const char *cookiealias =3D NULL; const char *username =3D NULL; virJSONValuePtr ret =3D NULL; g_autoptr(virURI) uri =3D NULL; @@ -704,9 +705,15 @@ qemuBlockStorageSourceGetCURLProps(virStorageSourcePtr= src, if (!(uristr =3D virURIFormat(uri))) return NULL; - if (!onlytarget && src->auth) { - username =3D src->auth->username; - passwordalias =3D srcPriv->secinfo->s.aes.alias; + if (!onlytarget) { + if (src->auth) { + username =3D src->auth->username; + passwordalias =3D srcPriv->secinfo->s.aes.alias; + } + + if (srcPriv && + srcPriv->httpcookie) + cookiealias =3D srcPriv->httpcookie->s.aes.alias; } ignore_value(virJSONValueObjectCreate(&ret, @@ -714,6 +721,7 @@ qemuBlockStorageSourceGetCURLProps(virStorageSourcePtr = src, "S:username", username, "S:password-secret", passwordali= as, "T:sslverify", src->sslverify, + "S:cookie-secret", cookiealias, NULL)); return ret; diff --git a/tests/qemuxml2argvdata/disk-network-http.x86_64-latest.args b/= tests/qemuxml2argvdata/disk-network-http.x86_64-latest.args index a700c26bf6..5798235b55 100644 --- a/tests/qemuxml2argvdata/disk-network-http.x86_64-latest.args +++ b/tests/qemuxml2argvdata/disk-network-http.x86_64-latest.args @@ -40,15 +40,22 @@ id=3Dvirtio-disk0,bootindex=3D1 \ "file":"libvirt-3-storage"}' \ -device virtio-blk-pci,scsi=3Doff,bus=3Dpci.0,addr=3D0x3,drive=3Dlibvirt-3= -format,\ id=3Dvirtio-disk1 \ +-object secret,id=3Dlibvirt-2-storage-httpcookie-secret0,\ +data=3DDrPR9NA6GKJb7qi1KbjHad3f3UIGTTDmAmOZHHv1F5w5T8rhnk3f+uSKStHe0J2O,\ +keyid=3DmasterKey0,iv=3DAAECAwQFBgcICQoLDA0ODw=3D=3D,format=3Dbase64 \ -blockdev '{"driver":"http","url":"http://example.org:1234/test3.img",\ +"cookie-secret":"libvirt-2-storage-httpcookie-secret0",\ "node-name":"libvirt-2-storage","auto-read-only":true,"discard":"unmap"}' \ -blockdev '{"node-name":"libvirt-2-format","read-only":false,"driver":"raw= ",\ "file":"libvirt-2-storage"}' \ -device virtio-blk-pci,scsi=3Doff,bus=3Dpci.0,addr=3D0x4,drive=3Dlibvirt-2= -format,\ id=3Dvirtio-disk2 \ +-object secret,id=3Dlibvirt-1-storage-httpcookie-secret0,\ +data=3DDrPR9NA6GKJb7qi1KbjHad3f3UIGTTDmAmOZHHv1F5w5T8rhnk3f+uSKStHe0J2O,\ +keyid=3DmasterKey0,iv=3DAAECAwQFBgcICQoLDA0ODw=3D=3D,format=3Dbase64 \ -blockdev '{"driver":"https","url":"https://example.org:1234/test4.img",\ -"sslverify":false,"node-name":"libvirt-1-storage","auto-read-only":true,\ -"discard":"unmap"}' \ +"sslverify":false,"cookie-secret":"libvirt-1-storage-httpcookie-secret0",\ +"node-name":"libvirt-1-storage","auto-read-only":true,"discard":"unmap"}' \ -blockdev '{"node-name":"libvirt-1-format","read-only":false,"driver":"raw= ",\ "file":"libvirt-1-storage"}' \ -device virtio-blk-pci,scsi=3Doff,bus=3Dpci.0,addr=3D0x5,drive=3Dlibvirt-1= -format,\ diff --git a/tests/qemuxml2argvdata/disk-network-http.xml b/tests/qemuxml2a= rgvdata/disk-network-http.xml index 8c475aec1d..6acf75cf65 100644 --- a/tests/qemuxml2argvdata/disk-network-http.xml +++ b/tests/qemuxml2argvdata/disk-network-http.xml @@ -31,6 +31,10 @@ + + testcookievalue + blurb + @@ -39,6 +43,10 @@ + + testcookievalue + blurb + --=20 2.24.1 From nobody Tue Apr 30 02:39:33 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 207.211.31.81 as permitted sender) client-ip=207.211.31.81; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-1.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 207.211.31.81 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1583771054; cv=none; d=zohomail.com; s=zohoarc; b=dkLe9t2PSy0koN1MTny171YBtAhBIQAEeP6y6ukDhtO0Ev8b7di1oIG2GWW/oTT7MYO0Bi9mkgh9SIdNIXIUDSC3iv7cl+kcwiPGyjXNR2SOz3mnS8aUR3pu92WZu3L2WLiMeD3t0M2GP0D6fDAUOl72WNzKzJICQ5YHjHGr1I4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1583771054; h=Content-Type:Content-Transfer-Encoding:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=pArzOLEWQCVY/CmWF0KiMpkIhVZvl3DKB5T50ZeMfgs=; b=JO2lFVAJgzsoChawkIelwNc1zkYSPT9mtcnauVHs6mOQ7YjYv4k0b7uyskB2Dn5VsHsczI8XAQuAGZJvN5xap8GJaJSCuILLtGLWyzFat3l8YYdvSjavGBpFdhUHab4sjH8vBwnMEuGvpaS02QcHqENq6/d9n5l7NCe95pGhR/k= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 207.211.31.81 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass header.from= (p=none dis=none) header.from= Return-Path: Received: from us-smtp-delivery-1.mimecast.com (us-smtp-2.mimecast.com [207.211.31.81]) by mx.zohomail.com with SMTPS id 158377105481351.14722189491329; Mon, 9 Mar 2020 09:24:14 -0700 (PDT) Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-141-duY0UbH8OM6S8OfSRtk62g-1; Mon, 09 Mar 2020 12:24:10 -0400 Received: from smtp.corp.redhat.com (int-mx07.intmail.prod.int.phx2.redhat.com [10.5.11.22]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 88F5E1005509; Mon, 9 Mar 2020 16:24:01 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 57BAD1000322; Mon, 9 Mar 2020 16:24:01 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id 06C1286A22; Mon, 9 Mar 2020 16:24:01 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id 029GNdrv020907 for ; Mon, 9 Mar 2020 12:23:39 -0400 Received: by smtp.corp.redhat.com (Postfix) id AEAD6909E9; Mon, 9 Mar 2020 16:23:39 +0000 (UTC) Received: from angien.redhat.com (unknown [10.43.2.48]) by smtp.corp.redhat.com (Postfix) with ESMTP id 3600690779 for ; Mon, 9 Mar 2020 16:23:39 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1583771053; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=pArzOLEWQCVY/CmWF0KiMpkIhVZvl3DKB5T50ZeMfgs=; b=gdAzHYII1/fCC8eKmmlfIzw0Qfitk8lYiPv5RN1TVvdSOC3s4iarELILZoaC/3X0FQhXzK iOzPxIhoFK6lqBGYQJQ99q9lW3lvBgF/8mS3vTY8PXdX7F1+boWTq6RXAGZeqfczrZGt9O Dd16RGv87Ed2IjX9MaaSQmwyNadCasY= X-MC-Unique: duY0UbH8OM6S8OfSRtk62g-1 From: Peter Krempa To: libvir-list@redhat.com Subject: [PATCH 23/30] qemu: block: Implement readahead and timeout properties for 'curl' driver Date: Mon, 9 Mar 2020 17:23:03 +0100 Message-Id: <70e1dd9377c055b5fd7fcb16b8b75d1cdcc00ece.1583770683.git.pkrempa@redhat.com> In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 X-loop: libvir-list@redhat.com X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.84 on 10.5.11.22 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) Content-Type: text/plain; charset="utf-8" Pass in the correct fields. Signed-off-by: Peter Krempa Reviewed-by: J=C3=A1n Tomko --- src/qemu/qemu_block.c | 2 ++ tests/qemuxml2argvdata/disk-network-http.x86_64-latest.args | 6 ++++-- tests/qemuxml2argvdata/disk-network-http.xml | 2 ++ 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/qemu/qemu_block.c b/src/qemu/qemu_block.c index 119b34f869..f64bd8254b 100644 --- a/src/qemu/qemu_block.c +++ b/src/qemu/qemu_block.c @@ -722,6 +722,8 @@ qemuBlockStorageSourceGetCURLProps(virStorageSourcePtr = src, "S:password-secret", passwordali= as, "T:sslverify", src->sslverify, "S:cookie-secret", cookiealias, + "P:timeout", src->timeout, + "P:readahead", src->readahead, NULL)); return ret; diff --git a/tests/qemuxml2argvdata/disk-network-http.x86_64-latest.args b/= tests/qemuxml2argvdata/disk-network-http.x86_64-latest.args index 5798235b55..e14498f778 100644 --- a/tests/qemuxml2argvdata/disk-network-http.x86_64-latest.args +++ b/tests/qemuxml2argvdata/disk-network-http.x86_64-latest.args @@ -29,13 +29,15 @@ file=3D/tmp/lib/domain--1-QEMUGuest1/master-key.aes \ -boot strict=3Don \ -device piix3-usb-uhci,id=3Dusb,bus=3Dpci.0,addr=3D0x1.0x2 \ -blockdev '{"driver":"http","url":"http://example.org:80/test.img",\ -"node-name":"libvirt-4-storage","auto-read-only":true,"discard":"unmap"}' \ +"timeout":1234,"node-name":"libvirt-4-storage","auto-read-only":true,\ +"discard":"unmap"}' \ -blockdev '{"node-name":"libvirt-4-format","read-only":false,"driver":"raw= ",\ "file":"libvirt-4-storage"}' \ -device virtio-blk-pci,scsi=3Doff,bus=3Dpci.0,addr=3D0x2,drive=3Dlibvirt-4= -format,\ id=3Dvirtio-disk0,bootindex=3D1 \ -blockdev '{"driver":"https","url":"https://example.org:443/test2.img",\ -"node-name":"libvirt-3-storage","auto-read-only":true,"discard":"unmap"}' \ +"readahead":1024,"node-name":"libvirt-3-storage","auto-read-only":true,\ +"discard":"unmap"}' \ -blockdev '{"node-name":"libvirt-3-format","read-only":false,"driver":"raw= ",\ "file":"libvirt-3-storage"}' \ -device virtio-blk-pci,scsi=3Doff,bus=3Dpci.0,addr=3D0x3,drive=3Dlibvirt-3= -format,\ diff --git a/tests/qemuxml2argvdata/disk-network-http.xml b/tests/qemuxml2a= rgvdata/disk-network-http.xml index 6acf75cf65..20024c732e 100644 --- a/tests/qemuxml2argvdata/disk-network-http.xml +++ b/tests/qemuxml2argvdata/disk-network-http.xml @@ -17,6 +17,7 @@ + @@ -24,6 +25,7 @@ + --=20 2.24.1 From nobody Tue Apr 30 02:39:33 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 207.211.31.120 as permitted sender) client-ip=207.211.31.120; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-1.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 207.211.31.120 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1583771060; cv=none; d=zohomail.com; s=zohoarc; b=UORE3VrH8FEqYgIRHC6ZuZZJy20q1LxmEQ7gt9fsaCnPpqar2fKEqIxvRXSnkQgjl3pig1MKzdRTzJ8KQsR1lcncHEP2wxGBitbv5gwYy93OrM6n4rf5YlYNY7jb9B1TSLAOkNVsIiU4MfM9FaoWGD4ZAvq83LZo4BJ5a0ayoaE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1583771060; h=Content-Type:Content-Transfer-Encoding:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=YxObQNXr2PX1sO/JnvHlRgy41q+NgoXBE4g2H87SSaY=; b=iQu414AWfdr9Gdunt7TwgAJHUYNXHnyNWZRkZ809danrFpoarXawzfNdGMC+QCJZqDDmpvwsL6Y/BL//UotGsWwu7A9bvzDy23BUnITUqQh4Y144OxlhUOY9labxgrWZVQ2scKJFqNIKDfim/+odCFYi3ABBcx5fZa5PYkrwEaI= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 207.211.31.120 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass header.from= (p=none dis=none) header.from= Return-Path: Received: from us-smtp-1.mimecast.com (us-smtp-delivery-1.mimecast.com [207.211.31.120]) by mx.zohomail.com with SMTPS id 1583771060212643.0756826162091; Mon, 9 Mar 2020 09:24:20 -0700 (PDT) Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-155-SzpXnIkNOnesh5Gw6ESu1g-1; Mon, 09 Mar 2020 12:24:15 -0400 Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.phx2.redhat.com [10.5.11.16]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 970A5801E6C; Mon, 9 Mar 2020 16:24:06 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 7084C5C3F8; Mon, 9 Mar 2020 16:24:06 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id 1FBE718034FB; Mon, 9 Mar 2020 16:24:06 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id 029GNeMd020912 for ; Mon, 9 Mar 2020 12:23:40 -0400 Received: by smtp.corp.redhat.com (Postfix) id 820D6909E9; Mon, 9 Mar 2020 16:23:40 +0000 (UTC) Received: from angien.redhat.com (unknown [10.43.2.48]) by smtp.corp.redhat.com (Postfix) with ESMTP id 0992290779 for ; Mon, 9 Mar 2020 16:23:39 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1583771059; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=YxObQNXr2PX1sO/JnvHlRgy41q+NgoXBE4g2H87SSaY=; b=PJ3oGCRc+q1zHgEX7Kahs446HreFCCuEHHiRXLZinADJnVIX3h4hvLmOfxPBviO4mlqX/q zbcFvRSRzrHIMUSKhvTT4VWPSrjD+wY15EK3yTIHI4whGg1lwWOWvkYW3eBPymqvCWCRUA i9l6UNbLu5EtZEh8iA5F9wEuGFv2Mkk= X-MC-Unique: SzpXnIkNOnesh5Gw6ESu1g-1 From: Peter Krempa To: libvir-list@redhat.com Subject: [PATCH 24/30] virstoragefile: Add JSON parser for 'sslverify', 'readahead', 'cookies' and 'timeout' Date: Mon, 9 Mar 2020 17:23:04 +0100 Message-Id: <09f4209798ed6de3bf0d351345a08a65ddb299f6.1583770683.git.pkrempa@redhat.com> In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 X-loop: libvir-list@redhat.com X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.16 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) Content-Type: text/plain; charset="utf-8" Add support for parsing the recently added fields from backing file pseudo-protocol strings. Signed-off-by: Peter Krempa Reviewed-by: J=C3=A1n Tomko --- src/util/virstoragefile.c | 91 ++++++++++++++++++++++++++++++++++++++- tests/qemublocktest.c | 6 +++ tests/virstoragetest.c | 15 +++++++ 3 files changed, 111 insertions(+), 1 deletion(-) diff --git a/src/util/virstoragefile.c b/src/util/virstoragefile.c index 9e740419eb..efc4c60681 100644 --- a/src/util/virstoragefile.c +++ b/src/util/virstoragefile.c @@ -3210,10 +3210,61 @@ virStorageSourceParseBackingJSONUriStr(virStorageSo= urcePtr src, } +static int +virStorageSourceParseBackingJSONUriCookies(virStorageSourcePtr src, + virJSONValuePtr json, + const char *jsonstr) +{ + const char *cookiestr; + VIR_AUTOSTRINGLIST cookies =3D NULL; + size_t ncookies =3D 0; + size_t i; + + if (!virJSONValueObjectHasKey(json, "cookie")) + return 0; + + if (!(cookiestr =3D virJSONValueObjectGetString(json, "cookie"))) { + virReportError(VIR_ERR_INVALID_ARG, + _("wrong format of 'cookie' field in backing store = definition '%s'"), + jsonstr); + return -1; + } + + if (!(cookies =3D virStringSplitCount(cookiestr, ";", 0, &ncookies))) + return -1; + + src->cookies =3D g_new0(virStorageNetCookieDefPtr, ncookies); + src->ncookies =3D ncookies; + + for (i =3D 0; i < ncookies; i++) { + char *cookiename =3D cookies[i]; + char *cookievalue; + + virSkipSpaces((const char **) &cookiename); + + if (!(cookievalue =3D strchr(cookiename, '=3D'))) { + virReportError(VIR_ERR_INVALID_ARG, + _("malformed http cookie '%s' in backing store = definition '%s'"), + cookies[i], jsonstr); + return -1; + } + + *cookievalue =3D '\0'; + cookievalue++; + + src->cookies[i] =3D g_new0(virStorageNetCookieDef, 1); + src->cookies[i]->name =3D g_strdup(cookiename); + src->cookies[i]->value =3D g_strdup(cookievalue); + } + + return 0; +} + + static int virStorageSourceParseBackingJSONUri(virStorageSourcePtr src, virJSONValuePtr json, - const char *jsonstr G_GNUC_UNUSED, + const char *jsonstr, int protocol) { const char *uri; @@ -3224,6 +3275,44 @@ virStorageSourceParseBackingJSONUri(virStorageSource= Ptr src, return -1; } + if (protocol =3D=3D VIR_STORAGE_NET_PROTOCOL_HTTPS || + protocol =3D=3D VIR_STORAGE_NET_PROTOCOL_FTPS) { + if (virJSONValueObjectHasKey(json, "sslverify")) { + bool tmp; + + if (virJSONValueObjectGetBoolean(json, "sslverify", &tmp) < 0)= { + virReportError(VIR_ERR_INVALID_ARG, + _("malformed 'sslverify' field in backing s= tore definition '%s'"), + jsonstr); + return -1; + } + + src->sslverify =3D virTristateBoolFromBool(tmp); + } + } + + if (protocol =3D=3D VIR_STORAGE_NET_PROTOCOL_HTTPS || + protocol =3D=3D VIR_STORAGE_NET_PROTOCOL_HTTP) { + if (virStorageSourceParseBackingJSONUriCookies(src, json, jsonstr)= < 0) + return -1; + } + + if (virJSONValueObjectHasKey(json, "readahead") && + virJSONValueObjectGetNumberUlong(json, "readahead", &src->readahea= d) < 0) { + virReportError(VIR_ERR_INVALID_ARG, + _("malformed 'readahead' field in backing store def= inition '%s'"), + jsonstr); + return -1; + } + + if (virJSONValueObjectHasKey(json, "timeout") && + virJSONValueObjectGetNumberUlong(json, "timeout", &src->timeout) <= 0) { + virReportError(VIR_ERR_INVALID_ARG, + _("malformed 'timeout' field in backing store defin= ition '%s'"), + jsonstr); + return -1; + } + return virStorageSourceParseBackingJSONUriStr(src, uri, protocol); } diff --git a/tests/qemublocktest.c b/tests/qemublocktest.c index 7b7948d4c6..96a3c7fc41 100644 --- a/tests/qemublocktest.c +++ b/tests/qemublocktest.c @@ -917,6 +917,12 @@ mymain(void) TEST_JSON_FORMAT_NET("\n" " \n" "\n"); + TEST_JSON_FORMAT_NET("\n" + " \n" + " \n" + " \n" + " \n" + "\n"); TEST_JSON_FORMAT_NET("\= n" " \n" "\n"); diff --git a/tests/virstoragetest.c b/tests/virstoragetest.c index 97c22d42af..b49dfd2598 100644 --- a/tests/virstoragetest.c +++ b/tests/virstoragetest.c @@ -1607,6 +1607,21 @@ mymain(void) " \n" "\n", 0); + TEST_BACKING_PARSE_FULL("json:{ \"file.cookie\": \"vmware_soap_session= =3D\\\"0c8db85112873a79b7ef74f294cb70ef7f\\\"\"," + "\"file.sslverify\": false," + "\"file.driver\": \"https\"," + "\"file.url\": \"https://host/folder/es= x6.5-rhel7.7-x86%5f64/esx6.5-rhel7.7-x86%5f64-flat.vmdk?dcPath=3Ddata&dsNam= e=3Desx6.5-matrix\"," + "\"file.timeout\": 2000" + "}", + "\n" + " \n" + " \n" + " \n" + " "= ;0c8db85112873a79b7ef74f294cb70ef7f"\n" + " \n" + " \n" + "\n", 0); + #endif /* WITH_YAJL */ cleanup: --=20 2.24.1 From nobody Tue Apr 30 02:39:33 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 205.139.110.61 as permitted sender) client-ip=205.139.110.61; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-1.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 205.139.110.61 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1583771059; cv=none; d=zohomail.com; s=zohoarc; b=YYeQ2WySBCHyKMfB24q90orC75ZONxm2GbE3gWiCFGFqUaI12OhhE6wSxBLcU7ILf+T/ttCvt9bzvj7cHA44KcEbr1Vm2mrZAi7bDh8nAWuRz4IoLnzXYa8j8dKtUrn7pF19qumvHoSjl3j0m0n3Kcsbgea3Zg2NEUMzchtTIgQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1583771059; h=Content-Type:Content-Transfer-Encoding:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=FsrZrnEjFehnNzVgpiPPEV94Lk8b1qWHgXwleDGfiVM=; b=crSSvIJ6zaQVc/jIq2HJxOM9c8Dswp0RvcwMMhN7CT9+h7SljKcp5cntko4D5HnbfewylrZPezdJuMCyX3gRpG21Ppivhh1W/hmqICz9b3QREiGKHkm0cfggNYy75hx9YEKP0sBTTIG2GVzbm+HXxx+E8IjAufUROtHUOcyEAiI= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 205.139.110.61 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass header.from= (p=none dis=none) header.from= Return-Path: Received: from us-smtp-delivery-1.mimecast.com (us-smtp-2.mimecast.com [205.139.110.61]) by mx.zohomail.com with SMTPS id 158377105947888.01429419674548; Mon, 9 Mar 2020 09:24:19 -0700 (PDT) Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-158-K82ZfKFXOJO8NWhlnMGU9Q-1; Mon, 09 Mar 2020 12:24:15 -0400 Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 20EA78018A7; Mon, 9 Mar 2020 16:24:06 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id E60E55DA7B; Mon, 9 Mar 2020 16:24:05 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id 7AE2D18034EF; Mon, 9 Mar 2020 16:24:05 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id 029GNf2T020928 for ; Mon, 9 Mar 2020 12:23:41 -0400 Received: by smtp.corp.redhat.com (Postfix) id 565A590779; Mon, 9 Mar 2020 16:23:41 +0000 (UTC) Received: from angien.redhat.com (unknown [10.43.2.48]) by smtp.corp.redhat.com (Postfix) with ESMTP id D18C691D75 for ; Mon, 9 Mar 2020 16:23:40 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1583771058; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=FsrZrnEjFehnNzVgpiPPEV94Lk8b1qWHgXwleDGfiVM=; b=Ou2JGha8dl0ho14xwZr6OhOg0t/tSXDJG+8NWHc2aZih6136nT1/L6gVQ00OBWo4gze0rq w8gwUzwTBdR0daUhRXbpMlxrwWt4PXKxNasDzqjcdWqTcfQjTF48yL6iTIHl0bvJX1D0Zh y+TTjedSCAwuQtrGiyJPHPs7ane9rtw= X-MC-Unique: K82ZfKFXOJO8NWhlnMGU9Q-1 From: Peter Krempa To: libvir-list@redhat.com Subject: [PATCH 25/30] virStorageSourceParseBackingJSONUri: Handle undocumented value 'off' for sslverify Date: Mon, 9 Mar 2020 17:23:05 +0100 Message-Id: <6d2464abaf5d1d8c9644dbd11a7b20115523793a.1583770683.git.pkrempa@redhat.com> In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 X-loop: libvir-list@redhat.com X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) Content-Type: text/plain; charset="utf-8" libguestfs abuses a quirk of qemu's parser to accept also other variants of the 'sslverify' field which would be valid on the command line but are not documented in the QMP schema. If we encounter the 'off' string instead of an boolean handle it rather than erroring out to continue support of pre-blockdev configurations. Signed-off-by: Peter Krempa Reviewed-by: J=C3=A1n Tomko --- src/util/virstoragefile.c | 21 ++++++++++++++------- tests/virstoragetest.c | 15 +++++++++++++++ 2 files changed, 29 insertions(+), 7 deletions(-) diff --git a/src/util/virstoragefile.c b/src/util/virstoragefile.c index efc4c60681..a85b95fd09 100644 --- a/src/util/virstoragefile.c +++ b/src/util/virstoragefile.c @@ -3278,16 +3278,23 @@ virStorageSourceParseBackingJSONUri(virStorageSourc= ePtr src, if (protocol =3D=3D VIR_STORAGE_NET_PROTOCOL_HTTPS || protocol =3D=3D VIR_STORAGE_NET_PROTOCOL_FTPS) { if (virJSONValueObjectHasKey(json, "sslverify")) { + const char *tmpstr; bool tmp; - if (virJSONValueObjectGetBoolean(json, "sslverify", &tmp) < 0)= { - virReportError(VIR_ERR_INVALID_ARG, - _("malformed 'sslverify' field in backing s= tore definition '%s'"), - jsonstr); - return -1; - } + /* libguestfs still uses undocumented legacy value of 'off' */ + if ((tmpstr =3D virJSONValueObjectGetString(json, "sslverify")= ) && + STREQ(tmpstr, "off")) { + src->sslverify =3D VIR_TRISTATE_BOOL_NO; + } else { + if (virJSONValueObjectGetBoolean(json, "sslverify", &tmp) = < 0) { + virReportError(VIR_ERR_INVALID_ARG, + _("malformed 'sslverify' field in backi= ng store definition '%s'"), + jsonstr); + return -1; + } - src->sslverify =3D virTristateBoolFromBool(tmp); + src->sslverify =3D virTristateBoolFromBool(tmp); + } } } diff --git a/tests/virstoragetest.c b/tests/virstoragetest.c index b49dfd2598..c59511114d 100644 --- a/tests/virstoragetest.c +++ b/tests/virstoragetest.c @@ -1622,6 +1622,21 @@ mymain(void) " \n" "\n", 0); + TEST_BACKING_PARSE_FULL("json:{ \"file.cookie\": \"vmware_soap_session= =3D\\\"0c8db85112873a79b7ef74f294cb70ef7f\\\"\"," + "\"file.sslverify\": \"off\"," + "\"file.driver\": \"https\"," + "\"file.url\": \"https://host/folder/es= x6.5-rhel7.7-x86%5f64/esx6.5-rhel7.7-x86%5f64-flat.vmdk?dcPath=3Ddata&dsNam= e=3Desx6.5-matrix\"," + "\"file.timeout\": 2000" + "}", + "\n" + " \n" + " \n" + " \n" + " "= ;0c8db85112873a79b7ef74f294cb70ef7f"\n" + " \n" + " \n" + "\n", 0); + #endif /* WITH_YAJL */ cleanup: --=20 2.24.1 From nobody Tue Apr 30 02:39:33 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 205.139.110.61 as permitted sender) client-ip=205.139.110.61; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-1.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 205.139.110.61 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1583771230; cv=none; d=zohomail.com; s=zohoarc; b=il0llgZYoQFGc52SPhYIHN5m5Ia43xaGfEUGZji+SG2x2N2GNeOfRBHsdFd29diUC1QIqf3S2ifE/Q+8jjbSwCEGX/SovYl62Z7NpmAOcYJrbVPlzpLAkmnEQN1CDqyP7HaS1mL11HewIAiqbWxa5kxjqS/sOGujRdmMV0a8NMI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1583771230; h=Content-Type:Content-Transfer-Encoding:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=P3CQhYm3uCQglgDurbgN0UH860ZCmjvcTQVjdgvIdpM=; b=Hy7b94ht0/VNJ3dFtU/aNqe23ZD/eLe2AOrKxysNkiHmy8lZwt9zQjTxSJ7WOkDiRhVpjPMgihBigQqs+E09NPctU9vb5VYsSiJc9WPxsa2kp4kSZpCm+BhSYc9hPgvoxs+V0qYsOSQmMWlB19nnm6O6oN5dSVAY35LZ64SfSl8= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 205.139.110.61 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass header.from= (p=none dis=none) header.from= Return-Path: Received: from us-smtp-delivery-1.mimecast.com (us-smtp-1.mimecast.com [205.139.110.61]) by mx.zohomail.com with SMTPS id 1583771230249597.8228016465597; Mon, 9 Mar 2020 09:27:10 -0700 (PDT) Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-154-84kIjNukON2QNkstlJmevg-1; Mon, 09 Mar 2020 12:24:18 -0400 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id AFEA919057A8; Mon, 9 Mar 2020 16:24:12 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 6AE448F35E; Mon, 9 Mar 2020 16:24:11 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id 1DD3886A2B; Mon, 9 Mar 2020 16:24:11 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id 029GNgkA020938 for ; Mon, 9 Mar 2020 12:23:42 -0400 Received: by smtp.corp.redhat.com (Postfix) id 2BA52909E9; Mon, 9 Mar 2020 16:23:42 +0000 (UTC) Received: from angien.redhat.com (unknown [10.43.2.48]) by smtp.corp.redhat.com (Postfix) with ESMTP id A5E9590779 for ; Mon, 9 Mar 2020 16:23:41 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1583771228; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=P3CQhYm3uCQglgDurbgN0UH860ZCmjvcTQVjdgvIdpM=; b=DnY+RHZ11jLNfWE0QIr+NZj53n20LUqORigXaP/gR3C6p8UWxJZfg73KkwBZ+WU6nvwCul dSNxDvanq8Btzllx0XPQzvjhoYH+o88+PvN72VNXA4oo0Yios6LPkU+JdEuWvK7vUqwp13 G3+rYbZSKWB6MEHLeZHuMWoPp6nwA9Q= X-MC-Unique: 84kIjNukON2QNkstlJmevg-1 From: Peter Krempa To: libvir-list@redhat.com Subject: [PATCH 26/30] qemublocktest: Load QMP schema earlier Date: Mon, 9 Mar 2020 17:23:06 +0100 Message-Id: <0c0f3d9e5b732acaf1ea5dc8c443034cb0eec186.1583770683.git.pkrempa@redhat.com> In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 X-loop: libvir-list@redhat.com X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) Content-Type: text/plain; charset="utf-8" Multiple tests require the schema. Extract the loading into a separate variable to avoid issues with ownership of the pointer. Signed-off-by: Peter Krempa Reviewed-by: J=C3=A1n Tomko --- tests/qemublocktest.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/tests/qemublocktest.c b/tests/qemublocktest.c index 96a3c7fc41..735ba5cdde 100644 --- a/tests/qemublocktest.c +++ b/tests/qemublocktest.c @@ -867,6 +867,7 @@ mymain(void) struct testQemuBlockBitmapBlockcopyData blockbitmapblockcopydata; char *capslatest_x86_64 =3D NULL; virQEMUCapsPtr caps_x86_64 =3D NULL; + g_autoptr(virHashTable) qmp_schema_x86_64 =3D NULL; g_autoptr(virStorageSource) bitmapSourceChain =3D NULL; if (qemuTestDriverInit(&driver) < 0) @@ -889,6 +890,11 @@ mymain(void) diskxmljsondata.qemuCaps =3D caps_x86_64; imagecreatedata.qemuCaps =3D caps_x86_64; + if (!(qmp_schema_x86_64 =3D testQEMUSchemaLoad("x86_64"))) { + ret =3D -1; + goto cleanup; + } + virTestCounterReset("qemu storage source xml->json->xml "); #define TEST_JSON_FORMAT(tpe, xmlstr) \ @@ -987,10 +993,7 @@ mymain(void) #define TEST_DISK_TO_JSON(nme) TEST_DISK_TO_JSON_FULL(nme, false) - if (!(diskxmljsondata.schema =3D testQEMUSchemaLoad("x86_64"))) { - ret =3D -1; - goto cleanup; - } + diskxmljsondata.schema =3D qmp_schema_x86_64; if (virQEMUQAPISchemaPathGet("blockdev-add/arg-type", diskxmljsondata.schema, @@ -1049,7 +1052,9 @@ mymain(void) &imagecreatedata) < 0) \ ret =3D -1; \ } while (0) - imagecreatedata.schema =3D diskxmljsondata.schema; + + imagecreatedata.schema =3D qmp_schema_x86_64; + if (virQEMUQAPISchemaPathGet("blockdev-create/arg-type/options", imagecreatedata.schema, &imagecreatedata.schemaroot) < 0 || @@ -1202,7 +1207,6 @@ mymain(void) TEST_BITMAP_BLOCKCOPY("snapshots-deep", false, "snapshots"); cleanup: - virHashFree(diskxmljsondata.schema); qemuTestDriverFree(&driver); VIR_FREE(capslatest_x86_64); virObjectUnref(caps_x86_64); --=20 2.24.1 From nobody Tue Apr 30 02:39:33 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 205.139.110.120 as permitted sender) client-ip=205.139.110.120; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-1.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 205.139.110.120 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1583771106; cv=none; d=zohomail.com; s=zohoarc; b=fORAcFLVNADO4dl8ok5o+XoovbveuSfGRgQAjZTwjAvENFGtI1CYMFPV5zxOaYZjd4yt9b6q/ABY0eLivwNzgXDQF5UGA0w5ETixQzJJxVX6Q1ocrwaIzCc7lFKL39R3ZmQjF/C1N4GeaBMB+JO7MDkRUGF8RaUc2iqS+oI8T+A= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1583771106; h=Content-Type:Content-Transfer-Encoding:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=ktastaghQuWORQ7nhCMaTKPnlqYXi2NDqTMgrpN8emo=; b=ZXMGMGgZ02t02XLkcBSTt9zPsMIqf6A4zIdPlf4fiBiTnlsW9hq2dSUYLE+eFmj2I5AbFsruhZZzNz1khU4Yle2rOJP1sfYfpE25BwjHlbupW66p5WawLfw2LEAf7nYJ3ddbhMH4EY526Mj1UZcfCmhFzklY9a6CMRL7DTE97N4= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 205.139.110.120 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass header.from= (p=none dis=none) header.from= Return-Path: Received: from us-smtp-1.mimecast.com (us-smtp-delivery-1.mimecast.com [205.139.110.120]) by mx.zohomail.com with SMTPS id 1583771106929691.6044684959458; Mon, 9 Mar 2020 09:25:06 -0700 (PDT) Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-176-feDROLQ2PPy_rlTYWzK9sw-1; Mon, 09 Mar 2020 12:24:18 -0400 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id B3CBC8010EF; Mon, 9 Mar 2020 16:24:12 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 890578D569; Mon, 9 Mar 2020 16:24:12 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id 3AC8B18034FF; Mon, 9 Mar 2020 16:24:12 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id 029GNhiZ020944 for ; Mon, 9 Mar 2020 12:23:43 -0400 Received: by smtp.corp.redhat.com (Postfix) id F2FDF90A03; Mon, 9 Mar 2020 16:23:42 +0000 (UTC) Received: from angien.redhat.com (unknown [10.43.2.48]) by smtp.corp.redhat.com (Postfix) with ESMTP id 79F5190779 for ; Mon, 9 Mar 2020 16:23:42 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1583771105; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=ktastaghQuWORQ7nhCMaTKPnlqYXi2NDqTMgrpN8emo=; b=Te9UBjQZW34WBjSFd+f1vOVyq0Zsu76xuyY3MUrpVa/yt5JzymSTp/sW1kIS7rNyZTph9J FG58bwgWmdEGxkaAPtgiLR3GLn70RgpKGkNWRxP3HcYH7eGESWrp5h7jQiYCJ/V/tzxTB+ wkM9eBhU+2HnbXi8oXYoBGNUA7PJJ/M= X-MC-Unique: feDROLQ2PPy_rlTYWzK9sw-1 From: Peter Krempa To: libvir-list@redhat.com Subject: [PATCH 27/30] qemublocktest: Extract schema root for blockdev-add validation Date: Mon, 9 Mar 2020 17:23:07 +0100 Message-Id: <0d026c23c69c145917a73f22fa197d58152de022.1583770683.git.pkrempa@redhat.com> In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 X-loop: libvir-list@redhat.com X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) Content-Type: text/plain; charset="utf-8" Move lookup of the schema root earlier so that multiple functions can use it for validation. Signed-off-by: Peter Krempa Reviewed-by: J=C3=A1n Tomko --- tests/qemublocktest.c | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/tests/qemublocktest.c b/tests/qemublocktest.c index 735ba5cdde..f803c9c6b3 100644 --- a/tests/qemublocktest.c +++ b/tests/qemublocktest.c @@ -868,6 +868,7 @@ mymain(void) char *capslatest_x86_64 =3D NULL; virQEMUCapsPtr caps_x86_64 =3D NULL; g_autoptr(virHashTable) qmp_schema_x86_64 =3D NULL; + virJSONValuePtr qmp_schemaroot_x86_64_blockdev_add =3D NULL; g_autoptr(virStorageSource) bitmapSourceChain =3D NULL; if (qemuTestDriverInit(&driver) < 0) @@ -895,6 +896,15 @@ mymain(void) goto cleanup; } + if (virQEMUQAPISchemaPathGet("blockdev-add/arg-type", + qmp_schema_x86_64, + &qmp_schemaroot_x86_64_blockdev_add) < 0 = || + !qmp_schemaroot_x86_64_blockdev_add) { + VIR_TEST_VERBOSE("failed to find schema entry for blockdev-add"); + ret =3D -1; + goto cleanup; + } + virTestCounterReset("qemu storage source xml->json->xml "); #define TEST_JSON_FORMAT(tpe, xmlstr) \ @@ -994,15 +1004,7 @@ mymain(void) #define TEST_DISK_TO_JSON(nme) TEST_DISK_TO_JSON_FULL(nme, false) diskxmljsondata.schema =3D qmp_schema_x86_64; - - if (virQEMUQAPISchemaPathGet("blockdev-add/arg-type", - diskxmljsondata.schema, - &diskxmljsondata.schemaroot) < 0 || - !diskxmljsondata.schemaroot) { - VIR_TEST_VERBOSE("failed to find schema entry for blockdev-add"); - ret =3D -1; - goto cleanup; - } + diskxmljsondata.schemaroot =3D qmp_schemaroot_x86_64_blockdev_add; TEST_DISK_TO_JSON_FULL("nodename-long-format", true); TEST_DISK_TO_JSON_FULL("nodename-long-protocol", true); --=20 2.24.1 From nobody Tue Apr 30 02:39:33 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 205.139.110.61 as permitted sender) client-ip=205.139.110.61; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-1.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 205.139.110.61 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1583771286; cv=none; d=zohomail.com; s=zohoarc; b=NQwQWnqG3kBGyYSvk9VAfKOVv6hyTiZb3LLLnsYjDJ7XtgEJtOmDG7DcJafG6uoLy6fm7SGSJUPy5NfF91M/b1lQ5x3dlIVEtY/CGUnHWfhpozZhdOkG544MjFBXPCFj0poZZtu53kKhRyi4jdsV5lEOyOgX1S3p6miWDpuoe9I= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1583771286; h=Content-Type:Content-Transfer-Encoding:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=4dut/km5jtBnjXsu/U6AA/xEZrwB+ZgRVj/STXS+r3c=; b=T/o+lTnYIqpd+zTahwWFw3UCBtFOdandlPW0RElgR9pelHrFdVdaobwhwbycEQ+WpdKlUzi0MDkUhbaEiHOBlpLZgASX0LIqjTMkAptLa2p71m/h/y3lbRl5TEwEtS5iOwW47VR64poDzuI6xlVaOhN8z8ezIIdh334lp2RzyqM= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 205.139.110.61 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass header.from= (p=none dis=none) header.from= Return-Path: Received: from us-smtp-delivery-1.mimecast.com (us-smtp-2.mimecast.com [205.139.110.61]) by mx.zohomail.com with SMTPS id 1583771286598581.915658554053; Mon, 9 Mar 2020 09:28:06 -0700 (PDT) Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-207-78K1c-C5N5ujmmr1xiIk5Q-1; Mon, 09 Mar 2020 12:24:23 -0400 Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.phx2.redhat.com [10.5.11.23]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id D39901088388; Mon, 9 Mar 2020 16:24:15 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id A74AB19C6A; Mon, 9 Mar 2020 16:24:15 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id 52DD386A2F; Mon, 9 Mar 2020 16:24:15 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id 029GNhSZ020952 for ; Mon, 9 Mar 2020 12:23:43 -0400 Received: by smtp.corp.redhat.com (Postfix) id C8B9A90A03; Mon, 9 Mar 2020 16:23:43 +0000 (UTC) Received: from angien.redhat.com (unknown [10.43.2.48]) by smtp.corp.redhat.com (Postfix) with ESMTP id 4FAE790779 for ; Mon, 9 Mar 2020 16:23:43 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1583771285; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=4dut/km5jtBnjXsu/U6AA/xEZrwB+ZgRVj/STXS+r3c=; b=dPs1+TFExTk3diQvBEUwxx/KlkyK72TqYxSAN0O0P4x9VqJSTVAv/XwpqqzJKeYMB2iI53 WpqnHgi3faM8H9HIQOn3JTFBldeGUN2VtOevd3gR+EAjeap08eysSxflnNUZOkj3W67uu1 tQs0zvX+DNN5PZnuQGUsUruZMGwuLHA= X-MC-Unique: 78K1c-C5N5ujmmr1xiIk5Q-1 From: Peter Krempa To: libvir-list@redhat.com Subject: [PATCH 28/30] qemublocktest: XMLjsonXML: Test formatting/parsing of modern JSON Date: Mon, 9 Mar 2020 17:23:08 +0100 Message-Id: <091b87df4b75124934ef1888ccb50866e96489f9.1583770683.git.pkrempa@redhat.com> In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 X-loop: libvir-list@redhat.com X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.84 on 10.5.11.23 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) Content-Type: text/plain; charset="utf-8" The test was invoking the JSON formatter with the 'legacy' flag thus formatting bunch of obsolete JSON blockdev definitions. We also should test the modern ones. Add a boolean and re-run all the tests in both cases. Additionally for any modern invocation we should also validate that the output conforms to the QAPI schema. Signed-off-by: Peter Krempa Reviewed-by: J=C3=A1n Tomko --- tests/qemublocktest.c | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/tests/qemublocktest.c b/tests/qemublocktest.c index f803c9c6b3..77484cc8e7 100644 --- a/tests/qemublocktest.c +++ b/tests/qemublocktest.c @@ -41,6 +41,9 @@ VIR_LOG_INIT("tests.storagetest"); struct testBackingXMLjsonXMLdata { int type; const char *xml; + bool legacy; + virHashTablePtr schema; + virJSONValuePtr schemaroot; }; static int @@ -57,6 +60,7 @@ testBackingXMLjsonXML(const void *args) g_autofree char *actualxml =3D NULL; g_autoptr(virStorageSource) xmlsrc =3D NULL; g_autoptr(virStorageSource) jsonsrc =3D NULL; + g_auto(virBuffer) debug =3D VIR_BUFFER_INITIALIZER; if (!(xmlsrc =3D virStorageSourceNew())) return -1; @@ -71,12 +75,27 @@ testBackingXMLjsonXML(const void *args) return -1; } - if (!(backendprops =3D qemuBlockStorageSourceGetBackendProps(xmlsrc, t= rue, false, + if (!(backendprops =3D qemuBlockStorageSourceGetBackendProps(xmlsrc, + data->legac= y, + false, false))) { fprintf(stderr, "failed to format disk source json\n"); return -1; } + if (!data->legacy) { + if (testQEMUSchemaValidate(backendprops, data->schemaroot, + data->schema, &debug) < 0) { + g_autofree char *debugmsg =3D virBufferContentAndReset(&debug); + g_autofree char *debugprops =3D virJSONValueToString(backendpr= ops, true); + + VIR_TEST_VERBOSE("json does not conform to QAPI schema"); + VIR_TEST_DEBUG("json:\n%s\ndoes not match schema. Debug output= :\n %s", + debugprops, NULLSTR(debugmsg)); + return -1; + } + } + if (virJSONValueObjectCreate(&wrapper, "a:file", &backendprops, NULL) = < 0) return -1; @@ -911,6 +930,10 @@ mymain(void) do { \ xmljsonxmldata.type =3D tpe; \ xmljsonxmldata.xml =3D xmlstr; \ + xmljsonxmldata.legacy =3D true; \ + if (virTestRun(virTestCounterNext(), testBackingXMLjsonXML, \ + &xmljsonxmldata) < 0) \ + xmljsonxmldata.legacy =3D false; \ if (virTestRun(virTestCounterNext(), testBackingXMLjsonXML, \ &xmljsonxmldata) < 0) \ ret =3D -1; \ @@ -919,6 +942,9 @@ mymain(void) #define TEST_JSON_FORMAT_NET(xmlstr) \ TEST_JSON_FORMAT(VIR_STORAGE_TYPE_NETWORK, xmlstr) + xmljsonxmldata.schema =3D qmp_schema_x86_64; + xmljsonxmldata.schemaroot =3D qmp_schemaroot_x86_64_blockdev_add; + TEST_JSON_FORMAT(VIR_STORAGE_TYPE_FILE, "\n"); /* type VIR_STORAGE_TYPE_BLOCK is not tested since it parses back to '= file' */ --=20 2.24.1 From nobody Tue Apr 30 02:39:33 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 207.211.31.120 as permitted sender) client-ip=207.211.31.120; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-1.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 207.211.31.120 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1583771066; cv=none; d=zohomail.com; s=zohoarc; b=U3WcZE/rNmvaTdteIl3l97ewXXn4usjgNyybp4nlHaUG47Z93HtEq2sF2LQcg2lMH85tnhefRk9fc6L8oW/x8rcnsQWus2JLuigSGqaD149GL3G9dxF0U6gQnw8RRyJ/DG3K7UrFPAZq+0GlZyDr/YSefsDVExpQ0aF30EWLwA8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1583771066; h=Content-Type:Content-Transfer-Encoding:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=C+HN5+3qlPFG60kFzn19rpptQ/2LuesORc2j0HfzDXc=; b=a3Ldhk4ELWLm1enJbxpXEBR3OQTDPOzTDV38tVTNAp5vmJGJ7RevKJ1c3Q7gTXJaTeeXooz9ldC62qT6SH1YPOUZLU2U+g4EvLjcXj9ILKQ6W3zVSbqAU4CorzZHPI7RE4zMEvbZP9ax7F93hrfYgjXOHhEpZZE9XZ/9gGAvbCQ= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 207.211.31.120 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass header.from= (p=none dis=none) header.from= Return-Path: Received: from us-smtp-1.mimecast.com (us-smtp-delivery-1.mimecast.com [207.211.31.120]) by mx.zohomail.com with SMTPS id 1583771066318599.4852802828169; Mon, 9 Mar 2020 09:24:26 -0700 (PDT) Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-285-muuqu9v4M2mYAln4GPcguQ-1; Mon, 09 Mar 2020 12:24:22 -0400 Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 07094801E74; Mon, 9 Mar 2020 16:24:17 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id D002B9051C; Mon, 9 Mar 2020 16:24:16 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id 7EFD986A31; Mon, 9 Mar 2020 16:24:16 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id 029GNidC020967 for ; Mon, 9 Mar 2020 12:23:44 -0400 Received: by smtp.corp.redhat.com (Postfix) id 9CE0690779; Mon, 9 Mar 2020 16:23:44 +0000 (UTC) Received: from angien.redhat.com (unknown [10.43.2.48]) by smtp.corp.redhat.com (Postfix) with ESMTP id 242DC91D84 for ; Mon, 9 Mar 2020 16:23:43 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1583771065; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=C+HN5+3qlPFG60kFzn19rpptQ/2LuesORc2j0HfzDXc=; b=WJgYJGm2sOyq1Ce9K9VIPcSnlgYBEq+FJPkLzH+TeEHQpwHZ2huyfV44UkewJJ/E5boBL7 T5hUEn9wG17rOP7Y4XBMSndytUwL6qltPzwlcP8rqsAI+QdVJdBA0wMbzUnKk66cTlC61e cMDT6flZVuZUZDYntgCHrU5pKRWSTs4= X-MC-Unique: muuqu9v4M2mYAln4GPcguQ-1 From: Peter Krempa To: libvir-list@redhat.com Subject: [PATCH 29/30] qemublocktest: Add JSON->JSON test cases for block device backends Date: Mon, 9 Mar 2020 17:23:09 +0100 Message-Id: In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 X-loop: libvir-list@redhat.com X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) Content-Type: text/plain; charset="utf-8" Add testing of the interpretation of the JSON pseudo-protocol backing store into JSON structs for blockdev. This will be used to test JSON pseudo-URIs used by libguestfs while actually also validating the output against the QMP schema. Since libguestfs uses obsolete/undocumented values the outputs will differ and a benefit is that modern output is used now. The example test case covers the fields and values used by libguestfs when using the https driver. Signed-off-by: Peter Krempa Reviewed-by: J=C3=A1n Tomko --- tests/qemublocktest.c | 65 +++++++++++++++++++ .../jsontojson/curl-libguestfs-in.json | 1 + .../jsontojson/curl-libguestfs-out.json | 9 +++ 3 files changed, 75 insertions(+) create mode 100644 tests/qemublocktestdata/jsontojson/curl-libguestfs-in.j= son create mode 100644 tests/qemublocktestdata/jsontojson/curl-libguestfs-out.= json diff --git a/tests/qemublocktest.c b/tests/qemublocktest.c index 77484cc8e7..ec32d28188 100644 --- a/tests/qemublocktest.c +++ b/tests/qemublocktest.c @@ -128,6 +128,57 @@ testBackingXMLjsonXML(const void *args) return 0; } +static const char *testJSONtoJSONPath =3D abs_srcdir "/qemublocktestdata/j= sontojson/"; + +struct testJSONtoJSONData { + const char *name; + virHashTablePtr schema; + virJSONValuePtr schemaroot; +}; + +static int +testJSONtoJSON(const void *args) +{ + const struct testJSONtoJSONData *data =3D args; + g_auto(virBuffer) debug =3D VIR_BUFFER_INITIALIZER; + g_autoptr(virJSONValue) jsonsrcout =3D NULL; + g_autoptr(virStorageSource) src =3D NULL; + g_autofree char *actual =3D NULL; + g_autofree char *in =3D NULL; + g_autofree char *infile =3D g_strdup_printf("%s%s-in.json", testJSONto= JSONPath, + data->name); + g_autofree char *outfile =3D g_strdup_printf("%s%s-out.json", testJSON= toJSONPath, + data->name); + + if (virTestLoadFile(infile, &in) < 0) + return -1; + + if (virStorageSourceNewFromBackingAbsolute(in, &src) < 0) { + fprintf(stderr, "failed to parse disk json\n"); + return -1; + } + + if (!(jsonsrcout =3D qemuBlockStorageSourceGetBackendProps(src, false,= false, true))) { + fprintf(stderr, "failed to format disk source json\n"); + return -1; + } + + if (!(actual =3D virJSONValueToString(jsonsrcout, true))) + return -1; + + if (testQEMUSchemaValidate(jsonsrcout, data->schemaroot, + data->schema, &debug) < 0) { + g_autofree char *debugmsg =3D virBufferContentAndReset(&debug); + + VIR_TEST_VERBOSE("json does not conform to QAPI schema"); + VIR_TEST_DEBUG("json:\n%s\ndoes not match schema. Debug output:\n = %s", + actual, NULLSTR(debugmsg)); + return -1; + } + + return virTestCompareToFile(actual, outfile); +} + struct testQemuDiskXMLToJSONData { virQEMUDriverPtr driver; @@ -879,6 +930,7 @@ mymain(void) virQEMUDriver driver; struct testBackingXMLjsonXMLdata xmljsonxmldata; struct testQemuDiskXMLToJSONData diskxmljsondata; + struct testJSONtoJSONData jsontojsondata; struct testQemuImageCreateData imagecreatedata; struct testQemuBackupIncrementalBitmapCalculateData backupbitmapcalcda= ta; struct testQemuCheckpointDeleteMergeData checkpointdeletedata; @@ -1072,6 +1124,19 @@ mymain(void) TEST_DISK_TO_JSON("block-raw-noopts"); TEST_DISK_TO_JSON("block-raw-reservations"); +#define TEST_JSON_TO_JSON(nme) \ + do { \ + jsontojsondata.name =3D nme; \ + if (virTestRun("JSON to JSON " nme, testJSONtoJSON, \ + &jsontojsondata) < 0) \ + ret =3D -1; \ + } while (0) + + jsontojsondata.schema =3D qmp_schema_x86_64; + jsontojsondata.schemaroot =3D qmp_schemaroot_x86_64_blockdev_add; + + TEST_JSON_TO_JSON("curl-libguestfs"); + #define TEST_IMAGE_CREATE(testname, testbacking) \ do { \ imagecreatedata.name =3D testname; \ diff --git a/tests/qemublocktestdata/jsontojson/curl-libguestfs-in.json b/t= ests/qemublocktestdata/jsontojson/curl-libguestfs-in.json new file mode 100644 index 0000000000..0b92dabc6d --- /dev/null +++ b/tests/qemublocktestdata/jsontojson/curl-libguestfs-in.json @@ -0,0 +1 @@ +json:{"file.driver":"https","file.url":"https://test.host/whatever.img","f= ile.timeout":2000,"file.readahead":65536,"file.sslverify":"off","file.cooki= e":"some_cookie=3D\"some_value_or_whatever\""} diff --git a/tests/qemublocktestdata/jsontojson/curl-libguestfs-out.json b/= tests/qemublocktestdata/jsontojson/curl-libguestfs-out.json new file mode 100644 index 0000000000..e130c7bd3c --- /dev/null +++ b/tests/qemublocktestdata/jsontojson/curl-libguestfs-out.json @@ -0,0 +1,9 @@ +{ + "driver": "https", + "url": "https://test.host:443/whatever.img", + "sslverify": false, + "timeout": 2000, + "readahead": 65536, + "auto-read-only": true, + "discard": "unmap" +} --=20 2.24.1 From nobody Tue Apr 30 02:39:33 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 207.211.31.120 as permitted sender) client-ip=207.211.31.120; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-1.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 207.211.31.120 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1583771061; cv=none; d=zohomail.com; s=zohoarc; b=YqvvnQwgp7IiF3LBZsfwS1kwDJAIyjZ8ZoMeIlluyInPgAeYIYVukbnZQaT1VonWcLc/kIzuVmSc5yyGr4glOjXjWh43ly72luvz8M7WunT/bh5aV3efGZUrfaA8MqDWo+FWG0vEmwwsND9zauZnewsGMZKkKy09G3ptPNQykrA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1583771061; h=Content-Type:Content-Transfer-Encoding:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=uEFEvItGDMUflTjohp8Fvl3cVCQQAPDC/enskYYaEy0=; b=hjovZUolRqEEiiXKc+pcApFZevntZydMszUjt65taXtOKNiiidmD3C8WaQreFGaLVn+6tAaBVrDdYTSsSdyRkkOS9mK2vtMInWb+OjNZinVzOtn45JJ3nmm2onCO5Wwe5rvYtqlXDkUyBjvq2mhe78tlyOFu777g4MEspwxwvT8= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 207.211.31.120 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass header.from= (p=none dis=none) header.from= Return-Path: Received: from us-smtp-1.mimecast.com (us-smtp-delivery-1.mimecast.com [207.211.31.120]) by mx.zohomail.com with SMTPS id 1583771061469125.16012370782198; Mon, 9 Mar 2020 09:24:21 -0700 (PDT) Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-421-uj8J7skMOQuQHowgpD2upQ-1; Mon, 09 Mar 2020 12:24:17 -0400 Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 087B7800D5A; Mon, 9 Mar 2020 16:24:10 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id D2C4C5DA83; Mon, 9 Mar 2020 16:24:09 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id 7A3A786A29; Mon, 9 Mar 2020 16:24:09 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id 029GNj0A020975 for ; Mon, 9 Mar 2020 12:23:45 -0400 Received: by smtp.corp.redhat.com (Postfix) id 71AC690A03; Mon, 9 Mar 2020 16:23:45 +0000 (UTC) Received: from angien.redhat.com (unknown [10.43.2.48]) by smtp.corp.redhat.com (Postfix) with ESMTP id ECCE390779 for ; Mon, 9 Mar 2020 16:23:44 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1583771060; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=uEFEvItGDMUflTjohp8Fvl3cVCQQAPDC/enskYYaEy0=; b=GJNLygZkuPPFt4vxGLu/cy8EEVO5hQ5s/if26U56Df0jZpezTroqC0rBKqiQdGzc5fR7dB FeQJd4rcTukRKJKAL6sgwYIXTuuQEpHlYmLPfF5kIe99t4hS4tWYwpTi3d2Tt+9BprIhis kBLJhJWOk0K4p76I8gkGzL4M1AcggI4= X-MC-Unique: uj8J7skMOQuQHowgpD2upQ-1 From: Peter Krempa To: libvir-list@redhat.com Subject: [PATCH 30/30] qemu: Pass through arguments of 'ssh' block driver used by libguestfs Date: Mon, 9 Mar 2020 17:23:10 +0100 Message-Id: In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 X-loop: libvir-list@redhat.com X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) Content-Type: text/plain; charset="utf-8" We currently don't model the 'ssh' protocol properties properly and since it seems impossible for now (agent path passed via environment variable). To allow libguestfs to work as it used in pre-blockdev era we must carry the properties over to the command line. For this instance we just store it internally and format it back. Signed-off-by: Peter Krempa Reviewed-by: J=C3=A1n Tomko --- src/qemu/qemu_block.c | 10 ++++++++++ src/util/virstoragefile.c | 13 +++++++++++++ src/util/virstoragefile.h | 5 +++++ tests/qemublocktest.c | 1 + .../jsontojson/ssh-passthrough-libguestfs-in.json | 1 + .../jsontojson/ssh-passthrough-libguestfs-out.json | 14 ++++++++++++++ 6 files changed, 44 insertions(+) create mode 100644 tests/qemublocktestdata/jsontojson/ssh-passthrough-libg= uestfs-in.json create mode 100644 tests/qemublocktestdata/jsontojson/ssh-passthrough-libg= uestfs-out.json diff --git a/src/qemu/qemu_block.c b/src/qemu/qemu_block.c index f64bd8254b..5ddf7f1f7c 100644 --- a/src/qemu/qemu_block.c +++ b/src/qemu/qemu_block.c @@ -911,6 +911,7 @@ qemuBlockStorageSourceGetSshProps(virStorageSourcePtr s= rc) g_autoptr(virJSONValue) serverprops =3D NULL; virJSONValuePtr ret =3D NULL; const char *username =3D NULL; + g_autoptr(virJSONValue) host_key_check =3D NULL; if (src->nhosts !=3D 1) { virReportError(VIR_ERR_INTERNAL_ERROR, "%s", @@ -924,11 +925,20 @@ qemuBlockStorageSourceGetSshProps(virStorageSourcePtr= src) if (src->auth) username =3D src->auth->username; + else if (src->ssh_user) + username =3D src->ssh_user; + + if (src->ssh_host_key_check_disabled && + virJSONValueObjectCreate(&host_key_check, + "s:mode", "none", + NULL) < 0) + return NULL; if (virJSONValueObjectCreate(&ret, "s:path", src->path, "a:server", &serverprops, "S:user", username, + "A:host-key-check", &host_key_check, NULL) < 0) return NULL; diff --git a/src/util/virstoragefile.c b/src/util/virstoragefile.c index a85b95fd09..e4235316d8 100644 --- a/src/util/virstoragefile.c +++ b/src/util/virstoragefile.c @@ -2464,6 +2464,10 @@ virStorageSourceCopy(const virStorageSource *src, return NULL; } + /* ssh config passthrough for libguestfs */ + def->ssh_host_key_check_disabled =3D src->ssh_host_key_check_disabled; + def->ssh_user =3D g_strdup(src->ssh_user); + return g_steal_pointer(&def); } @@ -2705,6 +2709,8 @@ virStorageSourceClear(virStorageSourcePtr def) VIR_FREE(def->tlsAlias); VIR_FREE(def->tlsCertdir); + VIR_FREE(def->ssh_user); + virStorageSourceInitiatorClear(&def->initiator); /* clear everything except the class header as the object APIs @@ -3635,6 +3641,8 @@ virStorageSourceParseBackingJSONSSH(virStorageSourceP= tr src, const char *path =3D virJSONValueObjectGetString(json, "path"); const char *host =3D virJSONValueObjectGetString(json, "host"); const char *port =3D virJSONValueObjectGetString(json, "port"); + const char *user =3D virJSONValueObjectGetString(json, "user"); + const char *host_key_check =3D virJSONValueObjectGetString(json, "host= _key_check"); virJSONValuePtr server =3D virJSONValueObjectGetObject(json, "server"); if (!(host || server) || !path) { @@ -3665,6 +3673,11 @@ virStorageSourceParseBackingJSONSSH(virStorageSource= Ptr src, return -1; } + /* these two are parsed just to be passed back as we don't model them = yet */ + src->ssh_user =3D g_strdup(user); + if (STREQ_NULLABLE(host_key_check, "no")) + src->ssh_host_key_check_disabled =3D true; + return 0; } diff --git a/src/util/virstoragefile.h b/src/util/virstoragefile.h index dd2186c4ff..f2a73feb6a 100644 --- a/src/util/virstoragefile.h +++ b/src/util/virstoragefile.h @@ -384,6 +384,11 @@ struct _virStorageSource { as a source for floppy drive */ bool hostcdrom; /* backing device is a cdrom */ + + /* passthrough variables for the ssh driver which we don't handle prop= erly */ + /* these must not be used apart from formatting the output JSON in the= qemu driver */ + char *ssh_user; + bool ssh_host_key_check_disabled; }; G_DEFINE_AUTOPTR_CLEANUP_FUNC(virStorageSource, virObjectUnref); diff --git a/tests/qemublocktest.c b/tests/qemublocktest.c index ec32d28188..7a2204787e 100644 --- a/tests/qemublocktest.c +++ b/tests/qemublocktest.c @@ -1136,6 +1136,7 @@ mymain(void) jsontojsondata.schemaroot =3D qmp_schemaroot_x86_64_blockdev_add; TEST_JSON_TO_JSON("curl-libguestfs"); + TEST_JSON_TO_JSON("ssh-passthrough-libguestfs"); #define TEST_IMAGE_CREATE(testname, testbacking) \ do { \ diff --git a/tests/qemublocktestdata/jsontojson/ssh-passthrough-libguestfs-= in.json b/tests/qemublocktestdata/jsontojson/ssh-passthrough-libguestfs-in.= json new file mode 100644 index 0000000000..da8fedef07 --- /dev/null +++ b/tests/qemublocktestdata/jsontojson/ssh-passthrough-libguestfs-in.json @@ -0,0 +1 @@ +json:{"file.driver":"ssh","file.user":"testuser","file.host":"random.host"= ,"file.port":1234,"file.path":"somewhere/something","file.host_key_check":"= no"} diff --git a/tests/qemublocktestdata/jsontojson/ssh-passthrough-libguestfs-= out.json b/tests/qemublocktestdata/jsontojson/ssh-passthrough-libguestfs-ou= t.json new file mode 100644 index 0000000000..1f6032deb4 --- /dev/null +++ b/tests/qemublocktestdata/jsontojson/ssh-passthrough-libguestfs-out.json @@ -0,0 +1,14 @@ +{ + "driver": "ssh", + "path": "somewhere/something", + "server": { + "host": "random.host", + "port": "22" + }, + "user": "testuser", + "host-key-check": { + "mode": "none" + }, + "auto-read-only": true, + "discard": "unmap" +} --=20 2.24.1