Change in vdsm[master]: lvm: Remove duplication in udev rules

nsoffer at redhat.com nsoffer at redhat.com
Sat Mar 28 18:29:35 UTC 2015


Nir Soffer has uploaded a new change for review.

Change subject: lvm: Remove duplication in udev rules
......................................................................

lvm: Remove duplication in udev rules

The horrible uuid pattern was repeated 5 times, making the source
unreadable.  Now we build the udev patterns once, and use the built
patterns to format the final output.

Change-Id: Id259071c8c2c8e059308377823081e6b307ccbe0
Signed-off-by: Nir Soffer <nsoffer at redhat.com>
---
M vdsm/storage/vdsm_lvm_rules.template.in
1 file changed, 21 insertions(+), 6 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/vdsm refs/changes/09/39309/1

diff --git a/vdsm/storage/vdsm_lvm_rules.template.in b/vdsm/storage/vdsm_lvm_rules.template.in
index d73c0c6..045d523 100644
--- a/vdsm/storage/vdsm_lvm_rules.template.in
+++ b/vdsm/storage/vdsm_lvm_rules.template.in
@@ -11,8 +11,21 @@
 """
 import sys
 
-write = sys.stdout.write
 enable_chown_hack = "@CHOWN_HACK@"
+
+env = {
+    "uuid": "-".join(("[a-f0-9]" * 8,
+                      "[a-f0-9]" * 4,
+                      "[a-f0-9]" * 4,
+                      "[a-f0-9]" * 4,
+                      "[a-f0-9]" * 12)),
+    "temp": "[a-zA-Z0-9]" * 8,
+}
+
+
+def write(fmt):
+    sys.stdout.write(fmt % env)
+
 
 write("""\
 #
@@ -30,7 +43,7 @@
 ACTION!="add|change", GOTO="lvm_end"
 
 # Filter out vgs which do not look like a vdsm vg
-ENV{DM_VG_NAME}!="[a-f0-9][a-f0-9][a-f0-9][a-f0-9][a-f0-9][a-f0-9][a-f0-9][a-f0-9]-[a-f0-9][a-f0-9][a-f0-9][a-f0-9]-[a-f0-9][a-f0-9][a-f0-9][a-f0-9]-[a-f0-9][a-f0-9][a-f0-9][a-f0-9]-[a-f0-9][a-f0-9][a-f0-9][a-f0-9][a-f0-9][a-f0-9][a-f0-9][a-f0-9][a-f0-9][a-f0-9][a-f0-9][a-f0-9]", GOTO="lvm_end"
+ENV{DM_VG_NAME}!="%(uuid)s", GOTO="lvm_end"
 
 # Volumes used as vdsm images
 """)
@@ -40,18 +53,20 @@
 # WARNING: we cannot use OWNER, GROUP and MODE since using any of them will
 # change the selinux label to the default, causing vms to pause after extending
 # disks. https://bugzilla.redhat.com/1147910
-ENV{DM_LV_NAME}=="[a-f0-9][a-f0-9][a-f0-9][a-f0-9][a-f0-9][a-f0-9][a-f0-9][a-f0-9]-[a-f0-9][a-f0-9][a-f0-9][a-f0-9]-[a-f0-9][a-f0-9][a-f0-9][a-f0-9]-[a-f0-9][a-f0-9][a-f0-9][a-f0-9]-[a-f0-9][a-f0-9][a-f0-9][a-f0-9][a-f0-9][a-f0-9][a-f0-9][a-f0-9][a-f0-9][a-f0-9][a-f0-9][a-f0-9]", RUN+="@CHOWN_PATH@ @VDSMUSER@:@QEMUGROUP@ $env{DEVNAME}", GOTO="lvm_end"
+ENV{DM_LV_NAME}=="%(uuid)s", RUN+="@CHOWN_PATH@ @VDSMUSER@:@QEMUGROUP@ $env{DEVNAME}", GOTO="lvm_end"
 """)
 else:
     write("""\
-ENV{DM_LV_NAME}=="[a-f0-9][a-f0-9][a-f0-9][a-f0-9][a-f0-9][a-f0-9][a-f0-9][a-f0-9]-[a-f0-9][a-f0-9][a-f0-9][a-f0-9]-[a-f0-9][a-f0-9][a-f0-9][a-f0-9]-[a-f0-9][a-f0-9][a-f0-9][a-f0-9]-[a-f0-9][a-f0-9][a-f0-9][a-f0-9][a-f0-9][a-f0-9][a-f0-9][a-f0-9][a-f0-9][a-f0-9][a-f0-9][a-f0-9]", OWNER:="@VDSMUSER@", GROUP:="@QEMUGROUP@", GOTO="lvm_end"
+ENV{DM_LV_NAME}=="%(uuid)s", OWNER:="@VDSMUSER@", GROUP:="@QEMUGROUP@", GOTO="lvm_end"
 """)
 
 write("""\
 
 # Temporary volumes - not accessed by libvirt/qemu
-ENV{DM_LV_NAME}=="[a-f0-9][a-f0-9][a-f0-9][a-f0-9][a-f0-9][a-f0-9][a-f0-9][a-f0-9]-[a-f0-9][a-f0-9][a-f0-9][a-f0-9]-[a-f0-9][a-f0-9][a-f0-9][a-f0-9]-[a-f0-9][a-f0-9][a-f0-9][a-f0-9]-[a-f0-9][a-f0-9][a-f0-9][a-f0-9][a-f0-9][a-f0-9][a-f0-9][a-f0-9][a-f0-9][a-f0-9][a-f0-9][a-f0-9]_MERGE", OWNER:="@VDSMUSER@", GROUP:="@QEMUGROUP@", GOTO="lvm_end"
-ENV{DM_LV_NAME}=="_remove_me_[a-zA-Z0-9][a-zA-Z0-9][a-zA-Z0-9][a-zA-Z0-9][a-zA-Z0-9][a-zA-Z0-9][a-zA-Z0-9][a-zA-Z0-9]_[a-f0-9][a-f0-9][a-f0-9][a-f0-9][a-f0-9][a-f0-9][a-f0-9][a-f0-9]-[a-f0-9][a-f0-9][a-f0-9][a-f0-9]-[a-f0-9][a-f0-9][a-f0-9][a-f0-9]-[a-f0-9][a-f0-9][a-f0-9][a-f0-9]-[a-f0-9][a-f0-9][a-f0-9][a-f0-9][a-f0-9][a-f0-9][a-f0-9][a-f0-9][a-f0-9][a-f0-9][a-f0-9][a-f0-9]", OWNER:="@VDSMUSER@", GROUP:="@QEMUGROUP@", GOTO="lvm_end"
+ENV{DM_LV_NAME}=="%(uuid)s_MERGE", OWNER:="@VDSMUSER@", GROUP:="@QEMUGROUP@", GOTO="lvm_end"
+
+# Deleted volumes
+ENV{DM_LV_NAME}=="_remove_me_%(temp)s_%(uuid)s", OWNER:="@VDSMUSER@", GROUP:="@QEMUGROUP@", GOTO="lvm_end"
 
 # Special volumes used by vdsm
 ENV{DM_LV_NAME}=="metadata|inbox|outbox", MODE:="0600", OWNER:="@VDSMUSER@", GROUP:="@QEMUGROUP@", GOTO="lvm_end"


-- 
To view, visit https://gerrit.ovirt.org/39309
To unsubscribe, visit https://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Id259071c8c2c8e059308377823081e6b307ccbe0
Gerrit-PatchSet: 1
Gerrit-Project: vdsm
Gerrit-Branch: master
Gerrit-Owner: Nir Soffer <nsoffer at redhat.com>


More information about the vdsm-patches mailing list