From nobody Thu May 15 21:40:12 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) client-ip=209.132.183.28; envelope-from=libvir-list-bounces@redhat.com; helo=mx1.redhat.com; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1508873777920742.4421909370205; Tue, 24 Oct 2017 12:36:17 -0700 (PDT) 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 mx1.redhat.com (Postfix) with ESMTPS id 6A1A568AB; Tue, 24 Oct 2017 19:36:16 +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 3D21C17AF6; Tue, 24 Oct 2017 19:36:16 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id CDF7B1805967; Tue, 24 Oct 2017 19:36:13 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id v9OJZpVm009783 for ; Tue, 24 Oct 2017 15:35:51 -0400 Received: by smtp.corp.redhat.com (Postfix) id 49BEC6031E; Tue, 24 Oct 2017 19:35:51 +0000 (UTC) Received: from mx1.redhat.com (ext-mx10.extmail.prod.ext.phx2.redhat.com [10.5.110.39]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 447D16017B for ; Tue, 24 Oct 2017 19:35:51 +0000 (UTC) Received: from mail-qk0-f195.google.com (mail-qk0-f195.google.com [209.85.220.195]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id C39FE5F7AC for ; Tue, 24 Oct 2017 19:35:47 +0000 (UTC) Received: by mail-qk0-f195.google.com with SMTP id l194so27726882qke.13 for ; Tue, 24 Oct 2017 12:35:47 -0700 (PDT) Received: from dawid-fedora.datto.lan ([47.19.105.250]) by smtp.gmail.com with ESMTPSA id f66sm683127qkc.25.2017.10.24.12.35.46 for (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Tue, 24 Oct 2017 12:35:46 -0700 (PDT) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com 6A1A568AB Authentication-Results: ext-mx09.extmail.prod.ext.phx2.redhat.com; dmarc=fail (p=none dis=none) header.from=datto.com Authentication-Results: ext-mx09.extmail.prod.ext.phx2.redhat.com; spf=fail smtp.mailfrom=libvir-list-bounces@redhat.com DKIM-Filter: OpenDKIM Filter v2.11.0 mx1.redhat.com 6A1A568AB Authentication-Results: mx1.redhat.com; dkim=fail reason="signature verification failed" (2048-bit key) header.d=datto-com.20150623.gappssmtp.com header.i=@datto-com.20150623.gappssmtp.com header.b="IXmyBjm9" DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com C39FE5F7AC Authentication-Results: ext-mx10.extmail.prod.ext.phx2.redhat.com; dmarc=pass (p=none dis=none) header.from=datto.com Authentication-Results: ext-mx10.extmail.prod.ext.phx2.redhat.com; spf=pass smtp.mailfrom=dzamirski@datto.com DKIM-Filter: OpenDKIM Filter v2.11.0 mx1.redhat.com C39FE5F7AC DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=datto-com.20150623.gappssmtp.com; s=20150623; h=from:to:subject:date:message-id:in-reply-to:references; bh=a/sh+Zl8GeT4H6CQzSYXxrklrvPBzxvm29teO4N8GTE=; b=IXmyBjm9VnENm0auM9RReimHbqOLnZu/oHFFKnFfMELgDpNlY99LcLqAx3vbjMVA0A lbccwem4bM0UYLqrKM0EXC2M2Geg3ax8TExm5ppo64evBrzEGevygcfMNsdAtO+e5Hoz KckMiUhvFHi5fBgZThjid9+wpf96ZAaktSO4U8Zw/AFGQrpX0/76QUL3kq8M2HB40vsR SD+j0UIZ9JFSSAAsd/YAmChtPYx9tTmAEYM5fTzheEX4Lq87blaSXmUYHLud/yl3iQZe N3BIArB+g3JnZOaUi/IVoYQO/F/pY8Tku6DJ0wcP4ZNYlhf4sWdJWEiEPyiIDjjuh2BX xzlA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references; bh=a/sh+Zl8GeT4H6CQzSYXxrklrvPBzxvm29teO4N8GTE=; b=Muktr2GuhosXxelRMJGQOC89ps/JJXXQf4aSfPeu50HMt72Woq9GnfTczuC7+4iGKP p8ojxFJ/YwRQfSow/1RPfbaSUqCx+f1isiJeSeLhzC8E7KmnYy0kPOI26wOQuVrNDWng sNWQFe+Rg6B/0JcyOOGaPNzgkLOWw6DOtbgg7eTSyi45BqwHnDev6RpFZkg343D+Sag2 2k/4LPFl4WowIDB7OEfLNW0BYpthdFAfGI2pb9OkhiAP40QQDqVeOPwB/0tMlj73SPMB fqtQv8CV3luJEsccWEK3XBk1zeBUUSJES3+wvnHMAwidKkcw9xUJptpirflfVIcxWpJq X3Zw== X-Gm-Message-State: AMCzsaUEod0eN5s+bKwszh89hrIP4qWQPPxfSaAIVY2plOEM7KrmqYto +fTVrX4+GPY5q5VcVnlKZhnUAIR7nSQ= X-Google-Smtp-Source: ABhQp+RauRVtL0Wa9/CH/TCujBMdQrSKEsNQc6UwqJe6oTkIlB/D6cnL7PcIJNq9oHViHSTTpSRBdQ== X-Received: by 10.55.158.78 with SMTP id h75mr23962905qke.355.1508873746822; Tue, 24 Oct 2017 12:35:46 -0700 (PDT) From: Dawid Zamirski To: libvir-list@redhat.com Date: Tue, 24 Oct 2017 15:35:38 -0400 Message-Id: <20171024193538.9078-16-dzamirski@datto.com> In-Reply-To: <20171024193538.9078-1-dzamirski@datto.com> References: <20171024193538.9078-1-dzamirski@datto.com> X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.39]); Tue, 24 Oct 2017 19:35:48 +0000 (UTC) X-Greylist: inspected by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.39]); Tue, 24 Oct 2017 19:35:48 +0000 (UTC) for IP:'209.85.220.195' DOMAIN:'mail-qk0-f195.google.com' HELO:'mail-qk0-f195.google.com' FROM:'dzamirski@datto.com' RCPT:'' X-RedHat-Spam-Score: 0.469 (DKIM_SIGNED, DKIM_VALID, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H3, RCVD_IN_MSPIKE_WL, RCVD_IN_SORBS_SPAM, SPF_PASS) 209.85.220.195 mail-qk0-f195.google.com 209.85.220.195 mail-qk0-f195.google.com X-Scanned-By: MIMEDefang 2.78 on 10.5.110.39 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 X-loop: libvir-list@redhat.com Subject: [libvirt] [PATCH v2 15/15] vbox: Generate disk address element in dumpxml 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: , MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.16 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.38]); Tue, 24 Oct 2017 19:36:16 +0000 (UTC) X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" This patch adds
element to each device since device names alone won't adequately reflect the storage device layout in the VM. With this patch, the ouput produced by dumpxml will faithfully reproduce the storage layout of the VM if used with define. --- src/vbox/vbox_common.c | 79 +++++++++++++++++++++++++++++++++++++++++++---= ---- 1 file changed, 68 insertions(+), 11 deletions(-) diff --git a/src/vbox/vbox_common.c b/src/vbox/vbox_common.c index d1d8804c7..95d35631f 100644 --- a/src/vbox/vbox_common.c +++ b/src/vbox/vbox_common.c @@ -3211,8 +3211,9 @@ vboxDumpDisks(virDomainDefPtr def, vboxDriverPtr data= , IMachine *machine) PRBool readOnly; nsresult rc; virDomainDiskDefPtr disk =3D NULL; + virDomainControllerDefPtr ctrl =3D NULL; char *mediumLocUtf8 =3D NULL; - size_t sdCount =3D 0, i; + size_t sdCount =3D 0, i, j; int ret =3D -1; =20 def->ndisks =3D 0; @@ -3353,26 +3354,83 @@ vboxDumpDisks(virDomainDefPtr def, vboxDriverPtr da= ta, IMachine *machine) goto cleanup; } =20 - if (storageBus =3D=3D StorageBus_IDE) { + disk->info.type =3D VIR_DOMAIN_DEVICE_ADDRESS_TYPE_DRIVE; + disk->info.addr.drive.bus =3D 0; + disk->info.addr.drive.unit =3D devicePort; + + switch ((enum StorageBus) storageBus) { + case StorageBus_IDE: disk->bus =3D VIR_DOMAIN_DISK_BUS_IDE; - } else if (storageBus =3D=3D StorageBus_SATA) { - sdCount++; + disk->info.addr.drive.bus =3D devicePort; /* primary, secondar= y */ + disk->info.addr.drive.unit =3D deviceSlot; /* master, slave */ + + break; + case StorageBus_SATA: disk->bus =3D VIR_DOMAIN_DISK_BUS_SATA; - } else if (storageBus =3D=3D StorageBus_SCSI || - storageBus =3D=3D StorageBus_SAS) { sdCount++; + + break; + case StorageBus_SCSI: + case StorageBus_SAS: disk->bus =3D VIR_DOMAIN_DISK_BUS_SCSI; - } else if (storageBus =3D=3D StorageBus_Floppy) { + sdCount++; + + /* In vbox, if there's a disk attached to SAS controller, ther= e will + * be libvirt SCSI controller present with model "lsi1068", an= d we + * need to find its index + */ + for (j =3D 0; j < def->ncontrollers; j++) { + ctrl =3D def->controllers[j]; + + if (ctrl->type !=3D VIR_DOMAIN_CONTROLLER_TYPE_SCSI) + continue; + + if (storageBus =3D=3D StorageBus_SAS && + ctrl->model =3D=3D VIR_DOMAIN_CONTROLLER_MODEL_SCSI_LS= ISAS1068) { + disk->info.addr.drive.controller =3D ctrl->idx; + break; + } + + if (storageBus =3D=3D StorageBus_SCSI && + ctrl->model !=3D VIR_DOMAIN_CONTROLLER_MODEL_SCSI_LSIS= AS1068) { + disk->info.addr.drive.controller =3D ctrl->idx; + break; + } + } + + break; + case StorageBus_Floppy: disk->bus =3D VIR_DOMAIN_DISK_BUS_FDC; + + break; + case StorageBus_Null: + virReportError(VIR_ERR_INTERNAL_ERROR, "%s", + _("Unsupported null storage bus")); + goto cleanup; } =20 - if (deviceType =3D=3D DeviceType_HardDisk) + switch ((enum DeviceType) deviceType) { + case DeviceType_HardDisk: disk->device =3D VIR_DOMAIN_DISK_DEVICE_DISK; - else if (deviceType =3D=3D DeviceType_Floppy) + + break; + case DeviceType_Floppy: disk->device =3D VIR_DOMAIN_DISK_DEVICE_FLOPPY; - else if (deviceType =3D=3D DeviceType_DVD) + + break; + case DeviceType_DVD: disk->device =3D VIR_DOMAIN_DISK_DEVICE_CDROM; =20 + break; + case DeviceType_Network: + case DeviceType_USB: + case DeviceType_SharedFolder: + case DeviceType_Null: + virReportError(VIR_ERR_INTERNAL_ERROR, + _("Unsupported vbox device type: %d"), deviceTy= pe); + goto cleanup; + } + if (readOnly =3D=3D PR_TRUE) disk->src->readonly =3D true; =20 @@ -4098,7 +4156,6 @@ static char *vboxDomainGetXMLDesc(virDomainPtr dom, u= nsigned int flags) goto cleanup; if (vboxDumpStorageControllers(def, machine) < 0) goto cleanup; - if (vboxDumpDisks(def, data, machine) < 0) goto cleanup; =20 --=20 2.14.2 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list