Merge pull request #22 from tgerdes/config-fixes

Cleanup nova-compute configs
diff --git a/README.rst b/README.rst
index cc6f92b..7e3b28d 100644
--- a/README.rst
+++ b/README.rst
@@ -399,6 +399,20 @@
   glance image-update --property hw_scsi_model=virtio-scsi <image>
   glance image-update --property hw_disk_bus=scsi <image>
 
+libvirt CPU mode
+----------------
+
+Allow setting the model of CPU that is exposed to a VM. This allows better
+support live migration between hypervisors with different hardware, among other
+things. Defaults to host-passthrough.
+
+.. code-block:: yaml
+
+  nova:
+    compute:
+      cpu_mode: host-model
+
+
 Documentation and Bugs
 ======================
 
diff --git a/nova/controller.sls b/nova/controller.sls
index 2b2fe0f..0a8ac8f 100644
--- a/nova/controller.sls
+++ b/nova/controller.sls
@@ -95,31 +95,27 @@
 
 {%- if not grains.get('noservices', False) %}
 
-nova_controller_syncdb:
-  cmd.run:
-  - names:
-    - nova-manage db sync
-  - require:
-    - file: /etc/nova/nova.conf
-
 {%- if controller.version in ["mitaka", "newton", "ocata"] %}
 nova_controller_sync_apidb:
   cmd.run:
   - name: nova-manage api_db sync
   - require:
     - file: /etc/nova/nova.conf
-  - require_in:
-    - cmd: nova_controller_syncdb
 {%- endif %}
 
 {%- if controller.version in ["newton", "ocata"] %}
 nova_controller_online_data_migrations:
   cmd.run:
   - name: nova-manage db online_data_migrations
-  - require:
-    - cmd: nova_controller_syncdb
 {%- endif %}
 
+nova_controller_syncdb:
+  cmd.run:
+  - names:
+    - nova-manage db sync
+  - require:
+    - file: /etc/nova/nova.conf
+
 {%- if controller.version in ["ocata"] %}
 
 nova_controller_map_cell0:
diff --git a/nova/files/mitaka/nova-compute.conf.Debian b/nova/files/mitaka/nova-compute.conf.Debian
index 4c491d5..be66daa 100644
--- a/nova/files/mitaka/nova-compute.conf.Debian
+++ b/nova/files/mitaka/nova-compute.conf.Debian
@@ -104,7 +104,7 @@
 {%- endif %}
 
 [libvirt]
-cpu_mode = host-passthrough
+cpu_mode = {{ compute.get('cpu_mode', 'host-passthrough') }}
 virt_type = kvm
 inject_partition=-2
 inject_password=False
diff --git a/nova/files/mitaka/nova-controller.conf.Debian b/nova/files/mitaka/nova-controller.conf.Debian
index ea881bc..0cfc5eb 100644
--- a/nova/files/mitaka/nova-controller.conf.Debian
+++ b/nova/files/mitaka/nova-controller.conf.Debian
@@ -184,7 +184,7 @@
 project_domain_name = default
 user_domain_name = default
 auth_url = http://{{ controller.identity.host }}:35357
-{% if pillar.neutron is defined %}
+{% if pillar.neutron is defined and pillar.neutron.server is defined %}
 password={{ pillar.neutron.server.identity.password }}
 project_name={{ pillar.neutron.server.identity.tenant }}
 username={{ pillar.neutron.server.identity.user }}
diff --git a/nova/files/newton/nova-compute.conf.Debian b/nova/files/newton/nova-compute.conf.Debian
index 690e698..d80f8ec 100644
--- a/nova/files/newton/nova-compute.conf.Debian
+++ b/nova/files/newton/nova-compute.conf.Debian
@@ -118,7 +118,7 @@
 {%- endif %}
 
 [libvirt]
-cpu_mode = host-passthrough
+cpu_mode = {{ compute.get('cpu_mode', 'host-passthrough') }}
 virt_type = kvm
 inject_partition=-2
 inject_password=False
diff --git a/nova/files/newton/nova-controller.conf.Debian b/nova/files/newton/nova-controller.conf.Debian
index 6a96361..6bc11cf 100644
--- a/nova/files/newton/nova-controller.conf.Debian
+++ b/nova/files/newton/nova-controller.conf.Debian
@@ -194,7 +194,7 @@
 project_domain_name = Default
 user_domain_name = Default
 auth_url = http://{{ controller.identity.host }}:35357/v3
-{% if pillar.neutron is defined %}
+{% if pillar.neutron is defined and pillar.neutron.server is defined %}
 password={{ pillar.neutron.server.identity.password }}
 project_name={{ pillar.neutron.server.identity.tenant }}
 username={{ pillar.neutron.server.identity.user }}
diff --git a/nova/files/ocata/nova-compute.conf.Debian b/nova/files/ocata/nova-compute.conf.Debian
index aefc3f4..eefa31c 100644
--- a/nova/files/ocata/nova-compute.conf.Debian
+++ b/nova/files/ocata/nova-compute.conf.Debian
@@ -5878,7 +5878,7 @@
 #
 # From nova.conf
 #
-cpu_mode = host-passthrough
+cpu_mode = {{ compute.get('cpu_mode', 'host-passthrough') }}
 virt_type = kvm
 inject_partition=-2
 inject_password=True
diff --git a/nova/files/ocata/nova-controller.conf.Debian b/nova/files/ocata/nova-controller.conf.Debian
index eddcbb3..b002bfa 100644
--- a/nova/files/ocata/nova-controller.conf.Debian
+++ b/nova/files/ocata/nova-controller.conf.Debian
@@ -7070,7 +7070,7 @@
 project_domain_name = Default
 user_domain_name = Default
 auth_url = http://{{ controller.identity.host }}:35357/v3
-{% if pillar.neutron is defined %}
+{% if pillar.neutron is defined and pillar.neutron.server is defined %}
 password={{ pillar.neutron.server.identity.password }}
 project_name={{ pillar.neutron.server.identity.tenant }}
 username={{ pillar.neutron.server.identity.user }}
diff --git a/nova/map.jinja b/nova/map.jinja
index 4d56253..8e19b15 100644
--- a/nova/map.jinja
+++ b/nova/map.jinja
@@ -79,3 +79,14 @@
         'heal_instance_info_cache_interval': '60',
     },
 }, merge=pillar.nova.get('compute', {})) %}
+
+
+
+{% set monitoring = salt['grains.filter_by']({
+    'default': {
+        'disk': {
+              'warn': '15%',
+              'crit': '5%',
+        },
+    },
+}, grain='os_family', merge=salt['pillar.get']('nova:monitoring')) %}
diff --git a/nova/meta/sensu.yml b/nova/meta/sensu.yml
index a92865e..5497b20 100644
--- a/nova/meta/sensu.yml
+++ b/nova/meta/sensu.yml
@@ -1,5 +1,4 @@
-{%- from "nova/map.jinja" import controller with context %}
-{%- from "nova/map.jinja" import compute with context %}
+{%- from "nova/map.jinja" import controller,compute,monitoring with context %}
 {%- if pillar.nova.controller is defined %}
 {%- set region = controller.identity.region %}
 {%- endif %}
@@ -51,7 +50,7 @@
     subscribers:
     - local-nova-compute
   local_linux_storage_nova_instances_usage:
-    command: "PATH=$PATH:/usr/lib64/nagios/plugins:/usr/lib/nagios/plugins check_disk -w 15% -c 5% -p /var/lib/nova/instances"
+    command: "PATH=$PATH:/usr/lib64/nagios/plugins:/usr/lib/nagios/plugins check_disk -w {{ monitoring.disk.warn }} -c {{ monitoring.disk.crit }} -p /var/lib/nova/instances"
     interval: 60
     occurrences: 1
     subscribers: