From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [212.224.123.68]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by lists.proxmox.com (Postfix) with ESMTPS id 147639D1B1 for ; Wed, 25 Oct 2023 14:37:48 +0200 (CEST) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id E581013C4B for ; Wed, 25 Oct 2023 14:37:47 +0200 (CEST) Received: from proxmox-new.maurer-it.com (proxmox-new.maurer-it.com [94.136.29.106]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by firstgate.proxmox.com (Proxmox) with ESMTPS for ; Wed, 25 Oct 2023 14:37:47 +0200 (CEST) Received: from proxmox-new.maurer-it.com (localhost.localdomain [127.0.0.1]) by proxmox-new.maurer-it.com (Proxmox) with ESMTP id DF60145EE1 for ; Wed, 25 Oct 2023 14:37:46 +0200 (CEST) From: Hannes Duerr To: pve-devel@lists.proxmox.com Date: Wed, 25 Oct 2023 14:37:19 +0200 Message-Id: <20231025123719.38036-1-h.duerr@proxmox.com> X-Mailer: git-send-email 2.39.2 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-SPAM-LEVEL: Spam detection results: 0 AWL 0.000 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DMARC_MISSING 0.1 Missing DMARC policy KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record URIBL_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to URIBL was blocked. See http://wiki.apache.org/spamassassin/DnsBlocklists#dnsbl-block for more information. [qemuserver.pm, drive.pm] Subject: [pve-devel] [PATCH qemu-server] fix #4957: add vendor and product information passthrough for SCSI-Disks X-BeenThere: pve-devel@lists.proxmox.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Proxmox VE development discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 25 Oct 2023 12:37:48 -0000 Signed-off-by: Hannes Duerr --- PVE/QemuServer.pm | 12 ++++++++++++ PVE/QemuServer/Drive.pm | 26 ++++++++++++++++++++++++++ 2 files changed, 38 insertions(+) diff --git a/PVE/QemuServer.pm b/PVE/QemuServer.pm index 2cd8948..69be3af 100644 --- a/PVE/QemuServer.pm +++ b/PVE/QemuServer.pm @@ -1482,6 +1482,18 @@ sub print_drivedevice_full { } $device .= ",wwn=$drive->{wwn}" if $drive->{wwn}; + # only scsi-hd supports passing vendor and product information + if ($devicetype eq 'hd') { + if (my $vendor = $drive->{vendor}) { + $vendor = URI::Escape::uri_unescape($vendor); + $device .= ",vendor=$vendor"; + } + if (my $product = $drive->{product}) { + $product = URI::Escape::uri_unescape($product); + $device .= ",product=$product"; + } + } + } elsif ($drive->{interface} eq 'ide' || $drive->{interface} eq 'sata') { my $maxdev = ($drive->{interface} eq 'sata') ? $PVE::QemuServer::Drive::MAX_SATA_DISKS : 2; my $controller = int($drive->{index} / $maxdev); diff --git a/PVE/QemuServer/Drive.pm b/PVE/QemuServer/Drive.pm index e24ba12..20efc2f 100644 --- a/PVE/QemuServer/Drive.pm +++ b/PVE/QemuServer/Drive.pm @@ -159,6 +159,28 @@ my %iothread_fmt = ( iothread => { optional => 1, }); +my %product_fmt = ( + product => { + type => 'string', + format => 'urlencoded', + format_description => 'product', + maxLength => 40*3, # *3 since it's %xx url enoded + description => "The drive's product name, url-encoded, up to 40 bytes long.", + optional => 1, + }, +); + +my %vendor_fmt = ( + vendor => { + type => 'string', + format => 'urlencoded', + format_description => 'vendor', + maxLength => 40*3, # *3 since it's %xx url enoded + description => "The drive's vendor name, url-encoded, up to 40 bytes long.", + optional => 1, + }, +); + my %model_fmt = ( model => { type => 'string', @@ -281,6 +303,8 @@ my $scsi_fmt = { %scsiblock_fmt, %ssd_fmt, %wwn_fmt, + %vendor_fmt, + %product_fmt, }; my $scsidesc = { optional => 1, @@ -404,6 +428,8 @@ my $alldrive_fmt = { %readonly_fmt, %scsiblock_fmt, %ssd_fmt, + %vendor_fmt, + %product_fmt, %wwn_fmt, %tpmversion_fmt, %efitype_fmt, -- 2.39.2