# Azure specific rules ACTION!="add|change", GOTO="cloud_init_end" SUBSYSTEM!="block", GOTO="cloud_init_end" ATTRS{ID_VENDOR}!="Msft", GOTO="cloud_init_end" ATTRS{ID_MODEL}!="Virtual_Disk", GOTO="cloud_init_end" # Root has a GUID of 0000 as the second value on Gen1 instances # The resource/resource has GUID of 0001 as the second value ATTRS{device_id}=="?00000000-0000-*", ENV{fabric_name}="azure_root", GOTO="ci_azure_names" ATTRS{device_id}=="?00000000-0001-*", ENV{fabric_name}="azure_resource", GOTO="ci_azure_names" # Azure well known SCSI controllers on Gen2 instances ATTRS{device_id}=="{f8b3781a-1e82-4818-a1c3-63d806ec15bb}", ENV{fabric_scsi_controller}="scsi0", GOTO="azure_datadisk" # Do not create symlinks for scsi[1-3] or unmatched device_ids ATTRS{device_id}=="{f8b3781b-1e82-4818-a1c3-63d806ec15bb}", ENV{fabric_scsi_controller}="scsi1", GOTO="cloud_init_end" ATTRS{device_id}=="{f8b3781c-1e82-4818-a1c3-63d806ec15bb}", ENV{fabric_scsi_controller}="scsi2", GOTO="cloud_init_end" ATTRS{device_id}=="{f8b3781d-1e82-4818-a1c3-63d806ec15bb}", ENV{fabric_scsi_controller}="scsi3", GOTO="cloud_init_end" GOTO="cloud_init_end" # Map scsi#/lun# fabric_name to azure_root|resource on Gen2 instances 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" 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}="azure_root", GOTO="ci_azure_names" ENV{fabric_name}=="scsi0/lun1", ENV{fabric_name}="azure_resource", GOTO="ci_azure_names" GOTO="cloud_init_end" # Create the symlinks LABEL="ci_azure_names" ENV{DEVTYPE}=="disk", SYMLINK+="disk/cloud/$env{fabric_name}" ENV{DEVTYPE}=="partition", SYMLINK+="disk/cloud/$env{fabric_name}-part%n" LABEL="cloud_init_end"