From nobody Sat Apr 27 04:32:03 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 63.128.21.124 as permitted sender) client-ip=63.128.21.124; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-124.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 63.128.21.124 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=1602775539; cv=none; d=zohomail.com; s=zohoarc; b=OB4Z5rvonM08MAGxZvAufsI9N6HmBa2kQ+cEmyxdjvS4WoCl3oDAMUvJdbxOiC5cTz8yvJ/WcTh7H/O8rhWnoWUChAzsojn1Bt/4gZBgAQEvvEM1cS7GzmQungIeihVeYjiVcPMKaf6s1yTCsGdMDDLG/frqgj355h42qOjCEiE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1602775539; h=Content-Type:Content-Transfer-Encoding:Cc: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=KqxchGNYDhrmS6zD88QJiSHpTWXbvXWxUiUCdcHfPR8=; b=JVqNUZAm6rQDezPZtKylEKSm7zXJRXHwXMCPiLUUysojbeqil8OOM6RwJ5/h/PyblPzw3zuJdH9Ao8BD2A5JGmlKoCbBKBATgD81pgulb8p/rwg3d1FMBu1/JZ2RzAthkpV/0Iy+6sEUpZ/Ppk9abDFpZn3dPeDWUJ9AKcgRf/Q= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 63.128.21.124 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-124.mimecast.com (us-smtp-delivery-124.mimecast.com [63.128.21.124]) by mx.zohomail.com with SMTPS id 1602775539783808.232457908656; Thu, 15 Oct 2020 08:25:39 -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-438-leO4YLg8PAWPWlElwU2gGQ-1; Thu, 15 Oct 2020 11:25:32 -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 B92C91019625; Thu, 15 Oct 2020 15:25:26 +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 4527876642; Thu, 15 Oct 2020 15:25:26 +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 0D154181A870; Thu, 15 Oct 2020 15:25:24 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id 09FFPLsW015611 for ; Thu, 15 Oct 2020 11:25:21 -0400 Received: by smtp.corp.redhat.com (Postfix) id 6E8F875132; Thu, 15 Oct 2020 15:25:21 +0000 (UTC) Received: from speedmetal.redhat.com (unknown [10.40.208.55]) by smtp.corp.redhat.com (Postfix) with ESMTP id 8DA0D75131; Thu, 15 Oct 2020 15:25:20 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1602775538; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc: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=KqxchGNYDhrmS6zD88QJiSHpTWXbvXWxUiUCdcHfPR8=; b=fJnCAyJBKXIMhlSv01mPTYdxCIe/7skBrxzXl/B1EYQhdEj2k1Eaqagq5n/dyV+GKjpI+z ViBuKtgRrykbAtVzgVWncFdieFftPeQYJ8DEU8hFStB0J9Fegmgpv1FtzehViuVCp3wHXe Di1It2aldx4yRpirRtGhm34rZBcUc+s= X-MC-Unique: leO4YLg8PAWPWlElwU2gGQ-1 From: Peter Krempa To: libvir-list@redhat.com Subject: [PATCH 1/6] qemuProcessCreatePretendCmd: Split up preparation and command building Date: Thu, 15 Oct 2020 17:25:09 +0200 Message-Id: <5f2d6e9b22e85a75948784990385759f7fcb0996.1602775390.git.pkrempa@redhat.com> In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.15 X-loop: libvir-list@redhat.com Cc: daggs 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 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=libvir-list-bounces@redhat.com 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" Host preparation steps which are deliberately skipped when pretend-creating a commandline are normally executed after VM object preparation. In the test code we are faking some of the host preparation steps, but we were doing that prior to the call to qemuProcessPrepareDomain embedded in qemuProcessCreatePretendCmd. By splitting up qemuProcessCreatePretendCmd into two functions we can ensure that the ordering of the prepare steps stays consistent. Signed-off-by: Peter Krempa Reviewed-by: Michal Privoznik --- src/qemu/qemu_driver.c | 9 ++++++--- src/qemu/qemu_process.c | 42 +++++++++++++++++++++++++--------------- src/qemu/qemu_process.h | 19 +++++++++++------- tests/qemuxml2argvtest.c | 11 +++++++---- 4 files changed, 51 insertions(+), 30 deletions(-) diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index 825bdd9119..f07a27d525 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -6451,9 +6451,12 @@ static char *qemuConnectDomainXMLToNative(virConnect= Ptr conn, vm->def->nets[i] =3D newNet; } - if (!(cmd =3D qemuProcessCreatePretendCmd(driver, vm, NULL, - qemuCheckFips(), true, false, - VIR_QEMU_PROCESS_START_COLD))) + if (qemuProcessCreatePretendCmdPrepare(driver, vm, NULL, true, + VIR_QEMU_PROCESS_START_COLD) < = 0) + goto cleanup; + + if (!(cmd =3D qemuProcessCreatePretendCmdBuild(driver, vm, NULL, + qemuCheckFips(), true, fa= lse))) goto cleanup; ret =3D virCommandToString(cmd, false); diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c index 5bc76a75e3..85943594fa 100644 --- a/src/qemu/qemu_process.c +++ b/src/qemu/qemu_process.c @@ -7267,35 +7267,45 @@ qemuProcessStart(virConnectPtr conn, } -virCommandPtr -qemuProcessCreatePretendCmd(virQEMUDriverPtr driver, - virDomainObjPtr vm, - const char *migrateURI, - bool enableFips, - bool standalone, - bool jsonPropsValidation, - unsigned int flags) +int +qemuProcessCreatePretendCmdPrepare(virQEMUDriverPtr driver, + virDomainObjPtr vm, + const char *migrateURI, + bool standalone, + unsigned int flags) { - unsigned int buildflags =3D 0; - virCheckFlags(VIR_QEMU_PROCESS_START_COLD | VIR_QEMU_PROCESS_START_PAUSED | - VIR_QEMU_PROCESS_START_AUTODESTROY, NULL); + VIR_QEMU_PROCESS_START_AUTODESTROY, -1); flags |=3D VIR_QEMU_PROCESS_START_PRETEND; flags |=3D VIR_QEMU_PROCESS_START_NEW; if (standalone) flags |=3D VIR_QEMU_PROCESS_START_STANDALONE; - if (jsonPropsValidation) - buildflags =3D QEMU_BUILD_COMMANDLINE_VALIDATE_KEEP_JSON; - if (qemuProcessInit(driver, vm, NULL, QEMU_ASYNC_JOB_NONE, !!migrateURI, flags) < 0) - return NULL; + return -1; if (qemuProcessPrepareDomain(driver, vm, flags) < 0) - return NULL; + return -1; + + return 0; +} + + +virCommandPtr +qemuProcessCreatePretendCmdBuild(virQEMUDriverPtr driver, + virDomainObjPtr vm, + const char *migrateURI, + bool enableFips, + bool standalone, + bool jsonPropsValidation) +{ + unsigned int buildflags =3D 0; + + if (jsonPropsValidation) + buildflags =3D QEMU_BUILD_COMMANDLINE_VALIDATE_KEEP_JSON; VIR_DEBUG("Building emulator command line"); return qemuBuildCommandLine(driver, diff --git a/src/qemu/qemu_process.h b/src/qemu/qemu_process.h index dbd989c321..830b2b23d6 100644 --- a/src/qemu/qemu_process.h +++ b/src/qemu/qemu_process.h @@ -96,13 +96,18 @@ int qemuProcessStart(virConnectPtr conn, virNetDevVPortProfileOp vmop, unsigned int flags); -virCommandPtr qemuProcessCreatePretendCmd(virQEMUDriverPtr driver, - virDomainObjPtr vm, - const char *migrateURI, - bool enableFips, - bool standalone, - bool jsonPropsValidation, - unsigned int flags); +int qemuProcessCreatePretendCmdPrepare(virQEMUDriverPtr driver, + virDomainObjPtr vm, + const char *migrateURI, + bool standalone, + unsigned int flags); + +virCommandPtr qemuProcessCreatePretendCmdBuild(virQEMUDriverPtr driver, + virDomainObjPtr vm, + const char *migrateURI, + bool enableFips, + bool standalone, + bool jsonPropsValidation); int qemuProcessInit(virQEMUDriverPtr driver, virDomainObjPtr vm, diff --git a/tests/qemuxml2argvtest.c b/tests/qemuxml2argvtest.c index 8aa791d9f7..7270f2c3cc 100644 --- a/tests/qemuxml2argvtest.c +++ b/tests/qemuxml2argvtest.c @@ -401,6 +401,10 @@ testCompareXMLToArgvCreateArgs(virQEMUDriverPtr drv, { size_t i; + if (qemuProcessCreatePretendCmdPrepare(drv, vm, migrateURI, false, + VIR_QEMU_PROCESS_START_COLD) < = 0) + return NULL; + for (i =3D 0; i < vm->def->nhostdevs; i++) { virDomainHostdevDefPtr hostdev =3D vm->def->hostdevs[i]; @@ -466,10 +470,9 @@ testCompareXMLToArgvCreateArgs(virQEMUDriverPtr drv, } } - return qemuProcessCreatePretendCmd(drv, vm, migrateURI, - (flags & FLAG_FIPS), false, - jsonPropsValidation, - VIR_QEMU_PROCESS_START_COLD); + return qemuProcessCreatePretendCmdBuild(drv, vm, migrateURI, + (flags & FLAG_FIPS), false, + jsonPropsValidation); } --=20 2.26.2 From nobody Sat Apr 27 04:32:03 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 216.205.24.124 as permitted sender) client-ip=216.205.24.124; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-124.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 216.205.24.124 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=1602775554; cv=none; d=zohomail.com; s=zohoarc; b=KxNo7RPJAYYDjIrX5rxIqr184hXbJqvfLsn5bErpYRrk9e6Ng6xtPlkQj2Ip5t1+HXX/vxtKJIjLelYh9H2u8pFNTQMEAqc2OsqdOTovATBoC+CnW7kboKS1gH0fmfTbnVzFORjIFZus7HFF2P7QrQzlt6wKp5OOVTX3i5Ac3fs= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1602775554; h=Content-Type:Content-Transfer-Encoding:Cc: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=oy8WYsuJCAWyzJHLZ2p9lzbH0fhEG9cox+UQOS7NtHI=; b=GBOSLVawgB9hDyd8qnzsyCvL41C4H6iSBvKNxXnAvppnzTjAimAVLRzYBZYxjzGm2Nt/dp71mBswNwo0SEnfHBM+yLB95k+fSQcjZ1b435q+8bOUP0t8vDC0ajMsTwlKNmL41XCT4wdmMBjbJnYDteR1R5raR6WFsH7/NcyJBR0= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 216.205.24.124 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-124.mimecast.com (us-smtp-delivery-124.mimecast.com [216.205.24.124]) by mx.zohomail.com with SMTPS id 1602775554175531.0520345874385; Thu, 15 Oct 2020 08:25: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-427-GFEkHTjJPGCp-dg_wXWPSQ-1; Thu, 15 Oct 2020 11:25:50 -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 AAB8E18C89C9; Thu, 15 Oct 2020 15:25:44 +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 789C176663; Thu, 15 Oct 2020 15:25: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 3EB8358112; Thu, 15 Oct 2020 15:25:44 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id 09FFPM8r015622 for ; Thu, 15 Oct 2020 11:25:22 -0400 Received: by smtp.corp.redhat.com (Postfix) id D330175131; Thu, 15 Oct 2020 15:25:22 +0000 (UTC) Received: from speedmetal.redhat.com (unknown [10.40.208.55]) by smtp.corp.redhat.com (Postfix) with ESMTP id ED97975135; Thu, 15 Oct 2020 15:25:21 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1602775553; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc: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=oy8WYsuJCAWyzJHLZ2p9lzbH0fhEG9cox+UQOS7NtHI=; b=KAWeLXEJcVxkQzhGnmM0rfVbf1ADtoqccUH2hx1p5vMCBj+D6XRjigskkv672JrmbKaFEE okDy1C//dAz9aVNnc0GvSrMfM5PeMt5ugsm573e94kxC4Lvc5ivmw0tND5fNBQ8cga1ga6 ycAKV9N4Ayyhp+DakhgVgNDI7Y7dX28= X-MC-Unique: GFEkHTjJPGCp-dg_wXWPSQ-1 From: Peter Krempa To: libvir-list@redhat.com Subject: [PATCH 2/6] qemu: hostdev: Prepare definition bits in qemuDomainPrepareHostdev Date: Thu, 15 Oct 2020 17:25:10 +0200 Message-Id: In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.15 X-loop: libvir-list@redhat.com Cc: daggs 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 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=libvir-list-bounces@redhat.com 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" qemuBuildHostdevSCSIAttachPrepare is supposed to prepare the data structure used for attaching the hostdev not preparing the hostdev definition itself. Move the corresponding bits to qemuDomainPrepareHostdev Signed-off-by: Peter Krempa Reviewed-by: Michal Privoznik --- src/qemu/qemu_command.c | 2 -- src/qemu/qemu_domain.c | 5 +++++ 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index 697a2db62b..5e7454a6e8 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -5134,7 +5134,6 @@ qemuBuildHostdevSCSIAttachPrepare(virDomainHostdevDef= Ptr hostdev, src =3D scsisrc->u.host.src; - src->type =3D VIR_STORAGE_TYPE_BLOCK; src->path =3D g_strdup_printf("/dev/%s", devstr); break; @@ -5149,7 +5148,6 @@ qemuBuildHostdevSCSIAttachPrepare(virDomainHostdevDef= Ptr hostdev, return NULL; } - src->readonly =3D hostdev->readonly; ret->storageNodeName =3D src->nodestorage; *backendAlias =3D src->nodestorage; diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index 5e603284be..ddfdac657a 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -10408,6 +10408,9 @@ qemuDomainPrepareHostdev(virDomainHostdevDefPtr hos= tdev, virObjectUnref(scsisrc->u.host.src); scsisrc->u.host.src =3D virStorageSourceNew(); src =3D scsisrc->u.host.src; + + src->type =3D VIR_STORAGE_TYPE_BLOCK; + break; case VIR_DOMAIN_HOSTDEV_SCSI_PROTOCOL_TYPE_ISCSI: @@ -10423,6 +10426,8 @@ qemuDomainPrepareHostdev(virDomainHostdevDefPtr hos= tdev, if (src) { const char *backendalias =3D hostdev->info->alias; + src->readonly =3D hostdev->readonly; + if (virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_BLOCKDEV_HOSTDEV_= SCSI)) { src->id =3D qemuDomainStorageIdNew(priv); src->nodestorage =3D g_strdup_printf("libvirt-%d-backend",= src->id); --=20 2.26.2 From nobody Sat Apr 27 04:32:03 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 63.128.21.124 as permitted sender) client-ip=63.128.21.124; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-124.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 63.128.21.124 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=1602775558; cv=none; d=zohomail.com; s=zohoarc; b=JwtpEzRybFt/X1uYtQrWvfGIZUt2xAegvFySzrjOeEN5fvOkTYlHmtugIeM38Or66aBudVsYZwx7uglYUY1obkKbaMvLm+Cp30kejwlTNrUcCeIm9qF+6nooCdITlVwxUwSus2i56pEZ0gG1sZjV/QZfs7aOkuvKVQn8j3KbPI4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1602775558; h=Content-Type:Content-Transfer-Encoding:Cc: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=B0TvCe91queQd2LOkfsySMZ/u9tOWKmEydCj2SRsnus=; b=no9A7dSsnCq9zA0vAvu9MWWVW/I/ASvBt2gDU1ms0QbdMYDna8iRFlVQsuX3K/RI8x4moEWqgtUMseZ5WfxQrlIhAZNMOKqVB7STvN4OFTeV08JYYBABQ+mA3mLLOYvx0K5Ti544RVlrGtUPT+982I5+/AIqWMHPt7JtQ26POO0= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 63.128.21.124 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-124.mimecast.com (us-smtp-delivery-124.mimecast.com [63.128.21.124]) by mx.zohomail.com with SMTPS id 160277555889736.03975729665342; Thu, 15 Oct 2020 08:25:58 -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-170-Z8eYgDsTOkiqsPli261arQ-1; Thu, 15 Oct 2020 11:25:54 -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 9E6351020910; Thu, 15 Oct 2020 15:25:47 +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 77EFA1002391; Thu, 15 Oct 2020 15:25:47 +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 41A44181A870; Thu, 15 Oct 2020 15:25:47 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id 09FFPOhT015628 for ; Thu, 15 Oct 2020 11:25:24 -0400 Received: by smtp.corp.redhat.com (Postfix) id 2562975132; Thu, 15 Oct 2020 15:25:24 +0000 (UTC) Received: from speedmetal.redhat.com (unknown [10.40.208.55]) by smtp.corp.redhat.com (Postfix) with ESMTP id 40FD675131; Thu, 15 Oct 2020 15:25:23 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1602775557; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc: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=B0TvCe91queQd2LOkfsySMZ/u9tOWKmEydCj2SRsnus=; b=f0GXGEh7owsMmwX45O6pgj7l04xnx8imLZDst38m+h337NyGk3Cf4z8A43gZi+RJa0uc3J MYrib+rKKz/bOOawYhWmktN/e7XTq0JirRbzIA/E5NcazoG5czKDt57/5A7H7aBSRSkmmM neY3FT10gIJvexNK6qTdPdrRqIihids= X-MC-Unique: Z8eYgDsTOkiqsPli261arQ-1 From: Peter Krempa To: libvir-list@redhat.com Subject: [PATCH 3/6] qemu: Prepare hostdev data which depends on the host state separately Date: Thu, 15 Oct 2020 17:25:11 +0200 Message-Id: <29f55b078633a209b9f4ac1e6c8a538d03e251b8.1602775390.git.pkrempa@redhat.com> In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.15 X-loop: libvir-list@redhat.com Cc: daggs 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 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=libvir-list-bounces@redhat.com 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" SCSI hostdev setup requires querying the host os for the actual path of the configured hostdev. This was historically done in the command line formatter. Our new approach is to split out this part into 'qemuProcessPrepareHost' which is designed to be skipped in tests. Refactor the hostdev code to use this new semantics, and add appropriate handlers filling in the data for tests and the qemuConnectDomainXMLToNative users. Signed-off-by: Peter Krempa Reviewed-by: Michal Privoznik --- src/qemu/qemu_command.c | 31 +--------------------- src/qemu/qemu_driver.c | 56 +++++++++++++++++++++++++++++++++++++++ src/qemu/qemu_hotplug.c | 3 +++ src/qemu/qemu_process.c | 57 ++++++++++++++++++++++++++++++++++++++++ src/qemu/qemu_process.h | 2 ++ tests/qemuxml2argvtest.c | 18 +++++++++++++ 6 files changed, 137 insertions(+), 30 deletions(-) diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index 5e7454a6e8..87ebdf4170 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -4537,19 +4537,6 @@ qemuBuildHubCommandLine(virCommandPtr cmd, } -static char * -qemuBuildSCSIHostHostdevDrvStr(virDomainHostdevDefPtr dev) -{ - virDomainHostdevSubsysSCSIPtr scsisrc =3D &dev->source.subsys.u.scsi; - virDomainHostdevSubsysSCSIHostPtr scsihostsrc =3D &scsisrc->u.host; - - return virSCSIDeviceGetSgName(NULL, - scsihostsrc->adapter, - scsihostsrc->bus, - scsihostsrc->target, - scsihostsrc->unit); -} - static char * qemuBuildSCSIiSCSIHostdevDrvStr(virDomainHostdevDefPtr dev, virQEMUCapsPtr qemuCaps) @@ -4626,9 +4613,7 @@ qemuBuildSCSIHostdevDrvStr(virDomainHostdevDefPtr dev, return NULL; virBufferAdd(&buf, source, -1); } else { - if (!(source =3D qemuBuildSCSIHostHostdevDrvStr(dev))) - return NULL; - virBufferAsprintf(&buf, "file=3D/dev/%s,if=3Dnone,format=3Draw", s= ource); + virBufferAsprintf(&buf, "file=3D%s,if=3Dnone,format=3Draw", scsisr= c->u.host.src->path); } if (!(drivealias =3D qemuAliasFromHostdev(dev))) @@ -5119,23 +5104,9 @@ qemuBuildHostdevSCSIAttachPrepare(virDomainHostdevDe= fPtr hostdev, virStorageSourcePtr src =3D NULL; if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_BLOCKDEV_HOSTDEV_SCSI)) { - g_autofree char *devstr =3D NULL; - switch ((virDomainHostdevSCSIProtocolType) scsisrc->protocol) { case VIR_DOMAIN_HOSTDEV_SCSI_PROTOCOL_TYPE_NONE: - if (!scsisrc->u.host.src) { - virReportError(VIR_ERR_INTERNAL_ERROR, "%s", - _("SCSI host device data structure was not = initialized")); - return NULL; - } - - if (!(devstr =3D qemuBuildSCSIHostHostdevDrvStr(hostdev))) - return NULL; - src =3D scsisrc->u.host.src; - - src->path =3D g_strdup_printf("/dev/%s", devstr); - break; case VIR_DOMAIN_HOSTDEV_SCSI_PROTOCOL_TYPE_ISCSI: diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index f07a27d525..bb4a46be98 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -6398,6 +6398,59 @@ static char } +static int +qemuConnectDomainXMLToNativePrepareHostHostdev(virDomainHostdevDefPtr host= dev) +{ + if (virHostdevIsSCSIDevice(hostdev)) { + virDomainHostdevSubsysSCSIPtr scsisrc =3D &hostdev->source.subsys.= u.scsi; + + switch ((virDomainHostdevSCSIProtocolType) scsisrc->protocol) { + case VIR_DOMAIN_HOSTDEV_SCSI_PROTOCOL_TYPE_NONE: { + virDomainHostdevSubsysSCSIHostPtr scsihostsrc =3D &scsisrc->u.= host; + virStorageSourcePtr src =3D scsisrc->u.host.src; + g_autofree char *devstr =3D NULL; + + if (!(devstr =3D virSCSIDeviceGetSgName(NULL, + scsihostsrc->adapter, + scsihostsrc->bus, + scsihostsrc->target, + scsihostsrc->unit))) + return -1; + + src->path =3D g_strdup_printf("/dev/%s", devstr); + break; + } + + case VIR_DOMAIN_HOSTDEV_SCSI_PROTOCOL_TYPE_ISCSI: + break; + + case VIR_DOMAIN_HOSTDEV_SCSI_PROTOCOL_TYPE_LAST: + default: + virReportEnumRangeError(virDomainHostdevSCSIProtocolType, scsi= src->protocol); + return -1; + } + } + + return 0; +} + + +static int +qemuConnectDomainXMLToNativePrepareHost(virDomainObjPtr vm) +{ + size_t i; + + for (i =3D 0; i < vm->def->nhostdevs; i++) { + virDomainHostdevDefPtr hostdev =3D vm->def->hostdevs[i]; + + if (qemuConnectDomainXMLToNativePrepareHostHostdev(hostdev) < 0) + return -1; + } + + return 0; +} + + static char *qemuConnectDomainXMLToNative(virConnectPtr conn, const char *format, const char *xmlData, @@ -6455,6 +6508,9 @@ static char *qemuConnectDomainXMLToNative(virConnectP= tr conn, VIR_QEMU_PROCESS_START_COLD) < = 0) goto cleanup; + if (qemuConnectDomainXMLToNativePrepareHost(vm) < 0) + goto cleanup; + if (!(cmd =3D qemuProcessCreatePretendCmdBuild(driver, vm, NULL, qemuCheckFips(), true, fa= lse))) goto cleanup; diff --git a/src/qemu/qemu_hotplug.c b/src/qemu/qemu_hotplug.c index 79fc8baa5c..b6d5c856a1 100644 --- a/src/qemu/qemu_hotplug.c +++ b/src/qemu/qemu_hotplug.c @@ -2608,6 +2608,9 @@ qemuDomainAttachHostSCSIDevice(virQEMUDriverPtr drive= r, if (qemuDomainPrepareHostdev(hostdev, priv) < 0) goto cleanup; + if (qemuProcessPrepareHostHostdev(hostdev) < 0) + goto cleanup; + if (!(data =3D qemuBuildHostdevSCSIAttachPrepare(hostdev, &backendalia= s, priv->qemuCaps))) goto cleanup; diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c index 85943594fa..70b8d39db9 100644 --- a/src/qemu/qemu_process.c +++ b/src/qemu/qemu_process.c @@ -6213,6 +6213,59 @@ qemuProcessPrepareDomainHostdevs(virDomainObjPtr vm, } +int +qemuProcessPrepareHostHostdev(virDomainHostdevDefPtr hostdev) +{ + if (virHostdevIsSCSIDevice(hostdev)) { + virDomainHostdevSubsysSCSIPtr scsisrc =3D &hostdev->source.subsys.= u.scsi; + + switch ((virDomainHostdevSCSIProtocolType) scsisrc->protocol) { + case VIR_DOMAIN_HOSTDEV_SCSI_PROTOCOL_TYPE_NONE: { + virDomainHostdevSubsysSCSIHostPtr scsihostsrc =3D &scsisrc->u.= host; + virStorageSourcePtr src =3D scsisrc->u.host.src; + g_autofree char *devstr =3D NULL; + + if (!(devstr =3D virSCSIDeviceGetSgName(NULL, + scsihostsrc->adapter, + scsihostsrc->bus, + scsihostsrc->target, + scsihostsrc->unit))) + return -1; + + src->path =3D g_strdup_printf("/dev/%s", devstr); + break; + } + + case VIR_DOMAIN_HOSTDEV_SCSI_PROTOCOL_TYPE_ISCSI: + break; + + case VIR_DOMAIN_HOSTDEV_SCSI_PROTOCOL_TYPE_LAST: + default: + virReportEnumRangeError(virDomainHostdevSCSIProtocolType, scsi= src->protocol); + return -1; + } + } + + return 0; +} + + +static int +qemuProcessPrepareHostHostdevs(virDomainObjPtr vm) +{ + size_t i; + + for (i =3D 0; i < vm->def->nhostdevs; i++) { + virDomainHostdevDefPtr hostdev =3D vm->def->hostdevs[i]; + + if (qemuProcessPrepareHostHostdev(hostdev) < 0) + return -1; + } + + return 0; +} + + static void qemuProcessPrepareAllowReboot(virDomainObjPtr vm) { @@ -6595,6 +6648,10 @@ qemuProcessPrepareHost(virQEMUDriverPtr driver, if (qemuProcessPrepareHostStorage(driver, vm, flags) < 0) return -1; + VIR_DEBUG("Preparing hostdevs (host-side)"); + if (qemuProcessPrepareHostHostdevs(vm) < 0) + return -1; + VIR_DEBUG("Preparing external devices"); if (qemuExtDevicesPrepareHost(driver, vm) < 0) return -1; diff --git a/src/qemu/qemu_process.h b/src/qemu/qemu_process.h index 830b2b23d6..f4feeaa68f 100644 --- a/src/qemu/qemu_process.h +++ b/src/qemu/qemu_process.h @@ -122,6 +122,8 @@ int qemuProcessPrepareDomain(virQEMUDriverPtr driver, int qemuProcessOpenVhostVsock(virDomainVsockDefPtr vsock); +int qemuProcessPrepareHostHostdev(virDomainHostdevDefPtr hostdev); + int qemuProcessPrepareHost(virQEMUDriverPtr driver, virDomainObjPtr vm, unsigned int flags); diff --git a/tests/qemuxml2argvtest.c b/tests/qemuxml2argvtest.c index 7270f2c3cc..3c1bec804a 100644 --- a/tests/qemuxml2argvtest.c +++ b/tests/qemuxml2argvtest.c @@ -413,6 +413,24 @@ testCompareXMLToArgvCreateArgs(virQEMUDriverPtr drv, hostdev->source.subsys.u.pci.backend =3D=3D VIR_DOMAIN_HOSTDEV= _PCI_BACKEND_DEFAULT) { hostdev->source.subsys.u.pci.backend =3D VIR_DOMAIN_HOSTDEV_PC= I_BACKEND_VFIO; } + + if (virHostdevIsSCSIDevice(hostdev)) { + virDomainHostdevSubsysSCSIPtr scsisrc =3D &hostdev->source.sub= sys.u.scsi; + + switch ((virDomainHostdevSCSIProtocolType) scsisrc->protocol) { + case VIR_DOMAIN_HOSTDEV_SCSI_PROTOCOL_TYPE_NONE: + scsisrc->u.host.src->path =3D g_strdup("/dev/sg0"); + break; + + case VIR_DOMAIN_HOSTDEV_SCSI_PROTOCOL_TYPE_ISCSI: + break; + + case VIR_DOMAIN_HOSTDEV_SCSI_PROTOCOL_TYPE_LAST: + default: + virReportEnumRangeError(virDomainHostdevSCSIProtocolType, = scsisrc->protocol); + return NULL; + } + } } for (i =3D 0; i < vm->def->nfss; i++) { --=20 2.26.2 From nobody Sat Apr 27 04:32:03 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 63.128.21.124 as permitted sender) client-ip=63.128.21.124; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-124.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 63.128.21.124 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=1602775558; cv=none; d=zohomail.com; s=zohoarc; b=MFqxJKfJnii2k6CPuIaUvTGhEdIYgyPLZwmtf56a2pr74o/89X0lw1Tr9UkXuK1n+FJkacw8QwdD0WawEHwPBi622yWqRGlEdGyD4KFBNW6NYW5aNGlxUEmoqqIsKOWpA36imqn3yPFpLJWphwMBgkyjgYO4UMlgF3Te8LCQXnQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1602775558; h=Content-Type:Content-Transfer-Encoding:Cc: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=O6RguxrRXBVPessx7jRjQMA2HwrPUyLsKUsYulwevbg=; b=U9QlEwUyjc4WEuvNykhW32e1SlNQikJAk3mJReP8Cz7H0BPgrK6UhaqaRv9Lc8HmnGwKEkwT7ffGJgdtx/l//Ym9gtCfs2JmwI/hAeJrECJ/19pBf63p6kDZHNTZjaJLGsnPtFZb3Ticf4rVmfD+YrMV3JeIvzHIKDcBwHFiCH4= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 63.128.21.124 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-124.mimecast.com (us-smtp-delivery-124.mimecast.com [63.128.21.124]) by mx.zohomail.com with SMTPS id 1602775558430215.55545257095014; Thu, 15 Oct 2020 08:25:58 -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-278-5qVXTjXjOG-lzQKPb8kf1g-1; Thu, 15 Oct 2020 11:25: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 87E67802B74; Thu, 15 Oct 2020 15:25:47 +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 6590860C07; Thu, 15 Oct 2020 15:25:47 +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 313F358116; Thu, 15 Oct 2020 15:25:47 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id 09FFPRD9015654 for ; Thu, 15 Oct 2020 11:25:27 -0400 Received: by smtp.corp.redhat.com (Postfix) id A05D975132; Thu, 15 Oct 2020 15:25:27 +0000 (UTC) Received: from speedmetal.redhat.com (unknown [10.40.208.55]) by smtp.corp.redhat.com (Postfix) with ESMTP id CF0F375131; Thu, 15 Oct 2020 15:25:24 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1602775557; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc: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=O6RguxrRXBVPessx7jRjQMA2HwrPUyLsKUsYulwevbg=; b=Uk5y+MuLpw3jbtdVXvyOxwOJt5sxxbxfkkS92ufw/puOUZcerrIz7keduJFJUaNwZSr1Xx J4j/5JSIFXHZhmSvBLxVZxXVfHSoKg9+kgzncnu0JZQdmu69LelqNaSLkEJhSJgp1dzo8T wz3W34csQ2Ud2FaETjRqfAvTa0z2dRI= X-MC-Unique: 5qVXTjXjOG-lzQKPb8kf1g-1 From: Peter Krempa To: libvir-list@redhat.com Subject: [PATCH 4/6] qemuxml2argvmock: Remove mocking of 'virSCSIDeviceGetSgName' Date: Thu, 15 Oct 2020 17:25:12 +0200 Message-Id: In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.15 X-loop: libvir-list@redhat.com Cc: daggs 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 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=libvir-list-bounces@redhat.com 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" Hostdev setup code no longer resolves hostdev name in the commandline formatter but we mock it directly in the monitor code. Signed-off-by: Peter Krempa Reviewed-by: Michal Privoznik --- tests/qemuxml2argvmock.c | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/tests/qemuxml2argvmock.c b/tests/qemuxml2argvmock.c index b9322f4f2a..565d2aefca 100644 --- a/tests/qemuxml2argvmock.c +++ b/tests/qemuxml2argvmock.c @@ -121,19 +121,6 @@ virMemoryMaxValue(bool capped G_GNUC_UNUSED) return LLONG_MAX; } -char * -virSCSIDeviceGetSgName(const char *sysfs_prefix G_GNUC_UNUSED, - const char *adapter G_GNUC_UNUSED, - unsigned int bus G_GNUC_UNUSED, - unsigned int target G_GNUC_UNUSED, - unsigned long long unit G_GNUC_UNUSED) -{ - char *ret; - - ret =3D g_strdup("sg0"); - return ret; -} - int virSCSIVHostOpenVhostSCSI(int *vhostfd) { --=20 2.26.2 From nobody Sat Apr 27 04:32:03 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 63.128.21.124 as permitted sender) client-ip=63.128.21.124; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-124.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 63.128.21.124 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=1602775576; cv=none; d=zohomail.com; s=zohoarc; b=DnUPJIqVv0IsXJ2z6vU1JKjc4+8QcZbiaWFCZetPGIRdXXVKNsldDszYQLm/qPDHzUI6doE77U2Cly+fo4C6UQ4aVZY7YL26VVOHR7xhF4lM303KU8p2QX1k/bsjbToZhBZPn02pInhugN2WDEfbeh7E/dLLHemJZvDiqkIksFw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1602775576; h=Content-Type:Content-Transfer-Encoding:Cc: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=86do5lY8b5hKb6JgnDfZqnW7CS90ej4uWHQrTOHEI+c=; b=Jww+9npPmd1bbAIiX+r3fFhSjvhCzahUV+bGdmNn5ZFyJinxrYxf3HhdFzGw4xiBNoalo6v7QjVh3b2QBe5+DUbewReLZcOho4Dw3b746AdtCLfbgB34IQBcoh0xdC2CEiUuovi75mBPzav/UqpxT2PByY7uh3Cc5I3/ZelyPoA= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 63.128.21.124 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-124.mimecast.com (us-smtp-delivery-124.mimecast.com [63.128.21.124]) by mx.zohomail.com with SMTPS id 1602775576617309.5399807541984; Thu, 15 Oct 2020 08:26: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-520-OrEfcEOcP-mS1vEf06KjbQ-1; Thu, 15 Oct 2020 11:25:58 -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 84FBE8015FD; Thu, 15 Oct 2020 15:25: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 6233E60C07; Thu, 15 Oct 2020 15:25: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 30E56181A894; Thu, 15 Oct 2020 15:25:50 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id 09FFPT6v015677 for ; Thu, 15 Oct 2020 11:25:29 -0400 Received: by smtp.corp.redhat.com (Postfix) id 0E3D775131; Thu, 15 Oct 2020 15:25:29 +0000 (UTC) Received: from speedmetal.redhat.com (unknown [10.40.208.55]) by smtp.corp.redhat.com (Postfix) with ESMTP id 1B4F375135; Thu, 15 Oct 2020 15:25:27 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1602775575; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc: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=86do5lY8b5hKb6JgnDfZqnW7CS90ej4uWHQrTOHEI+c=; b=iYS2M2TcUb/P4E4BSYl57Vd8akTumqm7pIE0ledg/qU5qTFhx6ty1U0adDjcPMTFAxM4PI zQfK2c1+2mA4kRCPIsXuFKfsXMzJUTf4nPnr+F7nVj/dRnkIIr1DRKs6hCPHEw+z6gZ/AM 0R6QJERZdHm0QYlYrRqOjaRbAFGLwoY= X-MC-Unique: OrEfcEOcP-mS1vEf06KjbQ-1 From: Peter Krempa To: libvir-list@redhat.com Subject: [PATCH 5/6] qemu: Detect whether a SCSI hostdev is a cdrom Date: Thu, 15 Oct 2020 17:25:13 +0200 Message-Id: In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.15 X-loop: libvir-list@redhat.com Cc: daggs 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 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=libvir-list-bounces@redhat.com 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 has a special blockdev backend for a cdrom called 'host_cdrom'. Use it for SCSI hostdevs so that guests can detect the cdrom properly. For testing purposes we format a cdrom if the fake adapter name is "cdrom". Signed-off-by: Peter Krempa Reviewed-by: Michal Privoznik --- src/qemu/qemu_process.c | 4 ++++ .../hostdev-scsi-virtio-scsi.x86_64-2.8.0.args | 3 +++ .../hostdev-scsi-virtio-scsi.x86_64-4.1.0.args | 3 +++ .../hostdev-scsi-virtio-scsi.x86_64-latest.args | 4 ++++ tests/qemuxml2argvdata/hostdev-scsi-virtio-scsi.xml | 8 ++++++++ tests/qemuxml2argvtest.c | 7 ++++++- tests/qemuxml2xmloutdata/hostdev-scsi-virtio-scsi.xml | 8 ++++++++ 7 files changed, 36 insertions(+), 1 deletion(-) diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c index 70b8d39db9..6e6073c0e1 100644 --- a/src/qemu/qemu_process.c +++ b/src/qemu/qemu_process.c @@ -6233,6 +6233,10 @@ qemuProcessPrepareHostHostdev(virDomainHostdevDefPtr= hostdev) return -1; src->path =3D g_strdup_printf("/dev/%s", devstr); + + if (virFileIsCDROM(src->path) =3D=3D 1) + src->hostcdrom =3D true; + break; } diff --git a/tests/qemuxml2argvdata/hostdev-scsi-virtio-scsi.x86_64-2.8.0.a= rgs b/tests/qemuxml2argvdata/hostdev-scsi-virtio-scsi.x86_64-2.8.0.args index bb8a466f70..03ed12912e 100644 --- a/tests/qemuxml2argvdata/hostdev-scsi-virtio-scsi.x86_64-2.8.0.args +++ b/tests/qemuxml2argvdata/hostdev-scsi-virtio-scsi.x86_64-2.8.0.args @@ -58,5 +58,8 @@ drive=3Ddrive-hostdev4,id=3Dhostdev4 \ 3260/iqn.1992-01.com.example%3Astorage/2,if=3Dnone,format=3Draw,id=3Ddrive= -hostdev5 \ -device scsi-generic,bus=3Dscsi0.0,channel=3D0,scsi-id=3D3,lun=3D5,\ drive=3Ddrive-hostdev5,id=3Dhostdev5 \ +-drive file=3D/dev/sr0,if=3Dnone,format=3Draw,id=3Ddrive-hostdev6,readonly= =3Don \ +-device scsi-generic,bus=3Dscsi0.0,channel=3D0,scsi-id=3D4,lun=3D5,\ +drive=3Ddrive-hostdev6,id=3Dhostdev6 \ -device virtio-balloon-pci,id=3Dballoon0,bus=3Dpci.0,addr=3D0x3 \ -msg timestamp=3Don diff --git a/tests/qemuxml2argvdata/hostdev-scsi-virtio-scsi.x86_64-4.1.0.a= rgs b/tests/qemuxml2argvdata/hostdev-scsi-virtio-scsi.x86_64-4.1.0.args index 973ae5677a..5aaf2a9ea2 100644 --- a/tests/qemuxml2argvdata/hostdev-scsi-virtio-scsi.x86_64-4.1.0.args +++ b/tests/qemuxml2argvdata/hostdev-scsi-virtio-scsi.x86_64-4.1.0.args @@ -70,6 +70,9 @@ file.initiator-name=3Diqn.2020-07.com.example:test,if=3Dn= one,format=3Draw,\ id=3Ddrive-hostdev5 \ -device scsi-generic,bus=3Dscsi0.0,channel=3D0,scsi-id=3D3,lun=3D5,\ drive=3Ddrive-hostdev5,id=3Dhostdev5 \ +-drive file=3D/dev/sr0,if=3Dnone,format=3Draw,id=3Ddrive-hostdev6,readonly= =3Don \ +-device scsi-generic,bus=3Dscsi0.0,channel=3D0,scsi-id=3D4,lun=3D5,\ +drive=3Ddrive-hostdev6,id=3Dhostdev6 \ -device virtio-balloon-pci,id=3Dballoon0,bus=3Dpci.0,addr=3D0x3 \ -sandbox on,obsolete=3Ddeny,elevateprivileges=3Ddeny,spawn=3Ddeny,\ resourcecontrol=3Ddeny \ diff --git a/tests/qemuxml2argvdata/hostdev-scsi-virtio-scsi.x86_64-latest.= args b/tests/qemuxml2argvdata/hostdev-scsi-virtio-scsi.x86_64-latest.args index c00ef41bf2..b26fbe36ff 100644 --- a/tests/qemuxml2argvdata/hostdev-scsi-virtio-scsi.x86_64-latest.args +++ b/tests/qemuxml2argvdata/hostdev-scsi-virtio-scsi.x86_64-latest.args @@ -76,6 +76,10 @@ keyid=3DmasterKey0,iv=3DAAECAwQFBgcICQoLDA0ODw=3D=3D,for= mat=3Dbase64 \ "node-name":"libvirt-8-backend","read-only":false}' \ -device scsi-generic,bus=3Dscsi0.0,channel=3D0,scsi-id=3D3,lun=3D5,\ drive=3Dlibvirt-8-backend,id=3Dhostdev5 \ +-blockdev '{"driver":"host_cdrom","filename":"/dev/sr0",\ +"node-name":"libvirt-9-backend","read-only":true}' \ +-device scsi-generic,bus=3Dscsi0.0,channel=3D0,scsi-id=3D4,lun=3D5,\ +drive=3Dlibvirt-9-backend,id=3Dhostdev6 \ -device virtio-balloon-pci,id=3Dballoon0,bus=3Dpci.0,addr=3D0x3 \ -sandbox on,obsolete=3Ddeny,elevateprivileges=3Ddeny,spawn=3Ddeny,\ resourcecontrol=3Ddeny \ diff --git a/tests/qemuxml2argvdata/hostdev-scsi-virtio-scsi.xml b/tests/qe= muxml2argvdata/hostdev-scsi-virtio-scsi.xml index d096e0cb28..9374acef90 100644 --- a/tests/qemuxml2argvdata/hostdev-scsi-virtio-scsi.xml +++ b/tests/qemuxml2argvdata/hostdev-scsi-virtio-scsi.xml @@ -82,6 +82,14 @@
+ + + +
+ + +
+ diff --git a/tests/qemuxml2argvtest.c b/tests/qemuxml2argvtest.c index 3c1bec804a..3db4824a26 100644 --- a/tests/qemuxml2argvtest.c +++ b/tests/qemuxml2argvtest.c @@ -419,7 +419,12 @@ testCompareXMLToArgvCreateArgs(virQEMUDriverPtr drv, switch ((virDomainHostdevSCSIProtocolType) scsisrc->protocol) { case VIR_DOMAIN_HOSTDEV_SCSI_PROTOCOL_TYPE_NONE: - scsisrc->u.host.src->path =3D g_strdup("/dev/sg0"); + if (STREQ(scsisrc->u.host.adapter, "cdrom")) { + scsisrc->u.host.src->path =3D g_strdup("/dev/sr0"); + scsisrc->u.host.src->hostcdrom =3D true; + } else { + scsisrc->u.host.src->path =3D g_strdup("/dev/sg0"); + } break; case VIR_DOMAIN_HOSTDEV_SCSI_PROTOCOL_TYPE_ISCSI: diff --git a/tests/qemuxml2xmloutdata/hostdev-scsi-virtio-scsi.xml b/tests/= qemuxml2xmloutdata/hostdev-scsi-virtio-scsi.xml index 3e2e21dc55..6f6899c114 100644 --- a/tests/qemuxml2xmloutdata/hostdev-scsi-virtio-scsi.xml +++ b/tests/qemuxml2xmloutdata/hostdev-scsi-virtio-scsi.xml @@ -89,6 +89,14 @@
+ + + +
+ + +
+
--=20 2.26.2 From nobody Sat Apr 27 04:32:03 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 63.128.21.124 as permitted sender) client-ip=63.128.21.124; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-124.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 63.128.21.124 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=1602775633; cv=none; d=zohomail.com; s=zohoarc; b=RC8oL6zM2nVJEgtbyv58PjUOXwX2xj6T9FPBf1j+EhyUF5Dn7JGiQO7I7jEi3Vt9lKO4K6ON5Z4V3VoF6wDhZ76L1BE7ig6SNyfDNa37a6e3cgXjSvljKL4bBIbOzZY/SBlrsyMdxC4SJ4JiFcrUwrLMO8fV+AVriUldmOvvVjY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1602775633; h=Content-Type:Content-Transfer-Encoding:Cc: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=8K2z63APSfuw9lWmHx7kZvMvqFAAYVA7b/xyINxZv8A=; b=FUjM3GW6g88Xt6oTUaTTddkhTi06yxLhvde4zW4H6Z7ZWGdkElYWSvnDpPF3JPJ+F6wwmb4qLs5ddhi+51tGR9rbaD83Gd+SbbgbJEbxDP6OwSqjMR+a93RnhugrrokXfZuahZxZu1aTlOnRZ0atVljGJo5sloh8wAUYKIgiTOU= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 63.128.21.124 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-124.mimecast.com (us-smtp-delivery-124.mimecast.com [63.128.21.124]) by mx.zohomail.com with SMTPS id 1602775633121371.0688540552118; Thu, 15 Oct 2020 08:27:13 -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-451-Xufm9CYFOZq7S0RQ2VrUCw-1; Thu, 15 Oct 2020 11:26:00 -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 746391020906; Thu, 15 Oct 2020 15:25:50 +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 53B185C22B; Thu, 15 Oct 2020 15:25: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 2081F5811A; Thu, 15 Oct 2020 15:25:50 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id 09FFPU7d015702 for ; Thu, 15 Oct 2020 11:25:30 -0400 Received: by smtp.corp.redhat.com (Postfix) id 5C77E7513D; Thu, 15 Oct 2020 15:25:30 +0000 (UTC) Received: from speedmetal.redhat.com (unknown [10.40.208.55]) by smtp.corp.redhat.com (Postfix) with ESMTP id 5E03C75131; Thu, 15 Oct 2020 15:25:29 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1602775631; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc: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=8K2z63APSfuw9lWmHx7kZvMvqFAAYVA7b/xyINxZv8A=; b=ijU0DxXOR+liFLUd5c0rOu3Gkg1Y73u/mxjZKSS/XdohiWIMrNbluldq8yQ4ufHvfAHo6+ RfEpmr3t/jOl8RogyPTWc8gUjj9FByH9EsqBwZIGLEwbJZTHHMJA2cmo8gp701YK3yYlcT dcQFU7bzn2ucPorXkWc3KORPYEjndjM= X-MC-Unique: Xufm9CYFOZq7S0RQ2VrUCw-1 From: Peter Krempa To: libvir-list@redhat.com Subject: [PATCH 6/6] qemu: Add test cases for 'host_cdrom' blockdev backend via Date: Thu, 15 Oct 2020 17:25:14 +0200 Message-Id: In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.15 X-loop: libvir-list@redhat.com Cc: daggs 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 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=libvir-list-bounces@redhat.com 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" Simulate that the device is a cdrom when the path equals to /dev/cdrom to provide testing for the 'host_cdrom' backend. Signed-off-by: Peter Krempa Reviewed-by: Michal Privoznik --- tests/qemuxml2argvdata/disk-cdrom.args | 4 ++-- tests/qemuxml2argvdata/disk-cdrom.x86_64-2.12.0.args | 4 ++-- tests/qemuxml2argvdata/disk-cdrom.x86_64-latest.args | 6 +++--- tests/qemuxml2argvdata/disk-cdrom.xml | 5 +++-- tests/qemuxml2argvtest.c | 11 +++++++++++ tests/qemuxml2xmloutdata/disk-cdrom.xml | 5 +++-- 6 files changed, 24 insertions(+), 11 deletions(-) diff --git a/tests/qemuxml2argvdata/disk-cdrom.args b/tests/qemuxml2argvdat= a/disk-cdrom.args index cbac368129..e506a4befe 100644 --- a/tests/qemuxml2argvdata/disk-cdrom.args +++ b/tests/qemuxml2argvdata/disk-cdrom.args @@ -25,8 +25,8 @@ server,nowait \ -no-shutdown \ -no-acpi \ -usb \ --drive file=3D/dev/HostVG/QEMUGuest1,format=3Draw,if=3Dnone,id=3Ddrive-ide= 0-0-0 \ --device ide-hd,bus=3Dide.0,unit=3D0,drive=3Ddrive-ide0-0-0,id=3Dide0-0-0,b= ootindex=3D1 \ +-drive file=3D/dev/cdrom,format=3Draw,if=3Dnone,id=3Ddrive-ide0-0-0,readon= ly=3Don \ +-device ide-cd,bus=3Dide.0,unit=3D0,drive=3Ddrive-ide0-0-0,id=3Dide0-0-0 \ -drive file=3D/root/boot.iso,format=3Draw,if=3Dnone,id=3Ddrive-ide0-0-1,re= adonly=3Don \ -device ide-cd,bus=3Dide.0,unit=3D1,drive=3Ddrive-ide0-0-1,id=3Dide0-0-1 \ -drive if=3Dnone,id=3Ddrive-ide0-1-0,readonly=3Don \ diff --git a/tests/qemuxml2argvdata/disk-cdrom.x86_64-2.12.0.args b/tests/q= emuxml2argvdata/disk-cdrom.x86_64-2.12.0.args index 2440acc78a..0621746a3b 100644 --- a/tests/qemuxml2argvdata/disk-cdrom.x86_64-2.12.0.args +++ b/tests/qemuxml2argvdata/disk-cdrom.x86_64-2.12.0.args @@ -27,8 +27,8 @@ 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 \ --drive file=3D/dev/HostVG/QEMUGuest1,format=3Draw,if=3Dnone,id=3Ddrive-ide= 0-0-0 \ --device ide-hd,bus=3Dide.0,unit=3D0,drive=3Ddrive-ide0-0-0,id=3Dide0-0-0,b= ootindex=3D1 \ +-drive file=3D/dev/cdrom,format=3Draw,if=3Dnone,id=3Ddrive-ide0-0-0,readon= ly=3Don \ +-device ide-cd,bus=3Dide.0,unit=3D0,drive=3Ddrive-ide0-0-0,id=3Dide0-0-0 \ -drive file=3D/root/boot.iso,format=3Draw,if=3Dnone,id=3Ddrive-ide0-0-1,re= adonly=3Don \ -device ide-cd,bus=3Dide.0,unit=3D1,drive=3Ddrive-ide0-0-1,id=3Dide0-0-1 \ -drive if=3Dnone,id=3Ddrive-ide0-1-0,readonly=3Don \ diff --git a/tests/qemuxml2argvdata/disk-cdrom.x86_64-latest.args b/tests/q= emuxml2argvdata/disk-cdrom.x86_64-latest.args index 0d375ffd1c..beac75ec1d 100644 --- a/tests/qemuxml2argvdata/disk-cdrom.x86_64-latest.args +++ b/tests/qemuxml2argvdata/disk-cdrom.x86_64-latest.args @@ -29,11 +29,11 @@ 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 \ --blockdev '{"driver":"host_device","filename":"/dev/HostVG/QEMUGuest1",\ +-blockdev '{"driver":"host_cdrom","filename":"/dev/cdrom",\ "node-name":"libvirt-4-storage","auto-read-only":true,"discard":"unmap"}' \ --blockdev '{"node-name":"libvirt-4-format","read-only":false,"driver":"raw= ",\ +-blockdev '{"node-name":"libvirt-4-format","read-only":true,"driver":"raw"= ,\ "file":"libvirt-4-storage"}' \ --device ide-hd,bus=3Dide.0,unit=3D0,drive=3Dlibvirt-4-format,id=3Dide0-0-0= ,bootindex=3D1 \ +-device ide-cd,bus=3Dide.0,unit=3D0,drive=3Dlibvirt-4-format,id=3Dide0-0-0= \ -blockdev '{"driver":"file","filename":"/root/boot.iso",\ "node-name":"libvirt-3-storage","auto-read-only":true,"discard":"unmap"}' \ -blockdev '{"node-name":"libvirt-3-format","read-only":true,"driver":"raw"= ,\ diff --git a/tests/qemuxml2argvdata/disk-cdrom.xml b/tests/qemuxml2argvdata= /disk-cdrom.xml index b051b16642..54d2927ac3 100644 --- a/tests/qemuxml2argvdata/disk-cdrom.xml +++ b/tests/qemuxml2argvdata/disk-cdrom.xml @@ -14,10 +14,11 @@ destroy /usr/bin/qemu-system-i386 - + - + +
diff --git a/tests/qemuxml2argvtest.c b/tests/qemuxml2argvtest.c index 3db4824a26..21bbd2c09d 100644 --- a/tests/qemuxml2argvtest.c +++ b/tests/qemuxml2argvtest.c @@ -405,6 +405,17 @@ testCompareXMLToArgvCreateArgs(virQEMUDriverPtr drv, VIR_QEMU_PROCESS_START_COLD) < = 0) return NULL; + for (i =3D 0; i < vm->def->ndisks; i++) { + virDomainDiskDefPtr disk =3D vm->def->disks[i]; + + /* host cdrom requires special treatment in qemu, mock it */ + if (disk->device =3D=3D VIR_DOMAIN_DISK_DEVICE_CDROM && + disk->src->format =3D=3D VIR_STORAGE_FILE_RAW && + virStorageSourceIsBlockLocal(disk->src) && + STREQ(disk->src->path, "/dev/cdrom")) + disk->src->hostcdrom =3D true; + } + for (i =3D 0; i < vm->def->nhostdevs; i++) { virDomainHostdevDefPtr hostdev =3D vm->def->hostdevs[i]; diff --git a/tests/qemuxml2xmloutdata/disk-cdrom.xml b/tests/qemuxml2xmlout= data/disk-cdrom.xml index 3e6475c276..3a8c34761d 100644 --- a/tests/qemuxml2xmloutdata/disk-cdrom.xml +++ b/tests/qemuxml2xmloutdata/disk-cdrom.xml @@ -14,10 +14,11 @@ destroy /usr/bin/qemu-system-i386 - + - + +
--=20 2.26.2