parametrize lvm filters

Change-Id: I556ab82a1dc0ce711958404165e419275ff5ce19
diff --git a/linux/files/lvm.conf b/linux/files/lvm.conf
index a45aed4..02f1c74 100644
--- a/linux/files/lvm.conf
+++ b/linux/files/lvm.conf
@@ -129,7 +129,7 @@
         # Example
         # Accept every block device:
 
-        filter = [ "r|/dev/sd.*|","r|/dev/mapper/.*|","r|/dev/.*/by-id/.*|", "r|/dev/.*/by-path/.*|" ]
+        filter = [ {%- for vgname, vg in storage.lvm.iteritems() %}{%- if vg.get('enabled', True) %}{%- for dev in vg.devices %}"a|{{ dev }}*|"{%- if not loop.last %},{%- endif %}{%- endfor %}{%- endif %}{%- endfor %}, "r|.*|" ]
 
         # filter = [ "a|.*/|" ]
         # Reject the cdrom drive:
diff --git a/linux/map.jinja b/linux/map.jinja
index 5e865fb..9780d90 100644
--- a/linux/map.jinja
+++ b/linux/map.jinja
@@ -145,6 +145,7 @@
         'mount': {},
         'swap': {},
         'lvm': {},
+        'lvm_services': ['lvm2', 'lvm2-lvmetad', 'lvm2-lvmpolld', 'lvm2-monitor'],
         'loopback': {},
         'nfs': {
              'pkgs': ['nfs-utils']
@@ -159,6 +160,7 @@
         'mount': {},
         'swap': {},
         'lvm': {},
+        'lvm_services': ['lvm2', 'lvm2-lvmetad', 'lvm2-lvmpolld', 'lvm2-monitor'],
         'loopback': {},
         'nfs': {
              'pkgs': ['nfs-common']
@@ -174,6 +176,7 @@
         'mount': {},
         'swap': {},
         'lvm': {},
+        'lvm_services': ['lvm2', 'lvm2-lvmetad', 'lvm2-lvmpolld', 'lvm2-monitor'],
         'loopback': {},
         'nfs': {
              'pkgs': ['nfs-utils']
diff --git a/linux/storage/lvm.sls b/linux/storage/lvm.sls
index fa7032f..e88c2f1 100644
--- a/linux/storage/lvm.sls
+++ b/linux/storage/lvm.sls
@@ -54,4 +54,13 @@
   - require:
     - pkg: linux_lvm_pkgs
 
+lvm_services:
+  service.running:
+  - enable: true
+  - names: {{ storage.lvm_services }}
+  - require:
+    - file: /etc/lvm/lvm.conf
+  - watch:
+    - file: /etc/lvm/lvm.conf
+
 {%- endif %}