Merge pull request #93 from bbinet/optional_purge_repos

Make sure system.purge_repos is optional
diff --git a/.kitchen.yml b/.kitchen.yml
index 2c11074..f3fc5b6 100644
--- a/.kitchen.yml
+++ b/.kitchen.yml
@@ -2,7 +2,7 @@
 driver:
   name: docker
   hostname: linux.ci.local
-  use_sudo: sudo
+  use_sudo: false
 
 provisioner:
   name: salt_solo
diff --git a/README.rst b/README.rst
index b426099..97420bc 100644
--- a/README.rst
+++ b/README.rst
@@ -73,7 +73,7 @@
     system:
       sudo:
         enabled: true
-        alias:
+        aliases:
           host:
             LOCAL:
             - localhost
@@ -157,6 +157,7 @@
           salt-ops-2nd:
             name: salt-ops
             nopasswd: false
+            setenv: true # Enable sudo -E option
             runas:
             - DBA
             commands:
diff --git a/linux/files/sudoer-users b/linux/files/sudoer-users
index 4e05269..738d25d 100644
--- a/linux/files/sudoer-users
+++ b/linux/files/sudoer-users
@@ -2,6 +2,6 @@
 # DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
 
 {%- for user,spec in users.iteritems() %}
-{{ spec.name|default(user) }} {{ spec.get('hosts', ['ALL'])|join(',') }}=({{ spec.get('runas', ['ALL'])|join(', ') }}) {% if spec.get('nopasswd', True) %}NOPASSWD: {% endif %}{{ spec.get('commands', ['ALL'])|join(', ') }}
+{{ spec.name|default(user) }} {{ spec.get('hosts', ['ALL'])|join(',') }}=({{ spec.get('runas', ['ALL'])|join(', ') }}) {% if spec.get('nopasswd', True) %}NOPASSWD:{% endif %}{% if spec.get('setenv', False) %}SETENV:{% endif %} {{ spec.get('commands', ['ALL'])|join(', ') }}
 {%- endfor %}
 
diff --git a/linux/meta/collectd.yml b/linux/meta/collectd.yml
index 2555825..0bd2b55 100644
--- a/linux/meta/collectd.yml
+++ b/linux/meta/collectd.yml
@@ -3,10 +3,12 @@
     plugin: netlink
     template: linux/files/collectd_netlink.conf
     ignore_selected: false
+    {%- if 'linux_netlink.ls' in salt.keys() %}
     interfaces:
     {%- for interface_name in salt['linux_netlink.ls']() %}
     - {{ interface_name }}
     {%- endfor %}
+    {%- endif %}
   linux_system_cpu:
     plugin: cpu
   linux_system_entropy:
diff --git a/linux/meta/sensu.yml b/linux/meta/sensu.yml
index 596538b..b0ee28f 100644
--- a/linux/meta/sensu.yml
+++ b/linux/meta/sensu.yml
@@ -18,7 +18,7 @@
     occurrences: 1
     subscribers:
     - local-linux-system
-{%- if storage.swap is defined %}
+{%- if storage.swap|length > 0 %}
   local_linux_storage_swap_usage_{{ system.name|replace('.', '-') }}-{{ system.domain|replace('.', '-') }}:
     command: "PATH=$PATH:/usr/lib64/nagios/plugins:/usr/lib/nagios/plugins check_swap -a -w {{ monitoring.swap.warn }} -c {{ monitoring.swap.crit }}"
     interval: 60
diff --git a/linux/system/grub.sls b/linux/system/grub.sls
index d36ba47..e7e1f8c 100644
--- a/linux/system/grub.sls
+++ b/linux/system/grub.sls
@@ -6,6 +6,8 @@
     - mode: 755
     - makedirs: True
 
+{%- if grains.get('virtual_subtype', None) not in ['Docker', 'LXC'] %}
 grub_update:
   cmd.wait:
   - name: update-grub
+{%- endif %}
diff --git a/linux/system/hugepages.sls b/linux/system/hugepages.sls
index e382e51..669e254 100644
--- a/linux/system/hugepages.sls
+++ b/linux/system/hugepages.sls
@@ -11,9 +11,12 @@
     - template: jinja
     - require:
       - file: grub_d_directory
+{%- if grains.get('virtual_subtype', None) not in ['Docker', 'LXC'] %}
     - watch_in:
       - cmd: grub_update
 
+{%- endif %}
+
 {%- for hugepages_type, hugepages in system.kernel.hugepages.iteritems() %}
 
 {%- if hugepages.get('mount', False) or hugepages.get('default', False) %}
@@ -24,7 +27,7 @@
     - device: Hugetlbfs-kvm
     - fstype: hugetlbfs
     - mkmnt: true
-    - opts: mode=775,gid=kvm,pagesize={{ hugepages.size }}
+    - opts: mode=775,pagesize={{ hugepages.size }}
 
 {%- endif %}
 
diff --git a/linux/system/kernel.sls b/linux/system/kernel.sls
index 0c352ef..3c7619e 100644
--- a/linux/system/kernel.sls
+++ b/linux/system/kernel.sls
@@ -13,10 +13,12 @@
     - contents: 'GRUB_CMDLINE_LINUX_DEFAULT="$GRUB_CMDLINE_LINUX_DEFAULT isolcpus={{ system.kernel.isolcpu }}"'
     - require:
       - file: grub_d_directory
+{%- if grains.get('virtual_subtype', None) not in ['Docker', 'LXC'] %} 
     - watch_in:
       - cmd: grub_update
 
 {%- endif %}
+{%- endif %}
 
 {%- if system.kernel.version is defined %}
 
diff --git a/linux/system/repo.sls b/linux/system/repo.sls
index 80fef35..b1c3e1b 100644
--- a/linux/system/repo.sls
+++ b/linux/system/repo.sls
@@ -39,7 +39,7 @@
 {%- endif %}
 
 {%- for name, repo in system.repo.iteritems() %}
-
+{%- set name=repo.get('name', name) %}
 {%- if grains.os_family == 'Debian' %}
 
 # per repository proxy setup
diff --git a/linux/system/sriov.sls b/linux/system/sriov.sls
index 4421c67..2093e06 100644
--- a/linux/system/sriov.sls
+++ b/linux/system/sriov.sls
@@ -8,8 +8,10 @@
     - contents: 'GRUB_CMDLINE_LINUX_DEFAULT="$GRUB_CMDLINE_LINUX_DEFAULT intel_iommu=on iommu=pt"'
     - require:
       - file: grub_d_directory
+{%- if grains.get('virtual_subtype', None) not in ['Docker', 'LXC'] %}
     - watch_in:
       - cmd: grub_update
+{%- endif %}
 
 /etc/modprobe.d/sriov.conf:
   file.managed:
diff --git a/linux/system/user.sls b/linux/system/user.sls
index 997f6fa..70c9c51 100644
--- a/linux/system/user.sls
+++ b/linux/system/user.sls
@@ -50,6 +50,11 @@
     - user: system_user_{{ name }}
   - check_cmd: /usr/sbin/visudo -c -f
 
+{%- else %}
+
+/etc/sudoers.d/90-salt-user-{{ name|replace('.', '-') }}:
+  file.absent
+  
 {%- endif %}
 
 {%- else %}
diff --git a/metadata/service/support.yml b/metadata/service/support.yml
index 7699edd..031dcfb 100644
--- a/metadata/service/support.yml
+++ b/metadata/service/support.yml
@@ -10,7 +10,7 @@
       heka:
         enabled: true
       sensu:
-        enabled: true
+        enabled: false
       sphinx:
         enabled: true
       grafana:
diff --git a/tests/pillar/network.sls b/tests/pillar/network.sls
index f862ed1..009228f 100644
--- a/tests/pillar/network.sls
+++ b/tests/pillar/network.sls
@@ -2,7 +2,7 @@
   system:
     enabled: true
     domain: ci.local
-    name: linux
+    name: linux.ci.local
   network:
     enabled: true
     hostname: linux
diff --git a/tests/pillar/system.sls b/tests/pillar/system.sls
index c97fb21..8d34cc6 100644
--- a/tests/pillar/system.sls
+++ b/tests/pillar/system.sls
@@ -59,7 +59,7 @@
         full_name: Salt Sudo User2
         home: /home/saltuser2
     group:
-      test:
+      testgroup:
         enabled: true
         name: test
         gid: 9999