Merge "Move to Mirantis owned docker images for tests         - This is a temporary solution until we have our own images"
diff --git a/README.rst b/README.rst
index f3c22f6..948f8ec 100644
--- a/README.rst
+++ b/README.rst
@@ -502,6 +502,16 @@
             address: 1.2.3.4
             port: 8776
 
+Define multipath for nova compute:
+
+.. code-block:: yaml
+
+    nova:
+      compute:
+        ....
+        libvirt:
+          volume_use_multipath: True
+
 Client role
 -----------
 
diff --git a/nova/compute.sls b/nova/compute.sls
index b7a2131..358ff41 100644
--- a/nova/compute.sls
+++ b/nova/compute.sls
@@ -545,6 +545,8 @@
   - require:
     - pkg: nova_compute_packages
     - cmd: virsh net-undefine default
+  - watch_in:
+    - service: nova_compute_services
   - watch:
     - file: /etc/libvirt/{{ compute.libvirt_config }}
     - file: /etc/libvirt/qemu.conf
diff --git a/nova/files/ocata/nova-compute.conf.Debian b/nova/files/ocata/nova-compute.conf.Debian
index 7578c00..aa774a7 100644
--- a/nova/files/ocata/nova-compute.conf.Debian
+++ b/nova/files/ocata/nova-compute.conf.Debian
@@ -6666,6 +6666,9 @@
 #  (boolean value)
 # Deprecated group/name - [libvirt]/iscsi_use_multipath
 #volume_use_multipath=false
+{%- if compute.libvirt.volume_use_multipath is defined %}
+volume_use_multipath={{ compute.libvirt.volume_use_multipath }}
+{%- endif %}
 
 #
 # Number of times to rediscover AoE target to find volume.
diff --git a/nova/files/ocata/nova-controller.conf.Debian b/nova/files/ocata/nova-controller.conf.Debian
index d1ce170..33c1627 100644
--- a/nova/files/ocata/nova-controller.conf.Debian
+++ b/nova/files/ocata/nova-controller.conf.Debian
@@ -7134,9 +7134,7 @@
 {%- if controller.network.get('protocol', 'http') == 'https' %}
 cafile={{ controller.network.get('cacert_file', controller.cacert_file) }}
 {%- endif %}
-{%- if controller.get('networking', 'default') != "contrail" %}
 metadata_proxy_shared_secret={{ controller.metadata.password }}
-{%- endif %}
 service_metadata_proxy=True
 #
 # This option specifies the URL for connecting to Neutron.
diff --git a/nova/files/pike/nova-compute.conf.Debian b/nova/files/pike/nova-compute.conf.Debian
index 6c006aa..7781163 100644
--- a/nova/files/pike/nova-compute.conf.Debian
+++ b/nova/files/pike/nova-compute.conf.Debian
@@ -6714,6 +6714,9 @@
 #  (boolean value)
 # Deprecated group/name - [libvirt]/iscsi_use_multipath
 #volume_use_multipath=false
+{%- if compute.libvirt.volume_use_multipath is defined %}
+volume_use_multipath={{ compute.libvirt.volume_use_multipath }}
+{%- endif %}
 
 #
 # Number of times to rediscover AoE target to find volume.
diff --git a/nova/files/pike/nova-controller.conf.Debian b/nova/files/pike/nova-controller.conf.Debian
index 80d7f85..d4a7c4d 100644
--- a/nova/files/pike/nova-controller.conf.Debian
+++ b/nova/files/pike/nova-controller.conf.Debian
@@ -7156,9 +7156,7 @@
 {%- if controller.network.get('protocol', 'http') == 'https' %}
 cafile={{ controller.network.get('cacert_file', controller.cacert_file) }}
 {%- endif %}
-{%- if controller.get('networking', 'default') != "contrail" %}
 metadata_proxy_shared_secret={{ controller.metadata.password }}
-{%- endif %}
 service_metadata_proxy=True
 #
 # This option specifies the URL for connecting to Neutron.
diff --git a/nova/files/queens/nova-compute.conf.Debian b/nova/files/queens/nova-compute.conf.Debian
index bbe09c4..8d25ff6 100644
--- a/nova/files/queens/nova-compute.conf.Debian
+++ b/nova/files/queens/nova-compute.conf.Debian
@@ -7354,6 +7354,9 @@
 #  (boolean value)
 # Deprecated group/name - [libvirt]/iscsi_use_multipath
 #volume_use_multipath = false
+{%- if compute.libvirt.volume_use_multipath is defined %}
+volume_use_multipath={{ compute.libvirt.volume_use_multipath }}
+{%- endif %}
 
 #
 # Number of times to scan given storage protocol to find volume.
@@ -10900,6 +10903,9 @@
 {%- set _data = compute.identity %}
 {%- if 'cacert_file' not in _data.keys() %}{% do _data.update({'cacert_file': compute.cacert_file}) %}{% endif %}
 {%- set auth_type = _data.get('auth_type', 'password') %}
+{%- if compute.get('cache',{}).members is defined and 'cache' not in _data.keys() %}
+{% do _data.update({'cache': compute.cache}) %}
+{%- endif %}
 {%- include "oslo_templates/files/queens/keystonemiddleware/_auth_token.conf" %}
 {%- include "oslo_templates/files/queens/keystoneauth/_type_" + auth_type + ".conf" %}
 
diff --git a/nova/files/queens/nova-controller.conf.Debian b/nova/files/queens/nova-controller.conf.Debian
index 8a44e7b..c8dd52e 100644
--- a/nova/files/queens/nova-controller.conf.Debian
+++ b/nova/files/queens/nova-controller.conf.Debian
@@ -7725,9 +7725,7 @@
 # * service_metadata_proxy
 #  (string value)
 #metadata_proxy_shared_secret =
-{%- if controller.get('networking', 'default') != "contrail" %}
 metadata_proxy_shared_secret = {{ controller.metadata.password }}
-{%- endif %}
 
 # PEM encoded Certificate Authority to use when verifying HTTPs
 # connections. (string value)
@@ -10621,6 +10619,8 @@
 {%- set _data = controller.identity %}
 {%- if 'cacert_file' not in _data.keys() %}{% do _data.update({'cacert_file': controller.cacert_file}) %}{% endif %}
 {%- set auth_type = _data.get('auth_type', 'password') %}
+{%- if controller.get('cache',{}).members is defined and 'cache' not in _data.keys() %}
+{% do _data.update({'cache': controller.cache}) %}
+{%- endif %}
 {%- include "oslo_templates/files/queens/keystonemiddleware/_auth_token.conf" %}
 {%- include "oslo_templates/files/queens/keystoneauth/_type_" + auth_type + ".conf" %}
-