diff --git a/SOURCES/wla-Fix-handling-of-gen2-disks-with-udev-rules-1954.patch b/SOURCES/wla-Fix-handling-of-gen2-disks-with-udev-rules-1954.patch new file mode 100644 index 0000000..af18ceb --- /dev/null +++ b/SOURCES/wla-Fix-handling-of-gen2-disks-with-udev-rules-1954.patch @@ -0,0 +1,84 @@ +From f5ae5815bce7a1e10188bdbbb0277d0ae79cafe2 Mon Sep 17 00:00:00 2001 +From: Vitaly Kuznetsov +Date: Thu, 13 Aug 2020 08:43:58 +0200 +Subject: [PATCH] Fix handling of gen2 disks with udev rules (#1954) + +RH-Author: Vitaly Kuznetsov +Message-id: <20200810082500.479999-1-vkuznets@redhat.com> +Patchwork-id: 98129 +O-Subject: [RHEL8.3 WALinuxAgent PATCH] Fix handling of gen2 disks with udev rules (#1954) +Bugzilla: 1859037 +RH-Acked-by: Cathy Avery +RH-Acked-by: Mohammed Gamal + +commit d33f1f810728dbe4e2891149936195d1ec7aaa27 +Author: Thomas Stringer +Date: Mon Jul 20 14:24:22 2020 -0400 + + Fix handling of gen2 disks with udev rules (#1954) + +Signed-off-by: Vitaly Kuznetsov +Signed-off-by: Miroslav Rezanina +--- + config/66-azure-storage.rules | 40 +++++++++++++++++++++++----------------- + 1 file changed, 23 insertions(+), 17 deletions(-) + +diff --git a/config/66-azure-storage.rules b/config/66-azure-storage.rules +index 5fb3693..cf94807 100644 +--- a/config/66-azure-storage.rules ++++ b/config/66-azure-storage.rules +@@ -1,28 +1,34 @@ +-ACTION=="add|change", SUBSYSTEM=="block", ENV{ID_VENDOR}=="Msft", ENV{ID_MODEL}=="Virtual_Disk", GOTO="azure_disk" +-GOTO="azure_end" ++# Azure specific rules. ++ACTION!="add|change", GOTO="walinuxagent_end" ++SUBSYSTEM!="block", GOTO="walinuxagent_end" ++ATTRS{ID_VENDOR}!="Msft", GOTO="walinuxagent_end" ++ATTRS{ID_MODEL}!="Virtual_Disk", GOTO="walinuxagent_end" + +-LABEL="azure_disk" +-# Root has a GUID of 0000 as the second value +-# The resource/resource has GUID of 0001 as the second value +-ATTRS{device_id}=="?00000000-0000-*", ENV{fabric_name}="root", GOTO="azure_names" +-ATTRS{device_id}=="?00000000-0001-*", ENV{fabric_name}="resource", GOTO="azure_names" +-ATTRS{device_id}=="?00000001-0001-*", ENV{fabric_name}="BEK", GOTO="azure_names" +-# Wellknown SCSI controllers ++# Match the known ID parts for root and resource disks. ++ATTRS{device_id}=="?00000000-0000-*", ENV{fabric_name}="root", GOTO="wa_azure_names" ++ATTRS{device_id}=="?00000000-0001-*", ENV{fabric_name}="resource", GOTO="wa_azure_names" ++ ++# Gen2 disk. + ATTRS{device_id}=="{f8b3781a-1e82-4818-a1c3-63d806ec15bb}", ENV{fabric_scsi_controller}="scsi0", GOTO="azure_datadisk" ++# Create symlinks for data disks attached. + ATTRS{device_id}=="{f8b3781b-1e82-4818-a1c3-63d806ec15bb}", ENV{fabric_scsi_controller}="scsi1", GOTO="azure_datadisk" + ATTRS{device_id}=="{f8b3781c-1e82-4818-a1c3-63d806ec15bb}", ENV{fabric_scsi_controller}="scsi2", GOTO="azure_datadisk" + ATTRS{device_id}=="{f8b3781d-1e82-4818-a1c3-63d806ec15bb}", ENV{fabric_scsi_controller}="scsi3", GOTO="azure_datadisk" +-GOTO="azure_end" ++GOTO="walinuxagent_end" + +-# Retrieve LUN number for datadisks ++# Parse out the fabric n ame based off of scsi indicators. + LABEL="azure_datadisk" +-ENV{DEVTYPE}=="partition", PROGRAM="/bin/sh -c 'readlink /sys/class/block/%k/../device|cut -d: -f4'", ENV{fabric_name}="$env{fabric_scsi_controller}/lun$result", GOTO="azure_names" +-PROGRAM="/bin/sh -c 'readlink /sys/class/block/%k/device|cut -d: -f4'", ENV{fabric_name}="$env{fabric_scsi_controller}/lun$result", GOTO="azure_names" +-GOTO="azure_end" ++ENV{DEVTYPE}=="partition", PROGRAM="/bin/sh -c 'readlink /sys/class/block/%k/../device|cut -d: -f4'", ENV{fabric_name}="$env{fabric_scsi_controller}/lun$result" ++ENV{DEVTYPE}=="disk", PROGRAM="/bin/sh -c 'readlink /sys/class/block/%k/device|cut -d: -f4'", ENV{fabric_name}="$env{fabric_scsi_controller}/lun$result" ++ ++ENV{fabric_name}=="scsi0/lun0", ENV{fabric_name}="root" ++ENV{fabric_name}=="scsi0/lun1", ENV{fabric_name}="resource" ++# Don't create a symlink for the cd-rom. ++ENV{fabric_name}=="scsi0/lun2", GOTO="walinuxagent_end" + +-# Create the symlinks +-LABEL="azure_names" ++# Create the symlinks. ++LABEL="wa_azure_names" + ENV{DEVTYPE}=="disk", SYMLINK+="disk/azure/$env{fabric_name}" + ENV{DEVTYPE}=="partition", SYMLINK+="disk/azure/$env{fabric_name}-part%n" + +-LABEL="azure_end" ++LABEL="walinuxagent_end" +-- +1.8.3.1 + diff --git a/SPECS/WALinuxAgent.spec b/SPECS/WALinuxAgent.spec index 705d0c4..9215aa4 100644 --- a/SPECS/WALinuxAgent.spec +++ b/SPECS/WALinuxAgent.spec @@ -1,7 +1,7 @@ Summary: Microsoft Azure Linux Agent Name: WALinuxAgent Version: 2.2.46 -Release: 7%{?dist} +Release: 8%{?dist} License: ASL 2.0 Group: Development/Libraries @@ -13,6 +13,8 @@ Patch0001: 0001-Add-inital-redhat-build-support.patch Patch0002: 0003-Fix-fips.patch # For bz#1822882 - [Azure][RHEL-8]Some parameter changes are not in waagent.conf Patch3: wala-Update-Provisioning-options-1853.patch +# For bz#1859037 - [Azure][WALA]Cannot create /dev/disk/azure/resource softlinks in Gen2 VM +Patch4: wla-Fix-handling-of-gen2-disks-with-udev-rules-1954.patch # rhel requirements BuildRequires: python3-devel @@ -41,6 +43,7 @@ images that are built to run in the Azure environment. %patch0001 -p1 %patch0002 -p1 %patch3 -p1 +%patch4 -p1 %build %py3_build @@ -73,6 +76,11 @@ rm -rf $RPM_BUILD_ROOT /etc/udev/rules.d/99-azure-product-uuid.rules %changelog +* Thu Aug 13 2020 Miroslav Rezanina - 2.2.46-8.el8 +- wla-Fix-handling-of-gen2-disks-with-udev-rules-1954.patch [bz#1859037] +- Resolves: bz#1859037 + ([Azure][WALA]Cannot create /dev/disk/azure/resource softlinks in Gen2 VM) + * Wed Jun 10 2020 Miroslav Rezanina - 2.2.46-7.el8 - wla-Mark-logrotate-configs-with-config-noreplace.patch [bz#1838254] - Resolves: bz#1838254