From nobody Tue May 7 06:11:46 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; spf=pass (zohomail.com: domain of redhat.com designates 216.205.24.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=fail(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1616633733; cv=none; d=zohomail.com; s=zohoarc; b=WI86OL2LXSvWHKqe9m5+K+10MzMHmyJ5OBM34yF4Pg5iRY+7CNMfVeo+NBzZRe9onJe6tcQVxhgItIN8dhGMTtb8EpH37yRH2SLzC+APwlSuvaWBwk7+ee6P+9hOPdGVVe0QUJ7cYzjF/MOOJ6jOpDyTNSEXVWFBgHtYK3c8NKs= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1616633733; 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=zDtOQ8S/CLWIvsWFUTemB1i1sPv4Gw/ICTfgLyP7480=; b=AIUzCTw8I9O2wAlcRuDvJVkt859c2Wl49FOJWl1U8JiMa1FbuSJ9JalVYkWYiKgS/8Pp3hyrFxj/KLLqRzmM55FLI/0olLd5M/NJIcewWVja1iLw7chWN/Eji196hMTde+02qQiF4mLj+TRP8nOujpj52qnzlnzi6Js4Nh8KFoE= ARC-Authentication-Results: i=1; mx.zohomail.com; spf=pass (zohomail.com: domain of redhat.com designates 216.205.24.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=fail 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 1616633733420353.3359104894638; Wed, 24 Mar 2021 17:55: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-485-fL9fA41HMDOuEseA2neRag-1; Wed, 24 Mar 2021 20:55:29 -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 51B8987A83A; Thu, 25 Mar 2021 00:55:23 +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 272165FCB2; Thu, 25 Mar 2021 00:55:23 +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 D3ADA4A700; Thu, 25 Mar 2021 00:55:22 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.rdu2.redhat.com [10.11.54.5]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id 12P0t25H024542 for ; Wed, 24 Mar 2021 20:55:02 -0400 Received: by smtp.corp.redhat.com (Postfix) id 1323DF5196; Thu, 25 Mar 2021 00:55:02 +0000 (UTC) Received: from mimecast-mx02.redhat.com (mimecast03.extmail.prod.ext.rdu2.redhat.com [10.11.55.19]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 0D0A2F51A1 for ; Thu, 25 Mar 2021 00:54:59 +0000 (UTC) Received: from us-smtp-1.mimecast.com (us-smtp-1.mimecast.com [207.211.31.81]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 4C38B811E7A for ; Thu, 25 Mar 2021 00:54:59 +0000 (UTC) Received: from mail-qk1-f178.google.com (mail-qk1-f178.google.com [209.85.222.178]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-129-YWZHP5F-MXSn55i5N6H0ig-1; Wed, 24 Mar 2021 20:54:57 -0400 Received: by mail-qk1-f178.google.com with SMTP id y5so242874qkl.9 for ; Wed, 24 Mar 2021 17:54:57 -0700 (PDT) Received: from localhost (209-6-122-159.s2973.c3-0.arl-cbr1.sbo-arl.ma.cable.rcncustomer.com. [209.6.122.159]) by smtp.gmail.com with ESMTPSA id h14sm2497063qtx.64.2021.03.24.17.54.56 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Wed, 24 Mar 2021 17:54:56 -0700 (PDT) X-MC-Unique: fL9fA41HMDOuEseA2neRag-1 X-MC-Unique: YWZHP5F-MXSn55i5N6H0ig-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=zDtOQ8S/CLWIvsWFUTemB1i1sPv4Gw/ICTfgLyP7480=; b=oTIV72XlCwA9aDvoF1zoFUwY7Fzqwi/W2GXCHqm/MhdFaNoQ+7tIKWwNlE4mRwOknl 7LVxOQ6vQoJE4KwWRnp0xFXiz2bxFCeI07dItcmoIIymQMei21os1BnVLzKKfailA4Re AxOcPzB+h4Vx32GcLYAIFt6NqX7eOP+fWC8jQgKW+A+qljuIzGMqraLJGyBU5REX7O0G 1IvDEN9V0mFb7+Q+QK+CW9SKl0gzlLPFff6nLjWy86/wGUNy48cB7s3/y/rwH+MO5tjD jChcY5cDsuO2EYTDiJIv5o+OXXTiYm6ixYLK/e/DGEczeUMTRmAs4Ra6dFu+MKrGnG1l +bsg== X-Gm-Message-State: AOAM530KE7mBcSyl0x6k+FMmlGjFLNJH04HDXrWUOPjqn0bGGLE30HN6 bpTsF7WPoismTi/beTFvZgjQ67X+CQ== X-Google-Smtp-Source: ABdhPJzrvr1fqLrnX9zcA3GevxnSHqa4lHNX1osdjjE3oaAmyWNh+688nYpictyih0j7F9+oVBiI1Q== X-Received: by 2002:a37:ae04:: with SMTP id x4mr5877703qke.245.1616633696695; Wed, 24 Mar 2021 17:54:56 -0700 (PDT) From: Masayoshi Mizuma To: libvir-list@redhat.com Subject: [PATCH 01/10] qemu_hotplug: Add transient disk hotplug support Date: Wed, 24 Mar 2021 20:54:05 -0400 Message-Id: <20210325005414.275401-2-msys.mizuma@gmail.com> In-Reply-To: <20210325005414.275401-1-msys.mizuma@gmail.com> References: <20210325005414.275401-1-msys.mizuma@gmail.com> MIME-Version: 1.0 X-Mimecast-Impersonation-Protect: Policy=CLT - Impersonation Protection Definition; Similar Internal Domain=false; Similar Monitored External Domain=false; Custom External Domain=false; Mimecast External Domain=false; Newly Observed Domain=false; Internal User Name=false; Custom Display Name List=false; Reply-to Address Mismatch=false; Targeted Threat Dictionary=false; Mimecast Threat Dictionary=false; Custom Threat Dictionary=false X-Scanned-By: MIMEDefang 2.79 on 10.11.54.5 X-loop: libvir-list@redhat.com Cc: Masayoshi Mizuma , Masayoshi Mizuma 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 Content-Type: text/plain; charset="utf-8" From: Masayoshi Mizuma Enable disk option for qemuDomainAttachDeviceDiskLive(). The disk hotplug works for virtio or scsi bus. Signed-off-by: Masayoshi Mizuma --- src/qemu/qemu_hotplug.c | 135 +++++++++++++++++++++++++++++++++++++--- 1 file changed, 128 insertions(+), 7 deletions(-) diff --git a/src/qemu/qemu_hotplug.c b/src/qemu/qemu_hotplug.c index 58d2abb862..138645260f 100644 --- a/src/qemu/qemu_hotplug.c +++ b/src/qemu/qemu_hotplug.c @@ -1025,6 +1025,111 @@ qemuDomainAttachUSBMassStorageDevice(virQEMUDriverP= tr driver, return 0; } =20 +static int +qemuHotplugDiskPrepareOneBlockdev(virQEMUDriverPtr driver, + virDomainObjPtr vm, + virQEMUDriverConfigPtr cfg, + virDomainDiskDefPtr disk, + virStorageSourcePtr transrc, + qemuDomainAsyncJob asyncJob, + bool *created) +{ + qemuDomainObjPrivatePtr priv =3D vm->privateData; + g_autoptr(qemuBlockStorageSourceChainData) data =3D NULL; + g_autoptr(virStorageSource) terminator =3D NULL; + + terminator =3D virStorageSourceNew(); + + if (qemuDomainPrepareStorageSourceBlockdev(disk, transrc, + priv, cfg) < 0) + return -1; + + if (!(data =3D qemuBuildStorageSourceChainAttachPrepareBlockdevTop(tra= nsrc, + termi= nator, + priv-= >qemuCaps))) + return -1; + + transrc->capacity =3D disk->src->capacity; + + if (qemuBlockStorageSourceCreate(vm, transrc, disk->src, + NULL, data->srcdata[0], + asyncJob) < 0) + goto error; + + if (qemuBlockStorageSourceDetachOneBlockdev(driver, vm, + asyncJob, transrc) < 0) + goto error; + + *created =3D true; + + return 0; + + error: + qemuBlockStorageSourceAttachRollback(priv->mon, data->srcdata[0]); + virStorageSourceUnlink(transrc); + + return -1; +} + + +static int +qemuHotplugDiskPrepareOneDiskTransient(virQEMUDriverPtr driver, + virDomainObjPtr vm, + virDomainDeviceDefPtr dev, + bool *created) +{ + g_autoptr(virQEMUDriverConfig) cfg =3D virQEMUDriverGetConfig(driver); + virDomainDiskDefPtr disk =3D dev->data.disk; + virStorageSourcePtr origsrc =3D disk->src; + virStorageSourcePtr transrc; + bool supportsCreate; + + transrc =3D virStorageSourceNew(); + transrc->type =3D VIR_STORAGE_TYPE_FILE; + transrc->format =3D VIR_STORAGE_FILE_QCOW2; + transrc->path =3D g_strdup_printf("%s.TRANSIENT-%s", + disk->src->path, vm->def->name); + + if (virFileExists(transrc->path)) { + virReportError(VIR_ERR_OPERATION_UNSUPPORTED, + _("Overlay file '%s' for transient disk '%s' alread= y exists"), + transrc->path, disk->dst); + return -1; + } + + if (qemuDomainStorageSourceValidateDepth(transrc, 1, disk->dst) < 0) + return -1; + + if (virStorageSourceInitChainElement(transrc, disk->src, false) < 0) + return -1; + + supportsCreate =3D virStorageSourceSupportsCreate(transrc); + + if (supportsCreate) { + if (qemuDomainStorageFileInit(driver, vm, transrc, NULL) < 0) + return -1; + + if (virStorageSourceCreate(transrc) < 0) { + virReportSystemError(errno, _("failed to create image file '%s= '"), + NULLSTR(transrc->path)); + return -1; + } + } + + if (qemuDomainStorageSourceAccessAllow(driver, vm, transrc, + false, true, true) < 0) + return -1; + + if (qemuHotplugDiskPrepareOneBlockdev(driver, vm, cfg, disk, transrc, + QEMU_ASYNC_JOB_NONE, created) < = 0) + return -1; + + transrc->backingStore =3D origsrc; + disk->src =3D transrc; + + return 0; +} + =20 static int qemuDomainAttachDeviceDiskLiveInternal(virQEMUDriverPtr driver, @@ -1033,7 +1138,9 @@ qemuDomainAttachDeviceDiskLiveInternal(virQEMUDriverP= tr driver, { size_t i; virDomainDiskDefPtr disk =3D dev->data.disk; + virDomainDiskBus bus; int ret =3D -1; + bool transientDiskCreated =3D false; =20 if (disk->device =3D=3D VIR_DOMAIN_DISK_DEVICE_CDROM || disk->device =3D=3D VIR_DOMAIN_DISK_DEVICE_FLOPPY) { @@ -1042,12 +1149,6 @@ qemuDomainAttachDeviceDiskLiveInternal(virQEMUDriver= Ptr driver, return -1; } =20 - if (disk->transient) { - virReportError(VIR_ERR_OPERATION_UNSUPPORTED, "%s", - _("transient disk hotplug isn't supported")); - return -1; - } - if (virDomainDiskTranslateSourcePool(disk) < 0) goto cleanup; =20 @@ -1060,6 +1161,21 @@ qemuDomainAttachDeviceDiskLiveInternal(virQEMUDriver= Ptr driver, if (qemuDomainDetermineDiskChain(driver, vm, disk, NULL, true) < 0) goto cleanup; =20 + if (disk->transient) { + bus =3D (virDomainDiskBus) disk->bus; + + if ((bus !=3D VIR_DOMAIN_DISK_BUS_VIRTIO) && + (bus !=3D VIR_DOMAIN_DISK_BUS_SCSI)) { + virReportError(VIR_ERR_OPERATION_UNSUPPORTED, "%s", + _("transient disk hotplug isn't supported")= ); + goto cleanup; + } + + if (qemuHotplugDiskPrepareOneDiskTransient(driver, vm, dev, + &transientDiskCreated) = < 0) + goto cleanup; + } + for (i =3D 0; i < vm->def->ndisks; i++) { if (virDomainDiskDefCheckDuplicateInfo(vm->def->disks[i], disk) < = 0) goto cleanup; @@ -1099,8 +1215,13 @@ qemuDomainAttachDeviceDiskLiveInternal(virQEMUDriver= Ptr driver, } =20 cleanup: - if (ret !=3D 0) + if (ret !=3D 0) { ignore_value(qemuRemoveSharedDevice(driver, dev, vm->def->name)); + if (transientDiskCreated) { + VIR_DEBUG("Removing transient disk %s", disk->src->path); + virStorageSourceUnlink(disk->src); + } + } return ret; } =20 --=20 2.27.0 From nobody Tue May 7 06:11:46 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; spf=pass (zohomail.com: domain of redhat.com designates 216.205.24.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=fail(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1616633738; cv=none; d=zohomail.com; s=zohoarc; b=cai7iCHVQbhQZF9bC6uWPIrmGb/E9ppsRRF/uJpXpIkrptdV/PcuRLUvDrt2l0aWYfHrb1oK4IkUqidv0DksnMrReivHxOHmbnsZZnvrO7DKs1hCtvB95rdAEO1RlclqWAeEU387khrFiYO3RgDsZm/jIARrU2b3R5vdylwSFIk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1616633738; 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=rLRpcIM7sdN26iXDiVLdLOf7ZY4oXHwPnMaBk5bSzO4=; b=lr4l+dWKKkqFX+egF4YMRD65KDFPbUeU2p4hE6TZnz4mQsK+Lf9hn40wsHsLAvJWtNWd0jokSNq4mN6KoxlRXWXPRjACpZIHgPraui3A9nrsSe50QjS4ijZ4pyiKton7uHwB8VzzmBt7sEFhft8cCEZAxcOMVVCjy8jct7/asAU= ARC-Authentication-Results: i=1; mx.zohomail.com; spf=pass (zohomail.com: domain of redhat.com designates 216.205.24.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=fail 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 1616633738798127.70184943860772; Wed, 24 Mar 2021 17:55:38 -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-551-eje11IRkOX20JVJ0cKz3Sg-1; Wed, 24 Mar 2021 20:55:35 -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 6A5BC83DEAE; Thu, 25 Mar 2021 00:55: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 468C26727A; Thu, 25 Mar 2021 00:55: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 D27FD1802135; Thu, 25 Mar 2021 00:55:25 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.rdu2.redhat.com [10.11.54.5]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id 12P0t2cS024543 for ; Wed, 24 Mar 2021 20:55:02 -0400 Received: by smtp.corp.redhat.com (Postfix) id 134D4F5199; Thu, 25 Mar 2021 00:55:02 +0000 (UTC) Received: from mimecast-mx02.redhat.com (mimecast01.extmail.prod.ext.rdu2.redhat.com [10.11.55.17]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 0D11BF51A5 for ; Thu, 25 Mar 2021 00:55:00 +0000 (UTC) Received: from us-smtp-1.mimecast.com (us-smtp-delivery-1.mimecast.com [205.139.110.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id A140985A5A8 for ; Thu, 25 Mar 2021 00:55:00 +0000 (UTC) Received: from mail-qk1-f180.google.com (mail-qk1-f180.google.com [209.85.222.180]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-148-lnyQis1mM-i8QRxSnCl-Sw-1; Wed, 24 Mar 2021 20:54:58 -0400 Received: by mail-qk1-f180.google.com with SMTP id z10so224004qkz.13 for ; Wed, 24 Mar 2021 17:54:58 -0700 (PDT) Received: from localhost (209-6-122-159.s2973.c3-0.arl-cbr1.sbo-arl.ma.cable.rcncustomer.com. [209.6.122.159]) by smtp.gmail.com with ESMTPSA id 6sm2649455qth.82.2021.03.24.17.54.57 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Wed, 24 Mar 2021 17:54:57 -0700 (PDT) X-MC-Unique: eje11IRkOX20JVJ0cKz3Sg-1 X-MC-Unique: lnyQis1mM-i8QRxSnCl-Sw-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=rLRpcIM7sdN26iXDiVLdLOf7ZY4oXHwPnMaBk5bSzO4=; b=eF/RvZCDnF16OTE+Cz7jeXHmcINiKYX3YZ24ZoEOgxW92am1HPBOmmcND2I0K7fUoj axArfR8qU8zNVkBBTc/oIky45V8lhUh2eAQ36IF/oMOv2cbfR7pkKOwXtl8byLV741mh 4xaL/p7AwYfK1Nn0KQWGIZmZNM4oDqZ5Xk3A5wYyh6EqwSZEBU1x7JGTNoiqVXOilm9b +SKYhPVVrVZw7wJvSRlPKPcDeuZSEL2opRcZf3I1nLGLG5qx+4Q9zDmzB1yJHWSrxJn8 6r+t2LPP/hRMFBaF+8ahadXGzBlG0gd+yFhMFnJLTzb8tAzfDSvyYVvYyxl9KXjR/AAI cRRQ== X-Gm-Message-State: AOAM531Bn1C84G3HLgjpIZcO3nGgEjQtcZ651nV11eyeSqA8tVHyjJ+Q a0DivRTyY2bPPms4Kyo1CrZ6sNuQ+Q== X-Google-Smtp-Source: ABdhPJwTN4/6OmCwGaicaoy6pE4ACKZM5/g/Jg7XmBOClXJNAO+JE55p/DgPeY16cjnqpqd2wmcw1g== X-Received: by 2002:a37:8c42:: with SMTP id o63mr5872934qkd.449.1616633697797; Wed, 24 Mar 2021 17:54:57 -0700 (PDT) From: Masayoshi Mizuma To: libvir-list@redhat.com Subject: [PATCH 02/10] qemu_hotplug: make transient disk sharable Date: Wed, 24 Mar 2021 20:54:06 -0400 Message-Id: <20210325005414.275401-3-msys.mizuma@gmail.com> In-Reply-To: <20210325005414.275401-1-msys.mizuma@gmail.com> References: <20210325005414.275401-1-msys.mizuma@gmail.com> MIME-Version: 1.0 X-Mimecast-Impersonation-Protect: Policy=CLT - Impersonation Protection Definition; Similar Internal Domain=false; Similar Monitored External Domain=false; Custom External Domain=false; Mimecast External Domain=false; Newly Observed Domain=false; Internal User Name=false; Custom Display Name List=false; Reply-to Address Mismatch=false; Targeted Threat Dictionary=false; Mimecast Threat Dictionary=false; Custom Threat Dictionary=false X-Scanned-By: MIMEDefang 2.79 on 10.11.54.5 X-loop: libvir-list@redhat.com Cc: Masayoshi Mizuma , Masayoshi Mizuma 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 Content-Type: text/plain; charset="utf-8" From: Masayoshi Mizuma Enable disk option for transient disk hotplug. Signed-off-by: Masayoshi Mizuma --- src/qemu/qemu_hotplug.c | 3 +++ src/qemu/qemu_validate.c | 21 +++++++++++++++++++-- 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/src/qemu/qemu_hotplug.c b/src/qemu/qemu_hotplug.c index 138645260f..04b76db5e3 100644 --- a/src/qemu/qemu_hotplug.c +++ b/src/qemu/qemu_hotplug.c @@ -1124,6 +1124,9 @@ qemuHotplugDiskPrepareOneDiskTransient(virQEMUDriverP= tr driver, QEMU_ASYNC_JOB_NONE, created) < = 0) return -1; =20 + if (origsrc->shared) + origsrc->readonly =3D true; + transrc->backingStore =3D origsrc; disk->src =3D transrc; =20 diff --git a/src/qemu/qemu_validate.c b/src/qemu/qemu_validate.c index 6043f974ce..5426e7a784 100644 --- a/src/qemu/qemu_validate.c +++ b/src/qemu/qemu_validate.c @@ -2907,6 +2907,23 @@ qemuValidateDomainDeviceDefDiskTransient(const virDo= mainDiskDef *disk, } =20 =20 +static bool +qemuValidateDomainDeviceDefDiskShareable(const virDomainDiskDef *disk) +{ + virDomainDiskBus bus =3D (virDomainDiskBus) disk->bus; + + if (!disk->src->readonly && !disk->transient && + !qemuBlockStorageSourceSupportsConcurrentAccess(disk->src)) + return false; + else if (disk->transient && + (bus !=3D VIR_DOMAIN_DISK_BUS_VIRTIO) && + (bus !=3D VIR_DOMAIN_DISK_BUS_SCSI)) + return false; + else + return true; +} + + int qemuValidateDomainDeviceDefDisk(const virDomainDiskDef *disk, const virDomainDef *def, @@ -2927,8 +2944,8 @@ qemuValidateDomainDeviceDefDisk(const virDomainDiskDe= f *disk, if (qemuValidateDomainDeviceDefDiskTransient(disk, qemuCaps) < 0) return -1; =20 - if (disk->src->shared && !disk->src->readonly && - !qemuBlockStorageSourceSupportsConcurrentAccess(disk->src)) { + if (disk->src->shared && + !qemuValidateDomainDeviceDefDiskShareable(disk)) { virReportError(VIR_ERR_CONFIG_UNSUPPORTED, _("shared access for disk '%s' requires use of " "supported storage format"), disk->dst); --=20 2.27.0 From nobody Tue May 7 06:11:46 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) client-ip=170.10.133.124; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-124.mimecast.com; Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=fail(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1616633731; cv=none; d=zohomail.com; s=zohoarc; b=S61voAzIldr6F7FQj8sLGmRTzOck596rUvlzk8wUh9TIgYfAFf162aCG3M6EiiPx7QAWd9swOA8kkENlEPdModW1+WKq7UH/wv5gU/4ABAsEUTbOXK2slAFoCAP9yEehugsuBnF9AWMU3pQJzaP5hnhO2i3WLFmExIMsRL3GnBI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1616633731; 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=iPxXFQ9xTUQG1Q+0/65wSnLtHYVZg+DspiQtZ1IRC3E=; b=TU5R2fSJgpMXpnQEhVClY4duBJkmSXANjorfotVmRVJNQmQYLE6jyAZccmypc3rMLHF9JDhBCNGNu2fr2EnxNxnJfuXCDLfhOJF5wN+reCy9ynne+0ateGJEf1ANFP8cjn/gHHOW+EdmPj6LjNPDq7xX+iI3H1H3d05N6C9fvV4= ARC-Authentication-Results: i=1; mx.zohomail.com; spf=pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by mx.zohomail.com with SMTPS id 1616633731567455.1939111343454; Wed, 24 Mar 2021 17:55:31 -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-172-ruCpp48UOHG-C1HWFe4Wmw-1; Wed, 24 Mar 2021 20:55:28 -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 5F396101371E; Thu, 25 Mar 2021 00:55:23 +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 346FC1045EBE; Thu, 25 Mar 2021 00:55:23 +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 DED8D18005B6; Thu, 25 Mar 2021 00:55:22 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.rdu2.redhat.com [10.11.54.3]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id 12P0t3ed024573 for ; Wed, 24 Mar 2021 20:55:04 -0400 Received: by smtp.corp.redhat.com (Postfix) id CFD0F101A806; Thu, 25 Mar 2021 00:55:03 +0000 (UTC) Received: from mimecast-mx02.redhat.com (mimecast03.extmail.prod.ext.rdu2.redhat.com [10.11.55.19]) by smtp.corp.redhat.com (Postfix) with ESMTPS id CA77710F1CC4 for ; Thu, 25 Mar 2021 00:55:01 +0000 (UTC) Received: from us-smtp-1.mimecast.com (us-smtp-1.mimecast.com [205.139.110.61]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 7ED15811E9C for ; Thu, 25 Mar 2021 00:55:01 +0000 (UTC) Received: from mail-qv1-f49.google.com (mail-qv1-f49.google.com [209.85.219.49]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-62-yfQA8zOKP7aBWY5MPVa3fA-1; Wed, 24 Mar 2021 20:54:59 -0400 Received: by mail-qv1-f49.google.com with SMTP id dc12so373636qvb.4 for ; Wed, 24 Mar 2021 17:54:59 -0700 (PDT) Received: from localhost (209-6-122-159.s2973.c3-0.arl-cbr1.sbo-arl.ma.cable.rcncustomer.com. [209.6.122.159]) by smtp.gmail.com with ESMTPSA id c5sm2991821qkl.21.2021.03.24.17.54.58 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Wed, 24 Mar 2021 17:54:58 -0700 (PDT) X-MC-Unique: ruCpp48UOHG-C1HWFe4Wmw-1 X-MC-Unique: yfQA8zOKP7aBWY5MPVa3fA-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=iPxXFQ9xTUQG1Q+0/65wSnLtHYVZg+DspiQtZ1IRC3E=; b=UZ20ujJw9exwVZKhIsoEQZ16Saiev7AHPsLpe7c6cHuQsny39K98UpETRrdvyJb78v 12d/SyS3TjUJDtLPXGPgtkw2alDgb/YNa8wgo6hHH/htuyIaKqFUp0fMdRPjNjBA55K2 ArxYjjV/612BFWq/7/ZDHasTC5/eyQtdXMv2CujYlPSmbf8xtesh8nRFEocoCzobzlSp PQnoIJkdDTj5Hf9Jlh5bwK8OVJggjM1U8/DsX/hHKAm4NNUzxnOHk7CnGgunBFDskZ6X wz1QjNve8jr1Fn8fbmZWpym2nrPns1G8giiBiDvnG6ZIPHcq3urZaQ9segZV4mGU5YIX +Z6w== X-Gm-Message-State: AOAM533fj/poqTfWkkSFqQiNaRo4+Cmo3Bfi8H7hbIfALRqPznQJvmPP 6UpNNxEnmX0SaVjsaFHnH1AkHNMiJA== X-Google-Smtp-Source: ABdhPJx11YK1WcpW/sBtS4d2Cp71NFVh+O0YzBkNChuaDGscrKEhAQ3JJnZVuJa4Yyd83o8jqcXfkg== X-Received: by 2002:a0c:b5c6:: with SMTP id o6mr6038714qvf.27.1616633698979; Wed, 24 Mar 2021 17:54:58 -0700 (PDT) From: Masayoshi Mizuma To: libvir-list@redhat.com Subject: [PATCH 03/10] virsh: Add transient flag for disk hotplug Date: Wed, 24 Mar 2021 20:54:07 -0400 Message-Id: <20210325005414.275401-4-msys.mizuma@gmail.com> In-Reply-To: <20210325005414.275401-1-msys.mizuma@gmail.com> References: <20210325005414.275401-1-msys.mizuma@gmail.com> MIME-Version: 1.0 X-Mimecast-Impersonation-Protect: Policy=CLT - Impersonation Protection Definition; Similar Internal Domain=false; Similar Monitored External Domain=false; Custom External Domain=false; Mimecast External Domain=false; Newly Observed Domain=false; Internal User Name=false; Custom Display Name List=false; Reply-to Address Mismatch=false; Targeted Threat Dictionary=false; Mimecast Threat Dictionary=false; Custom Threat Dictionary=false X-Scanned-By: MIMEDefang 2.78 on 10.11.54.3 X-loop: libvir-list@redhat.com Cc: Masayoshi Mizuma , Masayoshi Mizuma 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 Content-Type: text/plain; charset="utf-8" From: Masayoshi Mizuma Enable disk option for the xml to hotplug disks. And disk option is also available for the disk to share the disk with multiple guests. For example: # cat disk.xml # # virsh attach-device Guest1 disk.xml Device attached successfully # # virsh attach-device Guest2 disk.xml Device attached successfully # Signed-off-by: Masayoshi Mizuma --- tools/virsh-domain.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/tools/virsh-domain.c b/tools/virsh-domain.c index a778421b66..7246260673 100644 --- a/tools/virsh-domain.c +++ b/tools/virsh-domain.c @@ -486,6 +486,10 @@ static const vshCmdOptDef opts_attach_disk[] =3D { .type =3D VSH_OT_STRING, .help =3D N_("host socket for source of disk device") }, + {.name =3D "transient", + .type =3D VSH_OT_BOOL, + .help =3D N_("mark the disk as transient") + }, VIRSH_COMMON_OPT_DOMAIN_PERSISTENT, VIRSH_COMMON_OPT_DOMAIN_CONFIG, VIRSH_COMMON_OPT_DOMAIN_LIVE, @@ -593,6 +597,7 @@ cmdAttachDisk(vshControl *ctl, const vshCmd *cmd) bool live =3D vshCommandOptBool(cmd, "live"); bool persistent =3D vshCommandOptBool(cmd, "persistent"); bool multifunction =3D vshCommandOptBool(cmd, "multifunction"); + bool transient =3D vshCommandOptBool(cmd, "transient"); =20 VSH_EXCLUSIVE_OPTIONS_VAR(persistent, current); =20 @@ -739,6 +744,9 @@ cmdAttachDisk(vshControl *ctl, const vshCmd *cmd) cmdAttachDiskFormatAddress(ctl, &diskChildBuf, straddr, target, mu= ltifunction) < 0) return false; =20 + if (transient) + virBufferAddLit(&diskChildBuf, "\n"); + virXMLFormatElement(&buf, "disk", &diskAttrBuf, &diskChildBuf); =20 xml =3D virBufferContentAndReset(&buf); --=20 2.27.0 From nobody Tue May 7 06:11:46 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) client-ip=170.10.133.124; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-124.mimecast.com; Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=fail(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1616633717; cv=none; d=zohomail.com; s=zohoarc; b=TozCpqeuQAFaJNZL/UvC78fsUDrwV/8k6QkWe6VyRPCYMb1VqCK6IavuC1i/xUDOmTieTN2a3m6GEKSB1Y8lfK6mz+rHuHkIprCb+7ofL7v28uZ6xf6AP6Q9ZEdN1Evxfc3SltxSCtAis6+vjcLtTaR1KN0xB+cWX5RzsU59owM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1616633717; 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=Y0FFRQEgtJ8kTxUFUJ6Rp2yHkRbnFnrSv4bFQDc8dkw=; b=kMVqVns5qymYz8u9GZDz9NezxdjkeomM8tqPH8W0kpwNhjNveMD83ectriUfh1w1y1sLX6X3m+7gA7i/tUg5d3W7rNRGYPFob7BvDq/FpZkLeRh7CTDJKYjkI6CePMo/zEgHYgZvXzXembPaOVn6bNIGXLc7A9ldDxju4mX06eQ= ARC-Authentication-Results: i=1; mx.zohomail.com; spf=pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by mx.zohomail.com with SMTPS id 1616633717576544.9550793011095; Wed, 24 Mar 2021 17:55:17 -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-160-aky4oQJCMhaT5EDp1RZ2Ow-1; Wed, 24 Mar 2021 20:55:14 -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 8135880006E; Thu, 25 Mar 2021 00:55:09 +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 0291019D80; Thu, 25 Mar 2021 00:55: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 2D0D54BB7B; Thu, 25 Mar 2021 00:55:05 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.rdu2.redhat.com [10.11.54.6]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id 12P0t3YE024564 for ; Wed, 24 Mar 2021 20:55:03 -0400 Received: by smtp.corp.redhat.com (Postfix) id 2EE4621CAC6E; Thu, 25 Mar 2021 00:55:03 +0000 (UTC) Received: from mimecast-mx02.redhat.com (mimecast01.extmail.prod.ext.rdu2.redhat.com [10.11.55.17]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 2280721CAC6D for ; Thu, 25 Mar 2021 00:55:03 +0000 (UTC) Received: from us-smtp-1.mimecast.com (us-smtp-1.mimecast.com [205.139.110.61]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 05E1A85A5B5 for ; Thu, 25 Mar 2021 00:55:03 +0000 (UTC) Received: from mail-qk1-f175.google.com (mail-qk1-f175.google.com [209.85.222.175]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-22--6yYazTWPu2x0qP8W2_5Jw-1; Wed, 24 Mar 2021 20:55:00 -0400 Received: by mail-qk1-f175.google.com with SMTP id y5so243002qkl.9 for ; Wed, 24 Mar 2021 17:55:00 -0700 (PDT) Received: from localhost (209-6-122-159.s2973.c3-0.arl-cbr1.sbo-arl.ma.cable.rcncustomer.com. [209.6.122.159]) by smtp.gmail.com with ESMTPSA id 85sm3129901qke.55.2021.03.24.17.54.59 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Wed, 24 Mar 2021 17:54:59 -0700 (PDT) X-MC-Unique: aky4oQJCMhaT5EDp1RZ2Ow-1 X-MC-Unique: -6yYazTWPu2x0qP8W2_5Jw-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=Y0FFRQEgtJ8kTxUFUJ6Rp2yHkRbnFnrSv4bFQDc8dkw=; b=aCVSEA4xOzAJs0D56olvBIv1YMpyEfa9aIUGhIeZbb5jAP4dcHDcOp0bvwSUdODpVg D4qOCZowtLY0jmmIK4hvfjBQvdtS5ABT53P9gxh8gzfzk3AIJ/T9mk87wyugXexpOeYr 6iDgy+9NtDhNxCGMz7BdrrYdSebm7XsgU290v9lYHGHm5M5pjDgmHpZ949hyIWuDljcG d4vqOtBBqusfyZmpIZN15xbp6IQltALZyqRhqcZo6ne8Li2xhAozs+ZJr4ecV9Gv+nwx NqUJ8bK2sUOmmO5Bc+h6CHOlkG9QgjyvjsZtOcfuuEl3GIxg9piASRWyCYntP//TLeMB 6Wug== X-Gm-Message-State: AOAM532x0qAvIBpaNeMe2MT1bi2u0kAgXZtxkFkJLTh08M5mgq1BM5CC /AFEI9moPJoPtHSfq0qGJSP5DMuwQQ== X-Google-Smtp-Source: ABdhPJxlrQNwOI4nPyAHs3L5khgjln8NW1irYURSIlVniBWxpwXIBhEHIRoIZoHW4NZNBnP5grsAZg== X-Received: by 2002:a37:4017:: with SMTP id n23mr5571068qka.338.1616633700149; Wed, 24 Mar 2021 17:55:00 -0700 (PDT) From: Masayoshi Mizuma To: libvir-list@redhat.com Subject: [PATCH 04/10] tests/qemuhotplugtest: Add qemu caps flags to the argument of DO_TEST Date: Wed, 24 Mar 2021 20:54:08 -0400 Message-Id: <20210325005414.275401-5-msys.mizuma@gmail.com> In-Reply-To: <20210325005414.275401-1-msys.mizuma@gmail.com> References: <20210325005414.275401-1-msys.mizuma@gmail.com> MIME-Version: 1.0 X-Mimecast-Impersonation-Protect: Policy=CLT - Impersonation Protection Definition; Similar Internal Domain=false; Similar Monitored External Domain=false; Custom External Domain=false; Mimecast External Domain=false; Newly Observed Domain=false; Internal User Name=false; Custom Display Name List=false; Reply-to Address Mismatch=false; Targeted Threat Dictionary=false; Mimecast Threat Dictionary=false; Custom Threat Dictionary=false X-Scanned-By: MIMEDefang 2.78 on 10.11.54.6 X-loop: libvir-list@redhat.com Cc: Masayoshi Mizuma , Masayoshi Mizuma 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 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 Content-Type: text/plain; charset="utf-8" From: Masayoshi Mizuma Add additional qemu cap flags to the argument of DO_TEST*() so that we can test with specific qemu caps, for example, QEMU_CAPS_BLOCKDEV. Signed-off-by: Masayoshi Mizuma --- tests/qemuhotplugtest.c | 133 +++++++++++++++++++++------------------- 1 file changed, 71 insertions(+), 62 deletions(-) diff --git a/tests/qemuhotplugtest.c b/tests/qemuhotplugtest.c index df5c9c9059..6750b33d51 100644 --- a/tests/qemuhotplugtest.c +++ b/tests/qemuhotplugtest.c @@ -31,6 +31,7 @@ #include "virstring.h" #include "virthread.h" #include "virfile.h" +#include "qemu/qemu_block.h" =20 #define VIR_FROM_THIS VIR_FROM_NONE =20 @@ -53,12 +54,14 @@ struct qemuHotplugTestData { bool keep; virDomainObjPtr vm; bool deviceDeletedEvent; + virQEMUCapsFlags flags; }; =20 static int qemuHotplugCreateObjects(virDomainXMLOptionPtr xmlopt, virDomainObjPtr *vm, - const char *domxml) + const char *domxml, + virQEMUCapsFlags additionalFlags) { qemuDomainObjPrivatePtr priv =3D NULL; const unsigned int parseFlags =3D 0; @@ -92,6 +95,9 @@ qemuHotplugCreateObjects(virDomainXMLOptionPtr xmlopt, virQEMUCapsSet(priv->qemuCaps, QEMU_CAPS_DEVICE_USB_KBD); virQEMUCapsSet(priv->qemuCaps, QEMU_CAPS_NETDEV_VHOST_VDPA); =20 + if (additionalFlags) + virQEMUCapsSet(priv->qemuCaps, additionalFlags); + if (qemuTestCapsCacheInsert(driver.qemuCapsCache, priv->qemuCaps) < 0) return -1; =20 @@ -253,6 +259,7 @@ testQemuHotplug(const void *data) g_autoptr(virCaps) caps =3D NULL; qemuMonitorTestPtr test_mon =3D NULL; qemuDomainObjPrivatePtr priv =3D NULL; + virQEMUCapsFlags additionalFlags =3D test->flags; =20 domain_filename =3D g_strdup_printf("%s/qemuhotplugtestdomains/qemuhot= plug-%s.xml", abs_srcdir, test->domain_filename); @@ -280,7 +287,8 @@ testQemuHotplug(const void *data) goto cleanup; } } else { - if (qemuHotplugCreateObjects(driver.xmlopt, &vm, domain_xml) < 0) + if (qemuHotplugCreateObjects(driver.xmlopt, &vm, + domain_xml, additionalFlags) < 0) goto cleanup; } =20 @@ -431,7 +439,7 @@ testQemuHotplugCpuPrepare(const char *test, if (virTestLoadFile(data->file_xml_dom, &data->xml_dom) < 0) goto error; =20 - if (qemuHotplugCreateObjects(driver.xmlopt, &data->vm, data->xml_dom) = < 0) + if (qemuHotplugCreateObjects(driver.xmlopt, &data->vm, data->xml_dom, = 0) < 0) goto error; =20 if (!(caps =3D virQEMUDriverGetCapabilities(&driver, false))) @@ -646,7 +654,7 @@ mymain(void) } =20 =20 -#define DO_TEST(file, ACTION, dev, fail_, keep_, ...) \ +#define DO_TEST(file, ACTION, dev, fail_, keep_, flags_, ...) \ do { \ const char *my_mon[] =3D { __VA_ARGS__, NULL}; \ const char *name =3D file " " #ACTION " " dev; \ @@ -656,19 +664,19 @@ mymain(void) data.fail =3D fail_; \ data.mon =3D my_mon; \ data.keep =3D keep_; \ + data.flags =3D flags_; \ if (virTestRun(name, testQemuHotplug, &data) < 0) \ ret =3D -1; \ } while (0) =20 -#define DO_TEST_ATTACH(file, dev, fail, keep, ...) \ - DO_TEST(file, ATTACH, dev, fail, keep, __VA_ARGS__) - -#define DO_TEST_DETACH(file, dev, fail, keep, ...) \ - DO_TEST(file, DETACH, dev, fail, keep, __VA_ARGS__) +#define DO_TEST_ATTACH(file, dev, fail, keep, flags, ...) \ + DO_TEST(file, ATTACH, dev, fail, keep, flags, __VA_ARGS__) =20 -#define DO_TEST_UPDATE(file, dev, fail, keep, ...) \ - DO_TEST(file, UPDATE, dev, fail, keep, __VA_ARGS__) +#define DO_TEST_DETACH(file, dev, fail, keep, flags, ...) \ + DO_TEST(file, DETACH, dev, fail, keep, flags, __VA_ARGS__) =20 +#define DO_TEST_UPDATE(file, dev, fail, keep, flags, ...) \ + DO_TEST(file, UPDATE, dev, fail, keep, flags, __VA_ARGS__) =20 #define QMP_OK "{\"return\": {}}" #define HMP(msg) "{\"return\": \"" msg "\"}" @@ -687,54 +695,55 @@ mymain(void) "}\r\n" =20 cfg->spiceTLS =3D true; - DO_TEST_UPDATE("graphics-spice", "graphics-spice-nochange", false, fal= se, NULL); - DO_TEST_UPDATE("graphics-spice-timeout", "graphics-spice-timeout-nocha= nge", false, false, + DO_TEST_UPDATE("graphics-spice", "graphics-spice-nochange", false, fal= se, 0, NULL); + DO_TEST_UPDATE("graphics-spice-timeout", "graphics-spice-timeout-nocha= nge", false, false, 0, "set_password", QMP_OK, "expire_password", QMP_OK); - DO_TEST_UPDATE("graphics-spice-timeout", "graphics-spice-timeout-passw= ord", false, false, + DO_TEST_UPDATE("graphics-spice-timeout", "graphics-spice-timeout-passw= ord", false, false, 0, "set_password", QMP_OK, "expire_password", QMP_OK); - DO_TEST_UPDATE("graphics-spice", "graphics-spice-listen", true, false,= NULL); - DO_TEST_UPDATE("graphics-spice-listen-network", "graphics-spice-listen= -network-password", false, false, + DO_TEST_UPDATE("graphics-spice", "graphics-spice-listen", true, false,= 0, NULL); + DO_TEST_UPDATE("graphics-spice-listen-network", "graphics-spice-listen= -network-password", + false, false, 0, "set_password", QMP_OK, "expire_password", QMP_OK); cfg->spiceTLS =3D false; /* Strange huh? Currently, only graphics can be updated :-P */ - DO_TEST_UPDATE("disk-cdrom", "disk-cdrom-nochange", true, false, NULL); + DO_TEST_UPDATE("disk-cdrom", "disk-cdrom-nochange", true, false, 0, NU= LL); =20 - DO_TEST_ATTACH("console-compat-2-live", "console-virtio", false, true, + DO_TEST_ATTACH("console-compat-2-live", "console-virtio", false, true,= 0, "chardev-add", "{\"return\": {\"pty\": \"/dev/pts/26\"}= }", "device_add", QMP_OK); =20 - DO_TEST_DETACH("console-compat-2-live", "console-virtio", false, false, + DO_TEST_DETACH("console-compat-2-live", "console-virtio", false, false= , 0, "device_del", QMP_DEVICE_DELETED("console1") QMP_OK, "chardev-remove", QMP_OK); =20 - DO_TEST_ATTACH("base-live", "disk-virtio", false, true, + DO_TEST_ATTACH("base-live", "disk-virtio", false, true, 0, "human-monitor-command", HMP("OK\\r\\n"), "device_add", QMP_OK); - DO_TEST_DETACH("base-live", "disk-virtio", true, true, + DO_TEST_DETACH("base-live", "disk-virtio", true, true, 0, "device_del", QMP_OK); - DO_TEST_DETACH("base-live", "disk-virtio", false, false, + DO_TEST_DETACH("base-live", "disk-virtio", false, false, 0, "device_del", QMP_DEVICE_DELETED("virtio-disk4") QMP_OK, "human-monitor-command", HMP("")); =20 - DO_TEST_ATTACH("base-live", "disk-usb", false, true, + DO_TEST_ATTACH("base-live", "disk-usb", false, true, 0, "human-monitor-command", HMP("OK\\r\\n"), "device_add", QMP_OK); - DO_TEST_DETACH("base-live", "disk-usb", true, true, + DO_TEST_DETACH("base-live", "disk-usb", true, true, 0, "device_del", QMP_OK); - DO_TEST_DETACH("base-live", "disk-usb", false, false, + DO_TEST_DETACH("base-live", "disk-usb", false, false, 0, "device_del", QMP_DEVICE_DELETED("usb-disk16") QMP_OK, "human-monitor-command", HMP("")); =20 - DO_TEST_ATTACH("base-live", "disk-scsi", false, true, + DO_TEST_ATTACH("base-live", "disk-scsi", false, true, 0, "human-monitor-command", HMP("OK\\r\\n"), "device_add", QMP_OK); - DO_TEST_DETACH("base-live", "disk-scsi", true, true, + DO_TEST_DETACH("base-live", "disk-scsi", true, true, 0, "device_del", QMP_OK); - DO_TEST_DETACH("base-live", "disk-scsi", false, false, + DO_TEST_DETACH("base-live", "disk-scsi", false, false, 0, "device_del", QMP_DEVICE_DELETED("scsi0-0-0-5") QMP_OK, "human-monitor-command", HMP("")); =20 - DO_TEST_ATTACH("base-without-scsi-controller-live", "disk-scsi-2", fal= se, true, + DO_TEST_ATTACH("base-without-scsi-controller-live", "disk-scsi-2", fal= se, true, 0, /* Four controllers added */ "device_add", QMP_OK, "device_add", QMP_OK, @@ -743,96 +752,96 @@ mymain(void) "human-monitor-command", HMP("OK\\r\\n"), /* Disk added */ "device_add", QMP_OK); - DO_TEST_DETACH("base-with-scsi-controller-live", "disk-scsi-2", true, = true, + DO_TEST_DETACH("base-with-scsi-controller-live", "disk-scsi-2", true, = true, 0, "device_del", QMP_OK); - DO_TEST_DETACH("base-with-scsi-controller-live", "disk-scsi-2", false,= false, + DO_TEST_DETACH("base-with-scsi-controller-live", "disk-scsi-2", false,= false, 0, "device_del", QMP_DEVICE_DELETED("scsi3-0-5-6") QMP_OK, "human-monitor-command", HMP("")); =20 - DO_TEST_ATTACH("base-live", "disk-scsi-multipath", false, true, + DO_TEST_ATTACH("base-live", "disk-scsi-multipath", false, true, 0, "object-add", QMP_OK, "human-monitor-command", HMP("OK\\r\\n"), "device_add", QMP_OK); - DO_TEST_DETACH("base-live", "disk-scsi-multipath", true, true, + DO_TEST_DETACH("base-live", "disk-scsi-multipath", true, true, 0, "device_del", QMP_OK); - DO_TEST_DETACH("base-live", "disk-scsi-multipath", false, false, + DO_TEST_DETACH("base-live", "disk-scsi-multipath", false, false, 0, "device_del", QMP_DEVICE_DELETED("scsi0-0-0-0") QMP_OK, "human-monitor-command", HMP(""), "object-del", QMP_OK); =20 - DO_TEST_ATTACH("base-live", "qemu-agent", false, true, + DO_TEST_ATTACH("base-live", "qemu-agent", false, true, 0, "chardev-add", QMP_OK, "device_add", QMP_OK); - DO_TEST_DETACH("base-live", "qemu-agent-detach", false, false, + DO_TEST_DETACH("base-live", "qemu-agent-detach", false, false, 0, "device_del", QMP_DEVICE_DELETED("channel0") QMP_OK, "chardev-remove", QMP_OK); =20 - DO_TEST_ATTACH("base-ccw-live", "ccw-virtio", false, true, + DO_TEST_ATTACH("base-ccw-live", "ccw-virtio", false, true, 0, "human-monitor-command", HMP("OK\\r\\n"), "device_add", QMP_OK); - DO_TEST_DETACH("base-ccw-live", "ccw-virtio", false, false, + DO_TEST_DETACH("base-ccw-live", "ccw-virtio", false, false, 0, "device_del", QMP_DEVICE_DELETED("virtio-disk4") QMP_OK, "human-monitor-command", HMP("")); =20 - DO_TEST_ATTACH("base-ccw-live-with-ccw-virtio", "ccw-virtio-2", false,= true, + DO_TEST_ATTACH("base-ccw-live-with-ccw-virtio", "ccw-virtio-2", false,= true, 0, "human-monitor-command", HMP("OK\\r\\n"), "device_add", QMP_OK); =20 - DO_TEST_DETACH("base-ccw-live-with-ccw-virtio", "ccw-virtio-2", false,= false, + DO_TEST_DETACH("base-ccw-live-with-ccw-virtio", "ccw-virtio-2", false,= false, 0, "device_del", QMP_DEVICE_DELETED("virtio-disk0") QMP_OK, "human-monitor-command", HMP("")); =20 - DO_TEST_ATTACH("base-ccw-live-with-ccw-virtio", "ccw-virtio-2-explicit= ", false, true, + DO_TEST_ATTACH("base-ccw-live-with-ccw-virtio", "ccw-virtio-2-explicit= ", false, true, 0, "human-monitor-command", HMP("OK\\r\\n"), "device_add", QMP_OK); =20 - DO_TEST_DETACH("base-ccw-live-with-ccw-virtio", "ccw-virtio-2-explicit= ", false, false, + DO_TEST_DETACH("base-ccw-live-with-ccw-virtio", "ccw-virtio-2-explicit= ", false, false, 0, "device_del", QMP_DEVICE_DELETED("virtio-disk0") QMP_OK, "human-monitor-command", HMP("")); =20 /* Attach a second device, then detach the first one. Then attach the = first one again. */ - DO_TEST_ATTACH("base-ccw-live-with-ccw-virtio", "ccw-virtio-2-explicit= ", false, true, + DO_TEST_ATTACH("base-ccw-live-with-ccw-virtio", "ccw-virtio-2-explicit= ", false, true, 0, "human-monitor-command", HMP("OK\\r\\n"), "device_add", QMP_OK); =20 - DO_TEST_DETACH("base-ccw-live-with-2-ccw-virtio", "ccw-virtio-1-explic= it", false, true, + DO_TEST_DETACH("base-ccw-live-with-2-ccw-virtio", "ccw-virtio-1-explic= it", false, true, 0, "device_del", QMP_DEVICE_DELETED("virtio-disk4") QMP_OK, "human-monitor-command", HMP("")); =20 - DO_TEST_ATTACH("base-ccw-live-with-2-ccw-virtio", "ccw-virtio-1-revers= e", false, false, + DO_TEST_ATTACH("base-ccw-live-with-2-ccw-virtio", "ccw-virtio-1-revers= e", false, false, 0, "human-monitor-command", HMP("OK\\r\\n"), "device_add", QMP_OK); =20 - DO_TEST_ATTACH("base-live", "ivshmem-plain", false, true, + DO_TEST_ATTACH("base-live", "ivshmem-plain", false, true, 0, "object-add", QMP_OK, "device_add", QMP_OK); - DO_TEST_ATTACH("base-live", "ivshmem-doorbell", false, true, + DO_TEST_ATTACH("base-live", "ivshmem-doorbell", false, true, 0, "chardev-add", QMP_OK, "device_add", QMP_OK); - DO_TEST_DETACH("base-live+ivshmem-plain", "ivshmem-doorbell-detach", f= alse, true, + DO_TEST_DETACH("base-live+ivshmem-plain", "ivshmem-doorbell-detach", f= alse, true, 0, "device_del", QMP_DEVICE_DELETED("shmem1") QMP_OK, "chardev-remove", QMP_OK); - DO_TEST_DETACH("base-live", "ivshmem-plain-detach", false, false, + DO_TEST_DETACH("base-live", "ivshmem-plain-detach", false, false, 0, "device_del", QMP_DEVICE_DELETED("shmem0") QMP_OK, "object-del", QMP_OK); DO_TEST_ATTACH("base-live+disk-scsi-wwn", - "disk-scsi-duplicate-wwn", false, false, + "disk-scsi-duplicate-wwn", false, false, 0, "human-monitor-command", HMP("OK\\r\\n"), "device_add", QMP_OK); =20 - DO_TEST_ATTACH("base-live", "hostdev-pci", false, true, + DO_TEST_ATTACH("base-live", "hostdev-pci", false, true, 0, "device_add", QMP_OK); - DO_TEST_DETACH("base-live", "hostdev-pci", false, false, + DO_TEST_DETACH("base-live", "hostdev-pci", false, false, 0, "device_del", QMP_DEVICE_DELETED("hostdev0") QMP_OK); - DO_TEST_ATTACH("pseries-base-live", "hostdev-pci", false, true, + DO_TEST_ATTACH("pseries-base-live", "hostdev-pci", false, true, 0, "device_add", QMP_OK); - DO_TEST_DETACH("pseries-base-live", "hostdev-pci", false, false, + DO_TEST_DETACH("pseries-base-live", "hostdev-pci", false, false, 0, "device_del", QMP_DEVICE_DELETED("hostdev0") QMP_OK); =20 - DO_TEST_ATTACH("base-live", "interface-vdpa", false, true, + DO_TEST_ATTACH("base-live", "interface-vdpa", false, true, 0, "add-fd", "{ \"return\": { \"fdset-id\": 1, \"fd\": 95 = }}", "netdev_add", QMP_OK, "device_add", QMP_OK); - DO_TEST_DETACH("base-live", "interface-vdpa", false, false, + DO_TEST_DETACH("base-live", "interface-vdpa", false, false, 0, "device_del", QMP_DEVICE_DELETED("net0") QMP_OK, "netdev_del", QMP_OK, "query-fdsets", @@ -840,22 +849,22 @@ mymain(void) "remove-fd", QMP_OK ); =20 - DO_TEST_ATTACH("base-live", "watchdog", false, true, + DO_TEST_ATTACH("base-live", "watchdog", false, true, 0, "watchdog-set-action", QMP_OK, "device_add", QMP_OK); - DO_TEST_DETACH("base-live", "watchdog-full", false, false, + DO_TEST_DETACH("base-live", "watchdog-full", false, false, 0, "device_del", QMP_DEVICE_DELETED("watchdog0") QMP_OK); =20 - DO_TEST_ATTACH("base-live", "watchdog-user-alias", false, true, + DO_TEST_ATTACH("base-live", "watchdog-user-alias", false, true, 0, "watchdog-set-action", QMP_OK, "device_add", QMP_OK); - DO_TEST_DETACH("base-live", "watchdog-user-alias-full", false, false, + DO_TEST_DETACH("base-live", "watchdog-user-alias-full", false, false, = 0, "device_del", QMP_DEVICE_DELETED("ua-UserWatchdog") QMP= _OK); =20 - DO_TEST_ATTACH("base-live", "guestfwd", false, true, + DO_TEST_ATTACH("base-live", "guestfwd", false, true, 0, "chardev-add", QMP_OK, "netdev_add", QMP_OK); - DO_TEST_DETACH("base-live", "guestfwd", false, false, + DO_TEST_DETACH("base-live", "guestfwd", false, false, 0, "netdev_del", QMP_OK); =20 #define DO_TEST_CPU_GROUP(prefix, vcpus, modernhp, expectfail) \ --=20 2.27.0 From nobody Tue May 7 06:11:46 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; spf=pass (zohomail.com: domain of redhat.com designates 216.205.24.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=fail(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1616633719; cv=none; d=zohomail.com; s=zohoarc; b=EP5dqAj2cmiiwy2YGt2uFrvrtpji5GC2fSrw2f+lL9V3OWeVEXG//yt8+UFUffOUfV1jkwNR0h/POUaC73aEMqGk4Ik3h1DCmaXiXk3xm3m6XnMFhNIbH2V44U0rTM2f3vrT6AVWU4m8tXHNWrMzpsJ5P3+qNw77nForzoqWPLY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1616633719; 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=8LBG51QU0op1EmUlUM3hGG30lwDXWdVjoNUvhg1R+TE=; b=I33dPHietfUS9LvuJVlxX/SlVtzvbRtfxILdQoXVsqTDaqd5uwd5ibeLxUnfgeEwyHDElmagteXuKYEjiMQHcJcfpdzsemP9S5Mg3T3fyRyJMjiveLHUSe2rnE2oA8AML65GDdqbfXJIY0PKF8gGbnb25OA/jxGt4zAndF1Ce94= ARC-Authentication-Results: i=1; mx.zohomail.com; spf=pass (zohomail.com: domain of redhat.com designates 216.205.24.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=fail 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 1616633719221686.0798523706051; Wed, 24 Mar 2021 17:55: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-535-n-im1EzbM-W6rL72OCljkw-1; Wed, 24 Mar 2021 20:55:15 -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 41037100E420; Thu, 25 Mar 2021 00:55:09 +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 ECB781037E80; Thu, 25 Mar 2021 00:55:08 +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 C12914A7C8; Thu, 25 Mar 2021 00:55:07 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.rdu2.redhat.com [10.11.54.3]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id 12P0t4Vm024578 for ; Wed, 24 Mar 2021 20:55:04 -0400 Received: by smtp.corp.redhat.com (Postfix) id 9CAF6101A817; Thu, 25 Mar 2021 00:55:04 +0000 (UTC) Received: from mimecast-mx02.redhat.com (mimecast03.extmail.prod.ext.rdu2.redhat.com [10.11.55.19]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 9878C101F0D2 for ; Thu, 25 Mar 2021 00:55:04 +0000 (UTC) Received: from us-smtp-1.mimecast.com (us-smtp-delivery-1.mimecast.com [207.211.31.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 8109F811E7A for ; Thu, 25 Mar 2021 00:55:04 +0000 (UTC) Received: from mail-qk1-f172.google.com (mail-qk1-f172.google.com [209.85.222.172]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-451-QF4w5u2TO9a4eTjo8BVrIw-1; Wed, 24 Mar 2021 20:55:02 -0400 Received: by mail-qk1-f172.google.com with SMTP id g20so282484qkk.1 for ; Wed, 24 Mar 2021 17:55:01 -0700 (PDT) Received: from localhost (209-6-122-159.s2973.c3-0.arl-cbr1.sbo-arl.ma.cable.rcncustomer.com. [209.6.122.159]) by smtp.gmail.com with ESMTPSA id f8sm3027242qkk.23.2021.03.24.17.55.00 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Wed, 24 Mar 2021 17:55:01 -0700 (PDT) X-MC-Unique: n-im1EzbM-W6rL72OCljkw-1 X-MC-Unique: QF4w5u2TO9a4eTjo8BVrIw-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=8LBG51QU0op1EmUlUM3hGG30lwDXWdVjoNUvhg1R+TE=; b=BPdIghvap5KUUjqWCKUok5xk7GQav2Dhl/+Y5mAWwgd5sAtSy/7/uFieYu/Kmu5Bol agPag+GcxW0g4lRz5Ma244Q/W2SpDYXeYFL93ykzFYZlaDTpqnQ7MjCOB6rnHqLHjQs0 jGbnl8ep1GSSWzxSVD5hoD0FiCw8+Uwp+ceyjO+bqc/v/wW6QUeHkQ7y4eF3ixxpAKE1 tFUYiTXN2rGmQfxZ4JDDJf/UBxC1zTWCVGfgzWXWpFzgRylCoIjmuot3TzHsfPlI/HxQ GJTWu5jxPVe9KnC1qN/hTkxWZKNml+9rzmqINZc1DU9yJsueqPqcP5mrovKHKNz30HRp 8W9w== X-Gm-Message-State: AOAM5310qNnOPwmpwbqVf+LXj/pIyLHVivqNp5zzE9KOAH4DbIErM26L NVgvryzL3J2qbe2KX7P+I7tolBOeCQ== X-Google-Smtp-Source: ABdhPJy+4I62uHvVH3oad2kPiDEbeKoaUTAQnC/L9iwUp+der4dJY82UWRTc/jN60ENlIX4aeItk1A== X-Received: by 2002:a05:620a:6a9:: with SMTP id i9mr5776444qkh.344.1616633701279; Wed, 24 Mar 2021 17:55:01 -0700 (PDT) From: Masayoshi Mizuma To: libvir-list@redhat.com Subject: [PATCH 05/10] tests/qemumonitortestutils: Add JobStatusChange to update progress of blockdev-create Date: Wed, 24 Mar 2021 20:54:09 -0400 Message-Id: <20210325005414.275401-6-msys.mizuma@gmail.com> In-Reply-To: <20210325005414.275401-1-msys.mizuma@gmail.com> References: <20210325005414.275401-1-msys.mizuma@gmail.com> MIME-Version: 1.0 X-Mimecast-Impersonation-Protect: Policy=CLT - Impersonation Protection Definition; Similar Internal Domain=false; Similar Monitored External Domain=false; Custom External Domain=false; Mimecast External Domain=false; Newly Observed Domain=false; Internal User Name=false; Custom Display Name List=false; Reply-to Address Mismatch=false; Targeted Threat Dictionary=false; Mimecast Threat Dictionary=false; Custom Threat Dictionary=false X-Scanned-By: MIMEDefang 2.78 on 10.11.54.3 X-loop: libvir-list@redhat.com Cc: Masayoshi Mizuma , Masayoshi Mizuma 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 Content-Type: text/plain; charset="utf-8" From: Masayoshi Mizuma Add qemuProcessHandleJobStatusChange to .jobStatusChange handler to update the progress of blockdev-create. Signed-off-by: Masayoshi Mizuma --- src/qemu/qemu_process.c | 2 +- src/qemu/qemu_process.h | 7 +++++++ tests/qemumonitortestutils.c | 22 +++++++++++++++++++++- 3 files changed, 29 insertions(+), 2 deletions(-) diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c index fedd1f56b1..4ba634dfc5 100644 --- a/src/qemu/qemu_process.c +++ b/src/qemu/qemu_process.c @@ -992,7 +992,7 @@ qemuProcessHandleBlockJob(qemuMonitorPtr mon G_GNUC_UNU= SED, } =20 =20 -static int +int qemuProcessHandleJobStatusChange(qemuMonitorPtr mon G_GNUC_UNUSED, virDomainObjPtr vm, const char *jobname, diff --git a/src/qemu/qemu_process.h b/src/qemu/qemu_process.h index f4feeaa68f..579564a905 100644 --- a/src/qemu/qemu_process.h +++ b/src/qemu/qemu_process.h @@ -244,3 +244,10 @@ void qemuProcessQMPFree(qemuProcessQMPPtr proc); G_DEFINE_AUTOPTR_CLEANUP_FUNC(qemuProcessQMP, qemuProcessQMPFree); =20 int qemuProcessQMPStart(qemuProcessQMPPtr proc); + +int +qemuProcessHandleJobStatusChange(qemuMonitorPtr mon, + virDomainObjPtr vm, + const char *jobname, + int status, + void *opaque); diff --git a/tests/qemumonitortestutils.c b/tests/qemumonitortestutils.c index 227b78d527..98fc5a9e9b 100644 --- a/tests/qemumonitortestutils.c +++ b/tests/qemumonitortestutils.c @@ -37,6 +37,7 @@ #include "virerror.h" #include "virstring.h" #include "vireventthread.h" +#include "qemu/qemu_process.h" =20 #define VIR_FROM_THIS VIR_FROM_NONE =20 @@ -575,6 +576,18 @@ qemuMonitorTestProcessCommandDefaultValidate(qemuMonit= orTestPtr test, return 0; } =20 +#define QEMU_BLOCKDEV_CREATE_CONCLUDED(id) \ + "{"\ + " \"timestamp\": {"\ + " \"seconds\": 1616361602,"\ + " \"microseconds\": 893848"\ + " },"\ + " \"event\": \"JOB_STATUS_CHANGE\","\ + " \"data\": {"\ + " \"status\": \"concluded\","\ + " \"id\": \"" id "\""\ + " }"\ + "}" =20 static int qemuMonitorTestProcessCommandDefault(qemuMonitorTestPtr test, @@ -585,6 +598,7 @@ qemuMonitorTestProcessCommandDefault(qemuMonitorTestPtr= test, g_autoptr(virJSONValue) val =3D NULL; virJSONValuePtr cmdargs =3D NULL; const char *cmdname; + int ret; =20 if (!(val =3D virJSONValueFromString(cmdstr))) return -1; @@ -602,7 +616,12 @@ qemuMonitorTestProcessCommandDefault(qemuMonitorTestPt= r test, qemuMonitorTestErrorInvalidCommand(data->command_name, cmdname); return -1; } else { - return qemuMonitorTestAddResponse(test, data->response); + ret =3D qemuMonitorTestAddResponse(test, data->response); + if (data->command_name && STREQ(data->command_name, "blockdev-crea= te")) { + qemuMonitorTestAddResponse(test, + QEMU_BLOCKDEV_CREATE_CONCLUDED("create-libvirt-1-form= at")); + } + return ret; } } =20 @@ -995,6 +1014,7 @@ qemuMonitorTestErrorNotify(qemuMonitorPtr mon G_GNUC_U= NUSED, static qemuMonitorCallbacks qemuMonitorTestCallbacks =3D { .eofNotify =3D qemuMonitorTestEOFNotify, .errorNotify =3D qemuMonitorTestErrorNotify, + .jobStatusChange =3D qemuProcessHandleJobStatusChange, .domainDeviceDeleted =3D qemuProcessHandleDeviceDeleted, }; =20 --=20 2.27.0 From nobody Tue May 7 06:11:46 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; spf=pass (zohomail.com: domain of redhat.com designates 216.205.24.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=fail(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1616633742; cv=none; d=zohomail.com; s=zohoarc; b=PJQUuIel1ayflyxdzH8ttNhkKp6X+okqZNOc+nHf7aZUXU5Imky4bLQqubtt0XZPR7kuFJx0FXDZSAD53G+HpNtryGLFwoGJrIqUThGwVKwC4h99lWVkbKASfW+yX5pwR2L40L/fkXAabhKb5Rt6mYw+FzT4pkGcY1TUpxBcRNA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1616633742; 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=LJ+OdNlcctoDzUtsqOuTlnE7HKDiRlObNCmnHyU51bI=; b=nt52KrS88NWZd8ClVZUcH9LKsoFAvLghyNe2Zw3yJgxxp05uxfrXYuyn5rrG+N2FMTyh2WBeZcITnbH3ExC2bFuGIIx9e8ODPq/TxUxp/o2w1BzrwMOLLIqzUekyS9lzeqFNSOcFevXz/4f5WTMDNjvU3y8zwkxwHxBUCrXKklI= ARC-Authentication-Results: i=1; mx.zohomail.com; spf=pass (zohomail.com: domain of redhat.com designates 216.205.24.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=fail 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 1616633742104850.6864298757209; Wed, 24 Mar 2021 17:55:42 -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-579-7-Vna2OhMjCmzt6Ql3eoCQ-1; Wed, 24 Mar 2021 20:55:38 -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 6DC2C807904; Thu, 25 Mar 2021 00:55:30 +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 46FB818174; Thu, 25 Mar 2021 00:55:30 +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 01F24180C5A5; Thu, 25 Mar 2021 00:55:30 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.rdu2.redhat.com [10.11.54.3]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id 12P0t5eb024583 for ; Wed, 24 Mar 2021 20:55:05 -0400 Received: by smtp.corp.redhat.com (Postfix) id 791AC10F1CC0; Thu, 25 Mar 2021 00:55:05 +0000 (UTC) Received: from mimecast-mx02.redhat.com (mimecast06.extmail.prod.ext.rdu2.redhat.com [10.11.55.22]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 7520510F1CBE for ; Thu, 25 Mar 2021 00:55:05 +0000 (UTC) Received: from us-smtp-1.mimecast.com (us-smtp-1.mimecast.com [205.139.110.61]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 5AD31185A7B4 for ; Thu, 25 Mar 2021 00:55:05 +0000 (UTC) Received: from mail-qt1-f174.google.com (mail-qt1-f174.google.com [209.85.160.174]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-282-GZaC2P7XN0O9xoJFyDgmDg-1; Wed, 24 Mar 2021 20:55:03 -0400 Received: by mail-qt1-f174.google.com with SMTP id x9so529724qto.8 for ; Wed, 24 Mar 2021 17:55:03 -0700 (PDT) Received: from localhost (209-6-122-159.s2973.c3-0.arl-cbr1.sbo-arl.ma.cable.rcncustomer.com. [209.6.122.159]) by smtp.gmail.com with ESMTPSA id b12sm2647198qti.43.2021.03.24.17.55.02 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Wed, 24 Mar 2021 17:55:02 -0700 (PDT) X-MC-Unique: 7-Vna2OhMjCmzt6Ql3eoCQ-1 X-MC-Unique: GZaC2P7XN0O9xoJFyDgmDg-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=LJ+OdNlcctoDzUtsqOuTlnE7HKDiRlObNCmnHyU51bI=; b=rb4QR8lPjOJdMq4gsUX34Mj0G0UI66nMnjY3S0Y+qTauH+FOjXPadyvp56qaGQdDOh Q29T1nZfsM9rOx84WlIqYg/jDu+L/wEKyzsQ/X9WrAy4Vzs71DoJGHReekLFGUaGUesA aFgYPU85MvuQmv20G35Kt9VAZtNuUvmUOAH/AFus3sr6zf/VkKu0vzrh9C3IhfUZ4ffc 8UKf02tacutxtALF3tATr9rbb+Uc2vgp0fgdeGFyTEZNkXgEGe5TzO+CvyXg/WNxiXmo gh+H14kQtkxAGG6i9W3wsnsmzDrcU304OP5ooSzha1UxcNPgfCLSZz1W9lBN1N2jcoR0 mVSA== X-Gm-Message-State: AOAM532W/FNGcsJdKDsVaIvZP6orZSbISzcXrqs8TtZk7Jd0unCfdjWd gXS+yl8AU5XGqfaXLHXdgWw4pIQ2gg== X-Google-Smtp-Source: ABdhPJyCHpPsVEVcIRebcHB2hAGjlHNunwBwi36Cy0O3erKK8/7hOF4AOJw22ES2hhvJA876hxH49Q== X-Received: by 2002:ac8:12c1:: with SMTP id b1mr5698126qtj.8.1616633702682; Wed, 24 Mar 2021 17:55:02 -0700 (PDT) From: Masayoshi Mizuma To: libvir-list@redhat.com Subject: [PATCH 06/10] tests/qemuhotplugtest: Add transient disk hotplug test Date: Wed, 24 Mar 2021 20:54:10 -0400 Message-Id: <20210325005414.275401-7-msys.mizuma@gmail.com> In-Reply-To: <20210325005414.275401-1-msys.mizuma@gmail.com> References: <20210325005414.275401-1-msys.mizuma@gmail.com> MIME-Version: 1.0 X-Mimecast-Impersonation-Protect: Policy=CLT - Impersonation Protection Definition; Similar Internal Domain=false; Similar Monitored External Domain=false; Custom External Domain=false; Mimecast External Domain=false; Newly Observed Domain=false; Internal User Name=false; Custom Display Name List=false; Reply-to Address Mismatch=false; Targeted Threat Dictionary=false; Mimecast Threat Dictionary=false; Custom Threat Dictionary=false X-Scanned-By: MIMEDefang 2.78 on 10.11.54.3 X-loop: libvir-list@redhat.com Cc: Masayoshi Mizuma , Masayoshi Mizuma 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 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 Content-Type: text/plain; charset="utf-8" From: Masayoshi Mizuma Add disk hotplug test for disk option. The tests check virtio and scsi bus disk hotplug. Signed-off-by: Masayoshi Mizuma --- tests/qemuhotplugtest.c | 66 +++++++++++++++++++ .../qemuhotplug-disk-scsi-transient.xml | 7 ++ .../qemuhotplug-disk-virtio-transient.xml | 7 ++ ...lug-transient-live+disk-scsi-transient.xml | 65 ++++++++++++++++++ ...g-transient-live+disk-virtio-transient.xml | 65 ++++++++++++++++++ .../qemuhotplug-transient-live.xml | 51 ++++++++++++++ 6 files changed, 261 insertions(+) create mode 100644 tests/qemuhotplugtestdevices/qemuhotplug-disk-scsi-tran= sient.xml create mode 100644 tests/qemuhotplugtestdevices/qemuhotplug-disk-virtio-tr= ansient.xml create mode 100644 tests/qemuhotplugtestdomains/qemuhotplug-transient-live= +disk-scsi-transient.xml create mode 100644 tests/qemuhotplugtestdomains/qemuhotplug-transient-live= +disk-virtio-transient.xml create mode 100644 tests/qemuhotplugtestdomains/qemuhotplug-transient-live= .xml diff --git a/tests/qemuhotplugtest.c b/tests/qemuhotplugtest.c index 6750b33d51..0668a11da5 100644 --- a/tests/qemuhotplugtest.c +++ b/tests/qemuhotplugtest.c @@ -694,6 +694,18 @@ mymain(void) " }" \ "}\r\n" =20 + +#define QMP_JOB_CONCLUDED(id) \ + "{"\ + " \"return\": [{"\ + " \"current-progress\": 1,"\ + " \"status\": \"concluded\","\ + " \"total-progress\": 1,"\ + " \"type\": \"create\","\ + " \"id\": \"" id "\""\ + " }]"\ + "}" + cfg->spiceTLS =3D true; DO_TEST_UPDATE("graphics-spice", "graphics-spice-nochange", false, fal= se, 0, NULL); DO_TEST_UPDATE("graphics-spice-timeout", "graphics-spice-timeout-nocha= nge", false, false, 0, @@ -867,6 +879,60 @@ mymain(void) DO_TEST_DETACH("base-live", "guestfwd", false, false, 0, "netdev_del", QMP_OK); =20 + DO_TEST_ATTACH("transient-live", "disk-virtio-transient", false, true, + QEMU_CAPS_BLOCKDEV, + "blockdev-add", QMP_OK, + "blockdev-create", QMP_OK, + "query-jobs", QMP_JOB_CONCLUDED("create-libvirt-1-forma= t"), + "job-dismiss", QMP_OK, + "blockdev-add", QMP_OK, + "blockdev-del", QMP_OK, + "blockdev-del", QMP_OK, + "blockdev-add", QMP_OK, + "blockdev-add", QMP_OK, + "blockdev-add", QMP_OK, + "blockdev-add", QMP_OK, + "device_add", QMP_OK); + + DO_TEST_DETACH("transient-live", "disk-virtio-transient", true, true, + QEMU_CAPS_BLOCKDEV, + "device_del", QMP_OK); + + DO_TEST_DETACH("transient-live", "disk-virtio-transient", false, false, + QEMU_CAPS_BLOCKDEV, + "device_del", QMP_DEVICE_DELETED("virtio-disk4") QMP_OK, + "blockdev-del", QMP_OK, + "blockdev-del", QMP_OK, + "blockdev-del", QMP_OK, + "blockdev-del", QMP_OK); + + DO_TEST_ATTACH("transient-live", "disk-scsi-transient", false, true, + QEMU_CAPS_BLOCKDEV, + "blockdev-add", QMP_OK, + "blockdev-create", QMP_OK, + "query-jobs", QMP_JOB_CONCLUDED("create-libvirt-1-forma= t"), + "job-dismiss", QMP_OK, + "blockdev-add", QMP_OK, + "blockdev-del", QMP_OK, + "blockdev-del", QMP_OK, + "blockdev-add", QMP_OK, + "blockdev-add", QMP_OK, + "blockdev-add", QMP_OK, + "blockdev-add", QMP_OK, + "device_add", QMP_OK); + + DO_TEST_DETACH("transient-live", "disk-scsi-transient", true, true, + QEMU_CAPS_BLOCKDEV, + "device_del", QMP_OK); + + DO_TEST_DETACH("transient-live", "disk-scsi-transient", false, false, + QEMU_CAPS_BLOCKDEV, + "device_del", QMP_DEVICE_DELETED("scsi0-0-0-5") QMP_OK, + "blockdev-del", QMP_OK, + "blockdev-del", QMP_OK, + "blockdev-del", QMP_OK, + "blockdev-del", QMP_OK); + #define DO_TEST_CPU_GROUP(prefix, vcpus, modernhp, expectfail) \ do { \ cpudata.test =3D prefix; \ diff --git a/tests/qemuhotplugtestdevices/qemuhotplug-disk-scsi-transient.x= ml b/tests/qemuhotplugtestdevices/qemuhotplug-disk-scsi-transient.xml new file mode 100644 index 0000000000..5ef2a63016 --- /dev/null +++ b/tests/qemuhotplugtestdevices/qemuhotplug-disk-scsi-transient.xml @@ -0,0 +1,7 @@ + + + + + + + diff --git a/tests/qemuhotplugtestdevices/qemuhotplug-disk-virtio-transient= .xml b/tests/qemuhotplugtestdevices/qemuhotplug-disk-virtio-transient.xml new file mode 100644 index 0000000000..76be133d84 --- /dev/null +++ b/tests/qemuhotplugtestdevices/qemuhotplug-disk-virtio-transient.xml @@ -0,0 +1,7 @@ + + + + + + + diff --git a/tests/qemuhotplugtestdomains/qemuhotplug-transient-live+disk-s= csi-transient.xml b/tests/qemuhotplugtestdomains/qemuhotplug-transient-live= +disk-scsi-transient.xml new file mode 100644 index 0000000000..a007dc992e --- /dev/null +++ b/tests/qemuhotplugtestdomains/qemuhotplug-transient-live+disk-scsi-tra= nsient.xml @@ -0,0 +1,65 @@ + + hotplug + d091ea82-29e6-2e34-3005-f02617b36e87 + 4194304 + 4194304 + 4 + + hvm + + + + + + + + + destroy + restart + restart + + /usr/bin/qemu-system-x86_64 + + + + + + + + + + + + +
+ + + +
+ + + +
+ + + +
+ + + + + + +
+ + + + + + + +