Merge "Revert "Revert "Add k8s-ha-calico model support"""
diff --git a/tcp_tests/managers/sl_manager.py b/tcp_tests/managers/sl_manager.py
index d66ee67..d6354b1 100644
--- a/tcp_tests/managers/sl_manager.py
+++ b/tcp_tests/managers/sl_manager.py
@@ -44,12 +44,20 @@
         self.__config.stack_light.sl_vip_host = self.get_sl_vip()
 
     def get_sl_vip(self):
-        sl_vip_address_pillars = self._salt.get_pillar(
-            tgt='I@prometheus:server:enabled:True',
-            pillar='keepalived:cluster:instance:prometheus_server_vip:address')
+        tgt = 'I@prometheus:server:enabled:True'
+        pillar = 'keepalived:cluster:instance:prometheus_server_vip:address'
+        sl_vip_address_pillars = self._salt.get_pillar(tgt=tgt,
+                                                       pillar=pillar)
         sl_vip_ip = set([ip
                          for item in sl_vip_address_pillars
                          for node, ip in item.items() if ip])
+        if not sl_vip_ip:
+            pillar = 'keepalived:cluster:instance:VIP:address'
+            sl_vip_address_pillars = self._salt.get_pillar(tgt=tgt,
+                                                           pillar=pillar)
+            sl_vip_ip = set([ip
+                             for item in sl_vip_address_pillars
+                             for node, ip in item.items() if ip])
         assert len(sl_vip_ip) == 1, (
             "SL VIP not found or found more than one SL VIP in pillars:{0}, "
             "expected one!").format(sl_vip_ip)
diff --git a/tcp_tests/templates/cookied-bm-mcp-ocata-dvr-vxlan/common-services.yaml b/tcp_tests/templates/cookied-bm-mcp-dvr-vxlan/common-services.yaml
similarity index 95%
rename from tcp_tests/templates/cookied-bm-mcp-ocata-dvr-vxlan/common-services.yaml
rename to tcp_tests/templates/cookied-bm-mcp-dvr-vxlan/common-services.yaml
index 9353778..abf1040 100644
--- a/tcp_tests/templates/cookied-bm-mcp-ocata-dvr-vxlan/common-services.yaml
+++ b/tcp_tests/templates/cookied-bm-mcp-dvr-vxlan/common-services.yaml
@@ -1,6 +1,4 @@
-{% from 'cookied-bm-mcp-ocata-dvr-vxlan/underlay.yaml' import HOSTNAME_CFG01 with context %}
-
-# Install support services
+{% from 'cookied-bm-mcp-dvr-vxlan/underlay.yaml' import HOSTNAME_CFG01 with context %}
 
 - description: Install glusterfs
   cmd: salt --hard-crash --state-output=mixed --state-verbose=False
@@ -10,10 +8,10 @@
   skip_fail: false
 
 - description: Setup glusterfs on primary controller
-  cmd: sleep 30; salt --hard-crash --state-output=mixed --state-verbose=False
+  cmd: salt --hard-crash --state-output=mixed --state-verbose=False
     -C 'I@glusterfs:server' state.sls glusterfs.server.setup -b 1
   node_name: {{ HOSTNAME_CFG01 }}
-  retry: {count: 2, delay: 30}
+  retry: {count: 2, delay: 5}
   skip_fail: false
 
 - description: Check the gluster status
@@ -23,6 +21,7 @@
   retry: {count: 1, delay: 5}
   skip_fail: false
 
+# Install support services
 - description: Install keepalived on ctl01
   cmd: salt --hard-crash --state-output=mixed --state-verbose=False
     -C 'I@keepalived:cluster and *01*' state.sls keepalived
diff --git a/tcp_tests/templates/cookied-bm-mcp-ocata-dvr-vxlan/openstack.yaml b/tcp_tests/templates/cookied-bm-mcp-dvr-vxlan/openstack.yaml
similarity index 78%
rename from tcp_tests/templates/cookied-bm-mcp-ocata-dvr-vxlan/openstack.yaml
rename to tcp_tests/templates/cookied-bm-mcp-dvr-vxlan/openstack.yaml
index 832c5ee..c4e3a7b 100644
--- a/tcp_tests/templates/cookied-bm-mcp-ocata-dvr-vxlan/openstack.yaml
+++ b/tcp_tests/templates/cookied-bm-mcp-dvr-vxlan/openstack.yaml
@@ -1,9 +1,7 @@
-{% from 'cookied-bm-mcp-ocata-dvr-vxlan/underlay.yaml' import HOSTNAME_CFG01 with context %}
-{% from 'cookied-bm-mcp-ocata-dvr-vxlan/underlay.yaml' import HOSTNAME_CTL01 with context %}
-{% from 'cookied-bm-mcp-ocata-dvr-vxlan/underlay.yaml' import HOSTNAME_CTL02 with context %}
-{% from 'cookied-bm-mcp-ocata-dvr-vxlan/underlay.yaml' import HOSTNAME_CTL03 with context %}
-{% from 'cookied-bm-mcp-ocata-dvr-vxlan/underlay.yaml' import HOSTNAME_GTW01 with context %}
-{% from 'cookied-bm-mcp-ocata-dvr-vxlan/underlay.yaml' import HOSTNAME_GTW02 with context %}
+{% from 'cookied-bm-mcp-dvr-vxlan/underlay.yaml' import HOSTNAME_CFG01 with context %}
+{% from 'cookied-bm-mcp-dvr-vxlan/underlay.yaml' import HOSTNAME_CTL01 with context %}
+{% from 'cookied-bm-mcp-dvr-vxlan/underlay.yaml' import HOSTNAME_GTW01 with context %}
+#{% from 'cookied-bm-mcp-dvr-vxlan/underlay.yaml' import HOSTNAME_GTW02 with context %}
 {% from 'shared-salt.yaml' import IPV4_NET_EXTERNAL_PREFIX with context %}
 {% from 'shared-salt.yaml' import IPV4_NET_TENANT_PREFIX with context %}
 {% set PATTERN = os_env('PATTERN', 'smoke') %}
@@ -21,7 +19,7 @@
   cmd: salt --hard-crash --state-output=mixed --state-verbose=False
     -C 'I@keystone:server' state.sls keystone.server -b 1
   node_name: {{ HOSTNAME_CFG01 }}
-  retry: {count: 3, delay: 15}
+  retry: {count: 2, delay: 15}
   skip_fail: false
 
 - description: Restart apache due to PROD-10477
@@ -61,7 +59,7 @@
   cmd: salt --hard-crash --state-output=mixed --state-verbose=False
     -C 'I@keystone:server' cmd.run '. /root/keystonercv3; openstack service list'
   node_name: {{ HOSTNAME_CFG01 }}
-  retry: {count: 3, delay: 5}
+  retry: {count: 1, delay: 5}
   skip_fail: false
 
 - description: Check glance image-list
@@ -116,21 +114,6 @@
   retry: {count: 1, delay: 5}
   skip_fail: false
 
-# isntall designate
-- description: Install powerdns
-  cmd: salt --hard-crash --state-output=mixed --state-verbose=False
-    -C 'ctl*' state.sls powerdns
-  node_name: {{ HOSTNAME_CFG01 }}
-  retry: {count: 1, delay: 5}
-  skip_fail: false
-
-- description: Install designate
-  cmd: salt --hard-crash --state-output=mixed --state-verbose=False
-    -C 'I@designate:server' state.sls designate -b 1
-  node_name: {{ HOSTNAME_CFG01 }}
-  retry: {count: 5, delay: 10}
-  skip_fail: false
-
 - description: Check neutron agent-list
   cmd: salt --hard-crash --state-output=mixed --state-verbose=False
     -C 'I@keystone:server' cmd.run '. /root/keystonerc; neutron agent-list'
@@ -283,66 +266,6 @@
   retry: {count: 1, delay: 30}
   skip_fail: false
 
-# Add volume to ctl01 for Cinder-volume
-
-- description: Create dir for image
-  cmd: salt --hard-crash --state-output=mixed --state-verbose=False 'kvm01*' cmd.run
-    'mkdir /var/lib/libvirt/images/ctl01.cookied-bm-mcp-ocata-dvr-vxlan'
-  node_name: {{ HOSTNAME_CFG01 }}
-  retry: {count: 10, delay: 30}
-  skip_fail: false
-
-- description: Create image
-  cmd: salt --hard-crash --state-output=mixed --state-verbose=False 'kvm01*' cmd.run
-    'qemu-img create -f raw /var/lib/libvirt/images/ctl01.cookied-bm-mcp-ocata-dvr-vxlan/extend.img 60G'
-  node_name: {{ HOSTNAME_CFG01 }}
-  retry: {count: 10, delay: 30}
-  skip_fail: false
-
-- description: Attach image
-  cmd: salt --hard-crash --state-output=mixed --state-verbose=False 'kvm01*' cmd.run
-    'virsh attach-disk ctl01.cookied-bm-mcp-ocata-dvr-vxlan --source /var/lib/libvirt/images/ctl01.cookied-bm-mcp-ocata-dvr-vxlan/extend.img --target vdb --persistent'
-  node_name: {{ HOSTNAME_CFG01 }}
-  retry: {count: 10, delay: 30}
-  skip_fail: false
-
-# Configure cinder-volume salt-call PROD-13167
-- description: Set disks 01
-  cmd: salt-call cmd.run 'echo -e "nn\np\n\n\n\nw" | fdisk /dev/vdb'
-  node_name: {{ HOSTNAME_CTL01 }}
-  retry: {count: 1, delay: 30}
-  skip_fail: false
-
-- description: Create partitions 01
-  cmd: salt-call cmd.run 'pvcreate /dev/vdb1'
-  node_name: {{ HOSTNAME_CTL01 }}
-  retry: {count: 1, delay: 30}
-  skip_fail: false
-
-- description: create volume_group
-  cmd: salt "ctl01*" cmd.run 'vgcreate cinder-volumes /dev/vdb1'
-  node_name: {{ HOSTNAME_CFG01 }}
-  retry: {count: 1, delay: 30}
-  skip_fail: false
-
-- description: Install cinder-volume
-  cmd: salt 'ctl01*' cmd.run 'apt-get install cinder-volume -y'
-  node_name: {{ HOSTNAME_CFG01 }}
-  retry: {count: 1, delay: 30}
-  skip_fail: false
-
-- description: Install crudini
-  cmd: salt "ctl01*" cmd.run 'apt-get install crudini -y'
-  node_name: {{ HOSTNAME_CFG01 }}
-  retry: {count: 1, delay: 30}
-  skip_fail: false
-
-- description: Temporary WR set enabled backends value 01
-  cmd: salt-call cmd.run 'crudini --verbose --set /etc/cinder/cinder.conf DEFAULT enabled_backends lvm'
-  node_name: {{ HOSTNAME_CTL01 }}
-  retry: {count: 1, delay: 30}
-  skip_fail: false
-
 - description: Install docker.io on gtw
   cmd: salt 'gtw01*' cmd.run 'apt-get install docker.io -y'
   node_name: {{ HOSTNAME_CFG01 }}
diff --git a/tcp_tests/templates/cookied-bm-mcp-ocata-dvr-vxlan/salt-context-cookiecutter-openstack_ovs_dvr_vxlan.yaml b/tcp_tests/templates/cookied-bm-mcp-dvr-vxlan/salt-context-cookiecutter-openstack_ovs_dvr_vxlan.yaml
similarity index 94%
rename from tcp_tests/templates/cookied-bm-mcp-ocata-dvr-vxlan/salt-context-cookiecutter-openstack_ovs_dvr_vxlan.yaml
rename to tcp_tests/templates/cookied-bm-mcp-dvr-vxlan/salt-context-cookiecutter-openstack_ovs_dvr_vxlan.yaml
index f905e6d..013713b 100644
--- a/tcp_tests/templates/cookied-bm-mcp-ocata-dvr-vxlan/salt-context-cookiecutter-openstack_ovs_dvr_vxlan.yaml
+++ b/tcp_tests/templates/cookied-bm-mcp-dvr-vxlan/salt-context-cookiecutter-openstack_ovs_dvr_vxlan.yaml
@@ -1,8 +1,8 @@
 default_context:
   ceph_enabled: 'False'
   cicd_enabled: 'False'
-  cluster_domain: cookied-bm-mcp-ocata-dvr-vxlan.local
-  cluster_name: cookied-bm-mcp-ocata-dvr-vxlan
+  cluster_domain: cookied-bm-mcp-dvr-vxlan.local
+  cluster_name: cookied-bm-mcp-dvr-vxlan
   compute_bond_mode: active-backup
   compute_primary_first_nic: eth1
   compute_primary_second_nic: eth2
@@ -77,11 +77,8 @@
   openstack_gateway_node01_hostname: gtw01
   openstack_gateway_node01_tenant_address: 10.167.6.6
   openstack_gateway_node02_address: 10.167.4.225
-  openstack_gateway_node02_hostname: gtw02
-  openstack_gateway_node02_tenant_address: 10.167.6.7
-  openstack_gateway_node03_address: 10.167.4.226
-  openstack_gateway_node03_hostname: gtw03
-  openstack_gateway_node03_tenant_address: 10.167.6.8
+  #openstack_gateway_node02_hostname: gtw02
+  #openstack_gateway_node02_tenant_address: 10.167.6.7
   openstack_message_queue_address: 10.167.4.40
   openstack_message_queue_hostname: msg
   openstack_message_queue_node01_address: 10.167.4.41
diff --git a/tcp_tests/templates/cookied-bm-mcp-ocata-dvr-vxlan/salt-context-lab03-environment.yaml b/tcp_tests/templates/cookied-bm-mcp-dvr-vxlan/salt-context-lab03-environment.yaml
similarity index 78%
rename from tcp_tests/templates/cookied-bm-mcp-ocata-dvr-vxlan/salt-context-lab03-environment.yaml
rename to tcp_tests/templates/cookied-bm-mcp-dvr-vxlan/salt-context-lab03-environment.yaml
index 242b5b8..8a9c33d 100644
--- a/tcp_tests/templates/cookied-bm-mcp-ocata-dvr-vxlan/salt-context-lab03-environment.yaml
+++ b/tcp_tests/templates/cookied-bm-mcp-dvr-vxlan/salt-context-lab03-environment.yaml
@@ -1,5 +1,5 @@
 nodes:
-    cfg01.cookied-bm-mcp-ocata-dvr-vxlan.local:
+    cfg01.cookied-bm-mcp-dvr-vxlan.local:
       reclass_storage_name: infra_config_node01
       roles:
       - infra_config
@@ -11,7 +11,7 @@
 #          role: single_vlan_ctl
 
     # Physical nodes
-    kvm01.cookied-bm-mcp-ocata-dvr-vxlan.local:
+    kvm01.cookied-bm-mcp-dvr-vxlan.local:
       reclass_storage_name: infra_kvm_node01
       roles:
       - infra_kvm
@@ -22,7 +22,7 @@
         enp2s0f1:
           role: bond0_ab_ovs_vlan_ctl
 
-    kvm02.cookied-bm-mcp-ocata-dvr-vxlan.local:
+    kvm02.cookied-bm-mcp-dvr-vxlan.local:
       reclass_storage_name: infra_kvm_node02
       roles:
       - infra_kvm
@@ -33,7 +33,7 @@
         enp2s0f1:
           role: bond0_ab_ovs_vlan_ctl
 
-    kvm03.cookied-bm-mcp-ocata-dvr-vxlan.local:
+    kvm03.cookied-bm-mcp-dvr-vxlan.local:
       reclass_storage_name: infra_kvm_node03
       roles:
       - infra_kvm
@@ -44,7 +44,7 @@
         eno2:
           role: bond0_ab_ovs_vlan_ctl
 
-    cmp001.cookied-bm-mcp-ocata-dvr-vxlan.local:
+    cmp001.cookied-bm-mcp-dvr-vxlan.local:
       reclass_storage_name: openstack_compute_node01
       roles:
       - openstack_compute
@@ -62,7 +62,7 @@
 #        ens6:
 #          role: bond1_ab_ovs_floating
 
-    cmp002.cookied-bm-mcp-ocata-dvr-vxlan.local:
+    cmp002.cookied-bm-mcp-dvr-vxlan.local:
       reclass_storage_name: openstack_compute_node02
       roles:
       - openstack_compute
@@ -80,7 +80,7 @@
 #        ens6:
 #          role: bond1_ab_ovs_floating
 
-    gtw01.cookied-bm-mcp-ocata-dvr-vxlan.local:
+    gtw01.cookied-bm-mcp-dvr-vxlan.local:
       reclass_storage_name: openstack_gateway_node01
       roles:
       - openstack_gateway
@@ -91,13 +91,13 @@
         enp3s0f1:
           role: bond0_ab_dvr_vxlan_ctl_mesh_floating
 
-    gtw02.cookied-bm-mcp-ocata-dvr-vxlan.local:
-      reclass_storage_name: openstack_gateway_node02
-      roles:
-      - openstack_gateway
-      - linux_system_codename_xenial
-      interfaces:
-        eno1:
-          role: single_dhcp
-        eno2:
-          role: bond0_ab_dvr_vxlan_ctl_mesh_floating
+    #gtw02.cookied-bm-mcp-dvr-vxlan.local:
+    #  reclass_storage_name: openstack_gateway_node02
+    #  roles:
+    #  - openstack_gateway
+    #  - linux_system_codename_xenial
+    #  interfaces:
+    #    eno1:
+    #      role: single_dhcp
+    #    eno2:
+    #      role: bond0_ab_dvr_vxlan_ctl_mesh_floating
diff --git a/tcp_tests/templates/cookied-bm-mcp-ocata-dvr-vxlan/salt-context-vcp-environment.yaml b/tcp_tests/templates/cookied-bm-mcp-dvr-vxlan/salt-context-vcp-environment.yaml
similarity index 70%
rename from tcp_tests/templates/cookied-bm-mcp-ocata-dvr-vxlan/salt-context-vcp-environment.yaml
rename to tcp_tests/templates/cookied-bm-mcp-dvr-vxlan/salt-context-vcp-environment.yaml
index 63b20eb..70dc012 100644
--- a/tcp_tests/templates/cookied-bm-mcp-ocata-dvr-vxlan/salt-context-vcp-environment.yaml
+++ b/tcp_tests/templates/cookied-bm-mcp-dvr-vxlan/salt-context-vcp-environment.yaml
@@ -1,42 +1,38 @@
 nodes:
-    ctl01.cookied-bm-mcp-ocata-dvr-vxlan.local:
+    ctl01.cookied-bm-mcp-dvr-vxlan.local:
       reclass_storage_name: openstack_control_node01
       roles:
       - openstack_control_leader
-      - features_designate
-      - features_designate_keystone
       - linux_system_codename_xenial
       interfaces:
         ens2:
           role: single_dhcp
         ens3:
-          role: single_vlan_ctl
+          role: single_ctl
 
-    ctl02.cookied-bm-mcp-ocata-dvr-vxlan.local:
+    ctl02.cookied-bm-mcp-dvr-vxlan.local:
       reclass_storage_name: openstack_control_node02
       roles:
       - openstack_control
-      - features_designate
       - linux_system_codename_xenial
       interfaces:
         ens2:
           role: single_dhcp
         ens3:
-          role: single_vlan_ctl
+          role: single_ctl
 
-    ctl03.cookied-bm-mcp-ocata-dvr-vxlan.local:
+    ctl03.cookied-bm-mcp-dvr-vxlan.local:
       reclass_storage_name: openstack_control_node03
       roles:
       - openstack_control
-      - features_designate
       - linux_system_codename_xenial
       interfaces:
         ens2:
           role: single_dhcp
         ens3:
-          role: single_vlan_ctl
+          role: single_ctl
 
-    dbs01.cookied-bm-mcp-ocata-dvr-vxlan.local:
+    dbs01.cookied-bm-mcp-dvr-vxlan.local:
       reclass_storage_name: openstack_database_node01
       roles:
       - openstack_database_leader
@@ -45,9 +41,9 @@
         ens2:
           role: single_dhcp
         ens3:
-          role: single_vlan_ctl
+          role: single_ctl
 
-    dbs02.cookied-bm-mcp-ocata-dvr-vxlan.local:
+    dbs02.cookied-bm-mcp-dvr-vxlan.local:
       reclass_storage_name: openstack_database_node02
       roles:
       - openstack_database
@@ -56,9 +52,9 @@
         ens2:
           role: single_dhcp
         ens3:
-          role: single_vlan_ctl
+          role: single_ctl
 
-    dbs03.cookied-bm-mcp-ocata-dvr-vxlan.local:
+    dbs03.cookied-bm-mcp-dvr-vxlan.local:
       reclass_storage_name: openstack_database_node03
       roles:
       - openstack_database
@@ -67,9 +63,9 @@
         ens2:
           role: single_dhcp
         ens3:
-          role: single_vlan_ctl
+          role: single_ctl
 
-    msg01.cookied-bm-mcp-ocata-dvr-vxlan.local:
+    msg01.cookied-bm-mcp-dvr-vxlan.local:
       reclass_storage_name: openstack_message_queue_node01
       roles:
       - openstack_message_queue
@@ -78,9 +74,9 @@
         ens2:
           role: single_dhcp
         ens3:
-          role: single_vlan_ctl
+          role: single_ctl
 
-    msg02.cookied-bm-mcp-ocata-dvr-vxlan.local:
+    msg02.cookied-bm-mcp-dvr-vxlan.local:
       reclass_storage_name: openstack_message_queue_node02
       roles:
       - openstack_message_queue
@@ -89,9 +85,9 @@
         ens2:
           role: single_dhcp
         ens3:
-          role: single_vlan_ctl
+          role: single_ctl
 
-    msg03.cookied-bm-mcp-ocata-dvr-vxlan.local:
+    msg03.cookied-bm-mcp-dvr-vxlan.local:
       reclass_storage_name: openstack_message_queue_node03
       roles:
       - openstack_message_queue
@@ -100,9 +96,9 @@
         ens2:
           role: single_dhcp
         ens3:
-          role: single_vlan_ctl
+          role: single_ctl
 
-    prx01.cookied-bm-mcp-ocata-dvr-vxlan.local:
+    prx01.cookied-bm-mcp-dvr-vxlan.local:
       reclass_storage_name: openstack_proxy_node01
       roles:
       - openstack_proxy
@@ -111,9 +107,9 @@
         ens2:
           role: single_dhcp
         ens3:
-          role: single_vlan_ctl
+          role: single_ctl
 
-    prx02.cookied-bm-mcp-ocata-dvr-vxlan.local:
+    prx02.cookied-bm-mcp-dvr-vxlan.local:
       reclass_storage_name: openstack_proxy_node02
       roles:
       - openstack_proxy
@@ -122,13 +118,13 @@
         ens2:
           role: single_dhcp
         ens3:
-          role: single_vlan_ctl
+          role: single_ctl
 
-    bmk01.cookied-bm-mcp-ocata-dvr-vxlan.local:
+    bmk01.cookied-bm-mcp-dvr-vxlan.local:
       reclass_storage_name: openstack_benchmark_node01
       roles:
       - openstack_benchmark
       - linux_system_codename_trusty
       interfaces:
-        eth1:
+        ens3:
           role: single_ctl
\ No newline at end of file
diff --git a/tcp_tests/templates/cookied-bm-mcp-ocata-dvr-vxlan/salt.yaml b/tcp_tests/templates/cookied-bm-mcp-dvr-vxlan/salt.yaml
similarity index 71%
rename from tcp_tests/templates/cookied-bm-mcp-ocata-dvr-vxlan/salt.yaml
rename to tcp_tests/templates/cookied-bm-mcp-dvr-vxlan/salt.yaml
index e592270..61805bd 100644
--- a/tcp_tests/templates/cookied-bm-mcp-ocata-dvr-vxlan/salt.yaml
+++ b/tcp_tests/templates/cookied-bm-mcp-dvr-vxlan/salt.yaml
@@ -1,15 +1,15 @@
-{% from 'cookied-bm-mcp-ocata-dvr-vxlan/underlay.yaml' import HOSTNAME_CFG01 with context %}
-{% from 'cookied-bm-mcp-ocata-dvr-vxlan/underlay.yaml' import LAB_CONFIG_NAME with context %}
-{% from 'cookied-bm-mcp-ocata-dvr-vxlan/underlay.yaml' import DOMAIN_NAME with context %}
-{% from 'cookied-bm-mcp-ocata-dvr-vxlan/underlay.yaml' import HOSTNAME_KVM01 with context %}
-{% from 'cookied-bm-mcp-ocata-dvr-vxlan/underlay.yaml' import HOSTNAME_KVM02 with context %}
-{% from 'cookied-bm-mcp-ocata-dvr-vxlan/underlay.yaml' import HOSTNAME_KVM03 with context %}
+{% from 'cookied-bm-mcp-dvr-vxlan/underlay.yaml' import HOSTNAME_CFG01 with context %}
+{% from 'cookied-bm-mcp-dvr-vxlan/underlay.yaml' import LAB_CONFIG_NAME with context %}
+{% from 'cookied-bm-mcp-dvr-vxlan/underlay.yaml' import DOMAIN_NAME with context %}
+{% from 'cookied-bm-mcp-dvr-vxlan/underlay.yaml' import HOSTNAME_KVM01 with context %}
+{% from 'cookied-bm-mcp-dvr-vxlan/underlay.yaml' import HOSTNAME_KVM02 with context %}
+{% from 'cookied-bm-mcp-dvr-vxlan/underlay.yaml' import HOSTNAME_KVM03 with context %}
 
 {% set SALT_MODELS_REPOSITORY = os_env('SALT_MODELS_REPOSITORY','https://gerrit.mcp.mirantis.net/salt-models/mcp-virtual-lab') %}
 # Other salt model repository parameters see in shared-salt.yaml
 
 # Name of the context file (without extension, that is fixed .yaml) used to render the Environment model
-{% set ENVIRONMENT_MODEL_INVENTORY_NAME = os_env('ENVIRONMENT_MODEL_INVENTORY_NAME','cookied-bm-mcp-ocata-dvr-vxlan') %}
+{% set ENVIRONMENT_MODEL_INVENTORY_NAME = os_env('ENVIRONMENT_MODEL_INVENTORY_NAME','cookied-bm-mcp-dvr-vxlan') %}
 # Path to the context files used to render Cluster and Environment models
 {%- set CLUSTER_CONTEXT_NAME = 'salt-context-cookiecutter-openstack_ovs_dvr_vxlan.yaml' %}
 {%- set ENVIRONMENT_CONTEXT_NAMES = ['salt-context-vcp-environment.yaml', 'salt-context-lab03-environment.yaml'] %}
@@ -25,23 +25,6 @@
 
 {{ SHARED.MACRO_GENERATE_AND_ENABLE_ENVIRONMENT_MODEL() }}
 
-
-#- description: "Workaround for PROD-15405: remove OpenStack telemetry nodes from the cluster"
-#  cmd: |
-#    set -e;
-#    sed -i '/system.salt.control.cluster.openstack_telemetry_cluster/d' /srv/salt/reclass/classes/cluster/{{ LAB_CONFIG_NAME }}/infra/kvm.yml;
-#    sed -i '/system.reclass.storage.system.openstack_telemetry_cluster/d' /srv/salt/reclass/classes/cluster/{{ LAB_CONFIG_NAME }}/infra/config.yml;
-#    reclass-tools del-key parameters.reclass.storage.node.openstack_telemetry_node01 /srv/salt/reclass/classes/cluster/{{ LAB_CONFIG_NAME }}/infra/config.yml;
-#    reclass-tools del-key parameters.reclass.storage.node.openstack_telemetry_node02 /srv/salt/reclass/classes/cluster/{{ LAB_CONFIG_NAME }}/infra/config.yml;
-#    reclass-tools del-key parameters.reclass.storage.node.openstack_telemetry_node03 /srv/salt/reclass/classes/cluster/{{ LAB_CONFIG_NAME }}/infra/config.yml;
-#    reclass-tools del-key parameters.salt.control.cluster.internal.node.mdb01 /srv/salt/reclass/classes/cluster/{{ LAB_CONFIG_NAME }}/infra/kvm.yml;
-#    reclass-tools del-key parameters.salt.control.cluster.internal.node.mdb02 /srv/salt/reclass/classes/cluster/{{ LAB_CONFIG_NAME }}/infra/kvm.yml;
-#    reclass-tools del-key parameters.salt.control.cluster.internal.node.mdb03 /srv/salt/reclass/classes/cluster/{{ LAB_CONFIG_NAME }}/infra/kvm.yml;
-#
-#  node_name: {{ HOSTNAME_CFG01 }}
-#  retry: {count: 1, delay: 10}
-#  skip_fail: false
-
 - description: "Workaround for rack01 compute generator"
   cmd: |
     set -e;
diff --git a/tcp_tests/templates/cookied-bm-mcp-ocata-dvr-vxlan/sl.yaml b/tcp_tests/templates/cookied-bm-mcp-dvr-vxlan/sl.yaml
similarity index 98%
rename from tcp_tests/templates/cookied-bm-mcp-ocata-dvr-vxlan/sl.yaml
rename to tcp_tests/templates/cookied-bm-mcp-dvr-vxlan/sl.yaml
index c441146..c27fc4a 100644
--- a/tcp_tests/templates/cookied-bm-mcp-ocata-dvr-vxlan/sl.yaml
+++ b/tcp_tests/templates/cookied-bm-mcp-dvr-vxlan/sl.yaml
@@ -1,4 +1,4 @@
-{% from 'cookied-bm-mcp-ocata-dvr-vxlan/underlay.yaml' import HOSTNAME_CFG01 with context %}
+{% from 'cookied-bm-mcp-dvr-vxlan/underlay.yaml' import HOSTNAME_CFG01 with context %}
 
 # Install docker swarm.
 - description: Install keepalived on mon nodes
diff --git a/tcp_tests/templates/cookied-bm-mcp-ocata-dvr-vxlan/underlay--meta-data.yaml b/tcp_tests/templates/cookied-bm-mcp-dvr-vxlan/underlay--meta-data.yaml
similarity index 100%
rename from tcp_tests/templates/cookied-bm-mcp-ocata-dvr-vxlan/underlay--meta-data.yaml
rename to tcp_tests/templates/cookied-bm-mcp-dvr-vxlan/underlay--meta-data.yaml
diff --git a/tcp_tests/templates/cookied-bm-mcp-ocata-dvr-vxlan/underlay--user-data-cfg01.yaml b/tcp_tests/templates/cookied-bm-mcp-dvr-vxlan/underlay--user-data-cfg01.yaml
similarity index 100%
rename from tcp_tests/templates/cookied-bm-mcp-ocata-dvr-vxlan/underlay--user-data-cfg01.yaml
rename to tcp_tests/templates/cookied-bm-mcp-dvr-vxlan/underlay--user-data-cfg01.yaml
diff --git a/tcp_tests/templates/cookied-bm-mcp-ocata-dvr-vxlan/underlay--user-data1604.yaml b/tcp_tests/templates/cookied-bm-mcp-dvr-vxlan/underlay--user-data1604.yaml
similarity index 100%
rename from tcp_tests/templates/cookied-bm-mcp-ocata-dvr-vxlan/underlay--user-data1604.yaml
rename to tcp_tests/templates/cookied-bm-mcp-dvr-vxlan/underlay--user-data1604.yaml
diff --git a/tcp_tests/templates/cookied-bm-mcp-ocata-dvr-vxlan/underlay.yaml b/tcp_tests/templates/cookied-bm-mcp-dvr-vxlan/underlay.yaml
similarity index 89%
rename from tcp_tests/templates/cookied-bm-mcp-ocata-dvr-vxlan/underlay.yaml
rename to tcp_tests/templates/cookied-bm-mcp-dvr-vxlan/underlay.yaml
index 82785bd..4b6676f 100644
--- a/tcp_tests/templates/cookied-bm-mcp-ocata-dvr-vxlan/underlay.yaml
+++ b/tcp_tests/templates/cookied-bm-mcp-dvr-vxlan/underlay.yaml
@@ -1,6 +1,6 @@
 # Set the repository suite, one of the: 'nightly', 'testing', 'stable', or any other required
 {% set REPOSITORY_SUITE = os_env('REPOSITORY_SUITE', 'testing') %}
-{% set LAB_CONFIG_NAME = os_env('LAB_CONFIG_NAME', 'cookied-bm-mcp-ocata-dvr-vxlan') %}
+{% set LAB_CONFIG_NAME = os_env('LAB_CONFIG_NAME', 'cookied-bm-mcp-dvr-vxlan') %}
 {% set DOMAIN_NAME = os_env('DOMAIN_NAME', LAB_CONFIG_NAME + '.local') %}
 {% set HOSTNAME_CFG01 = os_env('HOSTNAME_CFG01', 'cfg01.' + DOMAIN_NAME) %}
 {% set HOSTNAME_KVM01 = os_env('HOSTNAME_KVM01', 'kvm01.' + DOMAIN_NAME) %}
@@ -9,8 +9,8 @@
 {% set HOSTNAME_CMP001 = os_env('HOSTNAME_CMP001', 'cmp001.' + DOMAIN_NAME) %}
 {% set HOSTNAME_CMP002 = os_env('HOSTNAME_CMP002', 'cmp002.' + DOMAIN_NAME) %}
 {% set HOSTNAME_GTW01 = os_env('HOSTNAME_GTW01', 'gtw01.' + DOMAIN_NAME) %}
-{% set HOSTNAME_GTW02 = os_env('HOSTNAME_GTW02', 'gtw02.' + DOMAIN_NAME) %}
-
+{% set HOSTNAME_CTL01 = os_env('HOSTNAME_CTL01', 'ctl01.' + DOMAIN_NAME) %}
+#{% set HOSTNAME_GTW02 = os_env('HOSTNAME_GTW02', 'gtw02.' + DOMAIN_NAME) %}
 {% set ETH1_IP_ADDRESS_CFG01 = os_env('ETH1_IP_ADDRESS_CFG01', '172.16.49.2') %}
 {% set ETH0_IP_ADDRESS_KVM01 = os_env('ETH0_IP_ADDRESS_KVM01', '172.16.49.11') %}
 {% set ETH0_IP_ADDRESS_KVM02 = os_env('ETH0_IP_ADDRESS_KVM02', '172.16.49.12') %}
@@ -18,11 +18,11 @@
 {% set ETH0_IP_ADDRESS_CMP001 = os_env('ETH0_IP_ADDRESS_CMP001', '172.16.49.3') %}
 {% set ETH0_IP_ADDRESS_CMP002 = os_env('ETH0_IP_ADDRESS_CMP002', '172.16.49.31') %}
 {% set ETH0_IP_ADDRESS_GTW01 = os_env('ETH0_IP_ADDRESS_GTW01', '172.16.49.5') %}
-{% set ETH0_IP_ADDRESS_GTW02 = os_env('ETH0_IP_ADDRESS_GTW02', '172.16.49.4') %}
+#{% set ETH0_IP_ADDRESS_GTW02 = os_env('ETH0_IP_ADDRESS_GTW02', '172.16.49.4') %}
 
-{% import 'cookied-bm-mcp-ocata-dvr-vxlan/underlay--meta-data.yaml' as CLOUDINIT_META_DATA with context %}
-{% import 'cookied-bm-mcp-ocata-dvr-vxlan/underlay--user-data-cfg01.yaml' as CLOUDINIT_USER_DATA_CFG01 with context %}
-{% import 'cookied-bm-mcp-ocata-dvr-vxlan/underlay--user-data1604.yaml' as CLOUDINIT_USER_DATA_1604 with context %}
+{% import 'cookied-bm-mcp-dvr-vxlan/underlay--meta-data.yaml' as CLOUDINIT_META_DATA with context %}
+{% import 'cookied-bm-mcp-dvr-vxlan/underlay--user-data-cfg01.yaml' as CLOUDINIT_USER_DATA_CFG01 with context %}
+{% import 'cookied-bm-mcp-dvr-vxlan/underlay--user-data1604.yaml' as CLOUDINIT_USER_DATA_1604 with context %}
 
 ---
 aliases:
@@ -49,7 +49,7 @@
             default_{{ HOSTNAME_CMP001 }}: {{ ETH0_IP_ADDRESS_CMP001 }}
             default_{{ HOSTNAME_CMP002 }}: {{ ETH0_IP_ADDRESS_CMP002 }}
             default_{{ HOSTNAME_GTW01 }}: {{ ETH0_IP_ADDRESS_GTW01 }}
-            default_{{ HOSTNAME_GTW02 }}: {{ ETH0_IP_ADDRESS_GTW02 }}
+            #default_{{ HOSTNAME_GTW02 }}: {{ ETH0_IP_ADDRESS_GTW02 }}
           ip_ranges:
               dhcp: [+2, -4]
       private-pool01:
@@ -161,51 +161,6 @@
           admin: admin-pool01
 
         nodes:
-
-        #  - name: {{ HOSTNAME_CFG01 }}
-        #    role: salt_master
-        #    params:
-        #      ipmi_user: !os_env IPMI_USER
-        #      ipmi_password: !os_env IPMI_PASSWORD
-        #      ipmi_previlegies: OPERATOR
-        #      ipmi_host: !os_env IPMI_HOST_CFG01  # hostname or IP address
-        #      ipmi_lan_interface: lanplus
-        #      ipmi_port: 623
-
-        #      root_volume_name: system     # see 'volumes' below
-        #      cloud_init_volume_name: iso  # see 'volumes' below
-        #      cloud_init_iface_up: enp3s0f1  # see 'interfaces' below.
-        #      volumes:
-        #        - name: system
-        #          capacity: !os_env NODE_VOLUME_SIZE, 200
-
-        #          # The same as for agent URL, here is an URL to the image that should be
-        #          # used for deploy the node. It should also be accessible from deploying
-        #          # node when nodes are provisioned by agent. Usually PXE/provision network address is used.
-        #          source_image: !os_env IRONIC_SOURCE_IMAGE_URL
-        #          source_image_checksum: !os_env IRONIC_SOURCE_IMAGE_CHECKSUM
-
-        #        - name: iso  # Volume with name 'iso' will be used
-        #                     # for store image with cloud-init metadata.
-
-        #          cloudinit_meta_data: *cloudinit_meta_data
-        #          cloudinit_user_data: *cloudinit_user_data_cfg01
-
-        #      interfaces:
-        #        - label: enp3s0f0  # Infra interface
-        #          mac_address: !os_env ETH0_MAC_ADDRESS_CFG01
-        #        - label: enp3s0f1
-        #          l2_network_device: admin
-        #          mac_address: !os_env ETH1_MAC_ADDRESS_CFG01
-
-        #      network_config:
-        #        enp3s0f0:
-        #          networks:
-        #           - infra
-        #        enp3s0f1:
-        #          networks:
-        #           - admin
-
           - name: {{ HOSTNAME_KVM01 }}
             role: salt_minion
             params:
diff --git a/tcp_tests/templates/cookied-bm-mcp-ocata-contrail/common-services.yaml b/tcp_tests/templates/cookied-bm-mcp-ocata-contrail/common-services.yaml
index 0c3ef93..5a4fe25 100644
--- a/tcp_tests/templates/cookied-bm-mcp-ocata-contrail/common-services.yaml
+++ b/tcp_tests/templates/cookied-bm-mcp-ocata-contrail/common-services.yaml
@@ -1,4 +1,56 @@
 {% from 'cookied-bm-mcp-ocata-contrail/underlay.yaml' import HOSTNAME_CFG01 with context %}
+{% from 'cookied-bm-mcp-ocata-contrail/underlay.yaml' import HOSTNAME_KVM01 with context %}
+{% from 'cookied-bm-mcp-ocata-contrail/underlay.yaml' import HOSTNAME_KVM02 with context %}
+{% from 'cookied-bm-mcp-ocata-contrail/underlay.yaml' import HOSTNAME_KVM03 with context %}
+
+
+- description: (REMOVE asap) Hack KVMs of Hash sum mismatch
+  cmd: |
+    rm -rf /var/lib/apt/lists/*;
+    apt-get clean;
+    apt-get update;
+  node_name: {{ HOSTNAME_KVM01 }}
+  retry: {count: 1, delay: 5}
+  skip_fail: true
+
+- description: (REMOVE asap) Hack KVMs of Hash sum mismatch
+  cmd: |
+    rm -rf /var/lib/apt/lists/*;
+    apt-get clean;
+    apt-get update;
+  node_name: {{ HOSTNAME_KVM02 }}
+  retry: {count: 1, delay: 5}
+  skip_fail: true
+
+- description: (REMOVE asap) Hack KVMs of Hash sum mismatch
+  cmd: |
+    rm -rf /var/lib/apt/lists/*;
+    apt-get clean;
+    apt-get update;
+  node_name: {{ HOSTNAME_KVM03 }}
+  retry: {count: 1, delay: 5}
+  skip_fail: true
+
+- description: Install glusterfs
+  cmd: salt --hard-crash --state-output=mixed --state-verbose=False
+    -C 'I@glusterfs:server' state.sls glusterfs.server.service
+  node_name: {{ HOSTNAME_CFG01 }}
+  retry: {count: 1, delay: 5}
+  skip_fail: false
+
+- description: Setup glusterfs on primary controller
+  cmd: sleep 30; salt --hard-crash --state-output=mixed --state-verbose=False
+    -C 'I@glusterfs:server' state.sls glusterfs.server.setup -b 1
+  node_name: {{ HOSTNAME_CFG01 }}
+  retry: {count: 2, delay: 30}
+  skip_fail: false
+
+- description: Check the gluster status
+  cmd: salt --hard-crash --state-output=mixed --state-verbose=False
+    -C 'I@glusterfs:server' cmd.run 'gluster peer status; gluster volume status' -b 1
+  node_name: {{ HOSTNAME_CFG01 }}
+  retry: {count: 1, delay: 5}
+  skip_fail: false
 
 # Install support services
 - description: Install keepalived on ctl01
@@ -24,28 +76,6 @@
   retry: {count: 1, delay: 5}
   skip_fail: false
 
-
-- description: Install glusterfs
-  cmd: salt --hard-crash --state-output=mixed --state-verbose=False
-    -C 'I@glusterfs:server' state.sls glusterfs.server.service
-  node_name: {{ HOSTNAME_CFG01 }}
-  retry: {count: 1, delay: 5}
-  skip_fail: false
-
-- description: Setup glusterfs on primary controller
-  cmd: salt --hard-crash --state-output=mixed --state-verbose=False
-    -C 'I@glusterfs:server' state.sls glusterfs.server.setup -b 1
-  node_name: {{ HOSTNAME_CFG01 }}
-  retry: {count: 2, delay: 5}
-  skip_fail: false
-
-- description: Check the gluster status
-  cmd: salt --hard-crash --state-output=mixed --state-verbose=False
-    -C 'I@glusterfs:server' cmd.run 'gluster peer status; gluster volume status' -b 1
-  node_name: {{ HOSTNAME_CFG01 }}
-  retry: {count: 1, delay: 5}
-  skip_fail: false
-
 - description: Install RabbitMQ on ctl01
   cmd: salt --hard-crash --state-output=mixed --state-verbose=False
     -C 'I@rabbitmq:server and *01*' state.sls rabbitmq
diff --git a/tcp_tests/templates/cookied-bm-mcp-ocata-contrail/lab04-physical-inventory.yaml b/tcp_tests/templates/cookied-bm-mcp-ocata-contrail/lab04-physical-inventory.yaml
index 8234156..21b0703 100644
--- a/tcp_tests/templates/cookied-bm-mcp-ocata-contrail/lab04-physical-inventory.yaml
+++ b/tcp_tests/templates/cookied-bm-mcp-ocata-contrail/lab04-physical-inventory.yaml
@@ -1,4 +1,12 @@
 nodes:

+    cfg01.cookied-bm-mcp-ocata-contrail.local:

+      reclass_storage_name: infra_config_node01

+      roles:

+      - infra_config

+      - linux_system_codename_xenial

+      interfaces:

+        ens3:

+          role: single_dhcp

     # Physical nodes

 

     kvm01.cookied-bm-mcp-ocata-contrail.local:

@@ -37,34 +45,46 @@
     cmp001.cookied-bm-mcp-ocata-contrail.local:

       reclass_storage_name: openstack_compute_node01

       roles:

-      - openstack_compute

+      - openstack_compute_dpdk

+      - features_lvm_backend

       - linux_system_codename_xenial

       interfaces:

         enp2s0f1:

-          role: parametrized_interface

+          role: single_mgm

           deploy_address: 172.16.49.72

-        enp2s0f0:

-          role: parametrized_interface

-          single_address: 10.167.4.72

         enp5s0f0:

-          role: parametrized_interface

+          role: bond2_contrail_dpdk_prv

+          dpdk_pci: "'0000:05:00.0'"

+          dpdk_mac: '90:e2:ba:19:c2:18'

+        enp5s0f1:

+          role: bond0_ab_ctl_contrail

           tenant_address: 192.168.0.101

+          single_address: 10.167.8.101

+        # enp5s0f1:

+        #   role: single_vlan_ctl

+        #   single_address: 10.167.8.101

 

     cmp002.cookied-bm-mcp-ocata-contrail.local:

       reclass_storage_name: openstack_compute_node02

       roles:

-      - openstack_compute

+      - openstack_compute_dpdk

+      - features_lvm_backend

       - linux_system_codename_xenial

       interfaces:

         enp2s0f1:

-          role: parametrized_interface

+          role: single_mgm

           deploy_address: 172.16.49.74

-        enp2s0f0:

-          role: parametrized_interface

-          single_address: 10.167.4.74

         enp5s0f0:

-          role: parametrized_interface

-          tenant_address: 192.168.0.102

+          role: bond2_contrail_dpdk_prv

+          tenant_address: 192.168.0.101

+          dpdk_pci: "'0000:05:00.0'"

+          dpdk_mac: '00:1b:21:87:21:98'

+        enp5s0f1:

+          role: bond0_ab_ctl_contrail

+          single_address: 10.167.8.102

+        # enp5s0f1:

+        #   role: single_vlan_ctl

+        #   single_address: 10.167.8.102

 

 #    gtw01.cookied-bm-mcp-ocata-contrail.local:

 #      reclass_storage_name: openstack_gateway_node01

diff --git a/tcp_tests/templates/cookied-bm-mcp-ocata-contrail/openstack.yaml b/tcp_tests/templates/cookied-bm-mcp-ocata-contrail/openstack.yaml
index ffcf909..c0066d6 100644
--- a/tcp_tests/templates/cookied-bm-mcp-ocata-contrail/openstack.yaml
+++ b/tcp_tests/templates/cookied-bm-mcp-ocata-contrail/openstack.yaml
@@ -1,12 +1,9 @@
 {% from 'cookied-bm-mcp-ocata-contrail/underlay.yaml' import HOSTNAME_CFG01 with context %}
-{% from 'cookied-bm-mcp-ocata-contrail/underlay.yaml' import HOSTNAME_CTL01 with context %}
-{% from 'cookied-bm-mcp-ocata-contrail/underlay.yaml' import HOSTNAME_CTL02 with context %}
-{% from 'cookied-bm-mcp-ocata-contrail/underlay.yaml' import HOSTNAME_CTL03 with context %}
 {% from 'cookied-bm-mcp-ocata-contrail/underlay.yaml' import HOSTNAME_GTW01 with context %}
 {% from 'shared-salt.yaml' import IPV4_NET_EXTERNAL_PREFIX with context %}
 {% from 'shared-salt.yaml' import IPV4_NET_TENANT_PREFIX with context %}
-{% set PATTERN = os_env('PATTERN', 'smoke') %}
-
+{% set PATTERN = os_env('PATTERN', 'false') %}
+{% set RUN_TEMPEST = os_env('RUN_TEMPEST', 'false') %}
 # Install OpenStack control services
 
 - description: Install glance on all controllers
@@ -93,6 +90,13 @@
   retry: {count: 1, delay: 5}
   skip_fail: false
 
+- description: Install cinder volume
+  cmd: salt --hard-crash --state-output=mixed --state-verbose=False
+    -C 'I@cinder:volume' state.sls cinder
+  node_name: {{ HOSTNAME_CFG01 }}
+  retry: {count: 1, delay: 5}
+  skip_fail: false
+
 - description: Check cinder list
   cmd: salt --hard-crash --state-output=mixed --state-verbose=False
     -C 'I@keystone:server' cmd.run '. /root/keystonerc; cinder list'
@@ -123,6 +127,13 @@
   retry: {count: 3, delay: 5}
   skip_fail: false
 
+- description: Configure contrail
+  cmd: salt --hard-crash --state-output=mixed --state-verbose=False
+    -C 'I@opencontrail:collector' state.sls opencontrail.collector
+  node_name: {{ HOSTNAME_CFG01 }}
+  retry: {count: 1, delay: 5}
+  skip_fail: false
+
 - description: Install contrail on all nodes still skipping client
   cmd: salt --hard-crash --state-output=mixed --state-verbose=Falsa
     -C 'I@opencontrail:control' state.sls opencontrail exclude=opencontrail.client
@@ -130,56 +141,34 @@
   retry: {count: 2, delay: 5}
   skip_fail: false
 
-- description: Install contrail and do client part as well
+- description: Check contrail status
+  cmd: sleep 30; salt --hard-crash --state-output=mixed --state-verbose=False
+    -C 'I@opencontrail:control' cmd.run contrail-status
+  node_name: {{ HOSTNAME_CFG01 }}
+  retry: {count: 1, delay: 5}
+  skip_fail: false
+
+- description: Install contrail and do client part as well (count and delay for waiting for collector connection)
   cmd: salt --hard-crash --state-output=mixed --state-verbose=False
     -C 'I@opencontrail:control' state.sls opencontrail
   node_name: {{ HOSTNAME_CFG01 }}
-  retry: {count: 1, delay: 5}
+  retry: {count: 5, delay: 60}
   skip_fail: false
 
 - description: Configure contrail
   cmd: salt --hard-crash --state-output=mixed --state-verbose=False
     -C 'I@opencontrail:database:id:1' state.sls opencontrail.client
   node_name: {{ HOSTNAME_CFG01 }}
-  retry: {count: 1, delay: 5}
+  retry: {count: 2, delay: 5}
   skip_fail: false
 
 - description: Check contrail status
-  cmd: sleep 15; salt --hard-crash --state-output=mixed --state-verbose=False
+  cmd: sleep 30; salt --hard-crash --state-output=mixed --state-verbose=False
     -C 'I@opencontrail:control' cmd.run contrail-status
   node_name: {{ HOSTNAME_CFG01 }}
   retry: {count: 1, delay: 5}
   skip_fail: false
 
-#- description: Install neutron on gtw node
-#  cmd: salt --hard-crash --state-output=mixed --state-verbose=False
-#    -C 'I@neutron:gateway' state.sls neutron
-#  node_name: {{ HOSTNAME_CFG01 }}
-#  retry: {count: 1, delay: 5}
-#  skip_fail: false
-
-# isntall designate
-- description: Install powerdns
-  cmd: salt --hard-crash --state-output=mixed --state-verbose=False
-    -C 'ctl*' state.sls powerdns
-  node_name: {{ HOSTNAME_CFG01 }}
-  retry: {count: 1, delay: 5}
-  skip_fail: false
-
-- description: Install designate
-  cmd: salt --hard-crash --state-output=mixed --state-verbose=False
-    -C 'I@designate:server' state.sls designate -b 1
-  node_name: {{ HOSTNAME_CFG01 }}
-  retry: {count: 5, delay: 10}
-  skip_fail: false
-
-#- description: Check neutron agent-list
-#  cmd: salt --hard-crash --state-output=mixed --state-verbose=False
-#    -C 'I@keystone:server' cmd.run '. /root/keystonerc; neutron agent-list'
-#  node_name: {{ HOSTNAME_CFG01 }}
-#  retry: {count: 1, delay: 5}
-#  skip_fail: false
-
 - description: Install heat service
   cmd: salt --hard-crash --state-output=mixed --state-verbose=False
     -C 'I@heat:server' state.sls heat -b 1
@@ -248,19 +237,19 @@
   retry: {count: 1, delay: 30}
   skip_fail: false
 
-- description: Create net04_external
-  cmd: salt --hard-crash --state-output=mixed --state-verbose=False 'ctl01*' cmd.run
-    '. /root/keystonercv3; neutron net-create net04_ext --router:external True --provider:physical_network physnet1 --provider:network_type flat'
-  node_name: {{ HOSTNAME_CFG01 }}
-  retry: {count: 1, delay: 30}
-  skip_fail: false
+#- description: Create net04_external
+#  cmd: salt --hard-crash --state-output=mixed --state-verbose=False 'ctl01*' cmd.run
+#    '. /root/keystonercv3; neutron net-create net04_ext --router:external True --provider:physical_network physnet1 --provider:network_type flat'
+#  node_name: {{ HOSTNAME_CFG01 }}
+#  retry: {count: 1, delay: 30}
+#  skip_fail: false
 
-- description: Create subnet_external
-  cmd: salt --hard-crash --state-output=mixed --state-verbose=False 'ctl01*' cmd.run
-    '. /root/keystonercv3; neutron subnet-create net04_ext {{ IPV4_NET_EXTERNAL_PREFIX }}.0/24 --name net04_ext__subnet --disable-dhcp --allocation-pool start={{ IPV4_NET_EXTERNAL_PREFIX }}.150,end={{ IPV4_NET_EXTERNAL_PREFIX }}.180 --gateway {{ IPV4_NET_EXTERNAL_PREFIX }}.1'
-  node_name: {{ HOSTNAME_CFG01 }}
-  retry: {count: 1, delay: 30}
-  skip_fail: false
+#- description: Create subnet_external
+#  cmd: salt --hard-crash --state-output=mixed --state-verbose=False 'ctl01*' cmd.run
+#    '. /root/keystonercv3; neutron subnet-create net04_ext {{ IPV4_NET_EXTERNAL_PREFIX }}.0/24 --name net04_ext__subnet --disable-dhcp --allocation-pool start={{ IPV4_NET_EXTERNAL_PREFIX }}.150,end={{ IPV4_NET_EXTERNAL_PREFIX }}.180 --gateway {{ IPV4_NET_EXTERNAL_PREFIX }}.1'
+#  node_name: {{ HOSTNAME_CFG01 }}
+#  retry: {count: 1, delay: 30}
+#  skip_fail: false
 
 - description: Create net04
   cmd: salt --hard-crash --state-output=mixed --state-verbose=False 'ctl01*' cmd.run
@@ -283,12 +272,12 @@
   retry: {count: 1, delay: 30}
   skip_fail: false
 
-- description: Set geteway
-  cmd: salt --hard-crash --state-output=mixed --state-verbose=False 'ctl01*' cmd.run
-    '. /root/keystonercv3; neutron router-gateway-set net04_router01 net04_ext'
-  node_name: {{ HOSTNAME_CFG01 }}
-  retry: {count: 1, delay: 30}
-  skip_fail: false
+#- description: Set geteway
+#  cmd: salt --hard-crash --state-output=mixed --state-verbose=False 'ctl01*' cmd.run
+#    '. /root/keystonercv3; neutron router-gateway-set net04_router01 net04_ext'
+#  node_name: {{ HOSTNAME_CFG01 }}
+#  retry: {count: 1, delay: 30}
+#  skip_fail: false
 
 - description:  Add interface
   cmd: salt --hard-crash --state-output=mixed --state-verbose=False 'ctl01*' cmd.run
@@ -318,127 +307,108 @@
   retry: {count: 1, delay: 30}
   skip_fail: false
 
-- description: Temp workaround of  PROD-13167
-  cmd: salt --hard-crash --state-output=mixed --state-verbose=False 'ctl*' cmd.run
-    'apt-get install python-pymysql -y'
-  node_name: {{ HOSTNAME_CFG01 }}
-  retry: {count: 1, delay: 30}
-  skip_fail: false
-
-# Configure cinder-volume salt-call PROD-13167
-- description: Set disks 01
-  cmd: salt-call cmd.run 'echo -e "nn\np\n\n\n\nw" | fdisk /dev/vdb'
-  node_name: {{ HOSTNAME_CTL01 }}
-  retry: {count: 1, delay: 30}
-  skip_fail: false
-
-- description: Set disks 02
-  cmd: salt-call cmd.run 'echo -e "nn\np\n\n\n\nw" | fdisk /dev/vdb'
-  node_name: {{ HOSTNAME_CTL02 }}
-  retry: {count: 1, delay: 30}
-  skip_fail: false
-
-- description: Set disks 03
-  cmd: salt-call cmd.run 'echo -e "nn\np\n\n\n\nw" | fdisk /dev/vdb'
-  node_name: {{ HOSTNAME_CTL03 }}
-  retry: {count: 1, delay: 30}
-  skip_fail: false
-
-- description: Create partitions 01
-  cmd: salt-call cmd.run 'pvcreate /dev/vdb1'
-  node_name: {{ HOSTNAME_CTL01 }}
-  retry: {count: 1, delay: 30}
-  skip_fail: false
-
-- description: Create partitions 02
-  cmd: salt-call cmd.run 'pvcreate /dev/vdb1'
-  node_name: {{ HOSTNAME_CTL02 }}
-  retry: {count: 1, delay: 30}
-  skip_fail: false
-
-- description: Create partitions 03
-  cmd: salt-call cmd.run 'pvcreate /dev/vdb1'
-  node_name: {{ HOSTNAME_CTL03 }}
-  retry: {count: 1, delay: 30}
-  skip_fail: false
-
-- description: create volume_group
-  cmd: salt "ctl*" cmd.run 'vgcreate cinder-volumes /dev/vdb1'
-  node_name: {{ HOSTNAME_CFG01 }}
-  retry: {count: 1, delay: 30}
-  skip_fail: false
-
-- description: Install cinder-volume
-  cmd: salt 'ctl*' cmd.run 'apt-get install cinder-volume -y'
-  node_name: {{ HOSTNAME_CFG01 }}
-  retry: {count: 1, delay: 30}
-  skip_fail: false
-
-- description: Install crudini
-  cmd: salt "ctl*" cmd.run 'apt-get install crudini -y'
-  node_name: {{ HOSTNAME_CFG01 }}
-  retry: {count: 1, delay: 30}
-  skip_fail: false
-
-- description: Temporary WR set enabled backends value 01
-  cmd: salt-call cmd.run 'crudini --verbose --set /etc/cinder/cinder.conf DEFAULT enabled_backends lvm'
-  node_name: {{ HOSTNAME_CTL01 }}
-  retry: {count: 1, delay: 30}
-  skip_fail: false
-
-- description: Temporary WR set enabled backends value 02
-  cmd: salt-call cmd.run 'crudini --verbose --set /etc/cinder/cinder.conf DEFAULT enabled_backends lvm'
-  node_name: {{ HOSTNAME_CTL02 }}
-  retry: {count: 1, delay: 30}
-  skip_fail: false
-
-- description: Temporary WR set enabled backends value 03
-  cmd: salt-call cmd.run 'crudini --verbose --set /etc/cinder/cinder.conf DEFAULT enabled_backends lvm'
-  node_name: {{ HOSTNAME_CTL03 }}
-  retry: {count: 1, delay: 30}
-  skip_fail: false
-
-#- description: Install docker.io on gtw
-#  cmd: salt-call cmd.run 'apt-get install docker.io -y'
-#  node_name: {{ HOSTNAME_GTW01 }}
+#- description: Install lvm2 packages
+#  cmd: salt --hard-crash --state-output=mixed --state-verbose=False 'ctl*' cmd.run
+#    'apt-get install python-pymysql lvm2 -y'
+#  node_name: {{ HOSTNAME_CFG01 }}
 #  retry: {count: 1, delay: 30}
 #  skip_fail: false
 
-- description: create rc file on cfg
-  cmd: scp ctl01:/root/keystonercv3 /root
+#- description: Install crudini
+#  cmd: salt -C "cmp*" cmd.run 'apt-get install crudini -y'
+#  node_name: {{ HOSTNAME_CFG01 }}
+#  retry: {count: 1, delay: 30}
+#  skip_fail: true
+
+#- description: Temporary WR set enabled backends value
+#  cmd: salt "cmp*" cmd.run 'crudini --verbose --set /etc/cinder/cinder.conf DEFAULT enabled_backends lvm'
+#  node_name: {{ HOSTNAME_CFG01 }}
+#  retry: {count: 1, delay: 30}
+#  skip_fail: false
+
+#- description: Start cinder-volume service
+#  cmd: salt "cmp*" cmd.run '/etc/init.d/cinder-volume stop; /etc/init.d/cinder-volume start;'
+#  node_name: {{ HOSTNAME_CFG01 }}
+#  retry: {count: 1, delay: 10}
+#  skip_fail: true
+
+- description: Install docker.io on ctl
+  cmd: salt "ctl01*" cmd.run 'apt-get install docker.io -y'
   node_name: {{ HOSTNAME_CFG01 }}
   retry: {count: 1, delay: 30}
   skip_fail: false
 
+#- description: create rc file on cfg
+#  cmd: scp ctl01:/root/keystonercv3 /root
+#  node_name: {{ HOSTNAME_CFG01 }}
+#  retry: {count: 1, delay: 30}
+#  skip_fail: false
+
 #- description: Copy rc file
 #  cmd: scp /root/keystonercv3 gtw01:/root
 #  node_name: {{ HOSTNAME_CFG01 }}
 #  retry: {count: 1, delay: 30}
 #  skip_fail: false
 
-#- description: Run tests
-#  cmd: |
-#    if [[ {{ PATTERN }} == "false" ]]; then
-#        docker run --rm --net=host  -e TEMPEST_CONF=lvm_mcp.conf  -e SKIP_LIST=mcp_skip.list  -e SOURCE_FILE=keystonercv3 -v /etc/ssl/certs/:/etc/ssl/certs/ -v /root/:/home/rally docker-sandbox.sandbox.mirantis.net/rally-tempest/rally-tempest:with_designate  >> image.output
-#    else
-#        docker run --rm --net=host  -e TEMPEST_CONF=lvm_mcp.conf  -e SKIP_LIST=mcp_skip.list  -e SOURCE_FILE=keystonercv3 -v /etc/ssl/certs/:/etc/ssl/certs/ -e CUSTOM='--pattern {{ PATTERN }}' -v /root/:/home/rally docker-sandbox.sandbox.mirantis.net/rally-tempest/rally-tempest:with_designate  >> image.output
-#    fi
-#  node_name: {{ HOSTNAME_GTW01 }}
-#  retry: {count: 1, delay: 5}
-#  skip_fail: false
+- description: Hack resolv.conf on VCP nodes for internal services access
+  cmd: |
+    salt --hard-crash --state-output=mixed --state-verbose=False -C '* and not kvm* and not cmp* and not gtw* and not cfg*' cmd.run "echo 'nameserver 172.18.208.44' > /etc/resolv.conf;"
+    salt --hard-crash --state-output=mixed --state-verbose=False -C '* and not kvm* and not cmp* and not gtw* and not cfg*' cmd.run "echo 'nameserver 8.8.8.8' >> /etc/resolv.conf;"
+  node_name: {{ HOSTNAME_CFG01 }}
+  retry: {count: 1, delay: 5}
+  skip_fail: false
 
-#- description: Download xml results
-#  download:
-#    remote_path: /root
-#    remote_filename: "report_*.xml"
-#    local_path: {{ os_env('PWD') }}
-#  node_name: {{ HOSTNAME_GTW01 }}
-#  skip_fail: true
+
+- description: Hack vrouter (Delete default moun point)
+  cmd: salt "cmp*" cmd.run "sed -i 's/exit 0//g' /etc/rc.local; echo 'umount /dev/hugepages; service supervisor-vrouter restart' >> /etc/rc.local; echo 'exit 0' >> /etc/rc.local"
+  node_name: {{ HOSTNAME_CFG01 }}
+  retry: {count: 1, delay: 30}
+  skip_fail: true
+
+- description: Temporary WR for correct pci in vrouter.conf
+  cmd: salt  "cmp*" cmd.run "sed -i 's/physical\_interface\_address\=.*/physical\_interface\_address=0000\:05\:00\.0/g' /etc/contrail/contrail-vrouter-agent.conf"
+  node_name: {{ HOSTNAME_CFG01 }}
+  retry: {count: 1, delay: 30}
+  skip_fail: true
+
+- description: Remove crashes files from /var/crashes/ while vrouter was crashed
+  cmd: salt  "cmp*" cmd.run "rm -rf /var/crashes/*"
+  node_name: {{ HOSTNAME_CFG01 }}
+  retry: {count: 1, delay: 30}
+  skip_fail: true
+
+- description: Reboot computes
+  cmd: salt --timeout=600  "cmp*" system.reboot
+  node_name: {{ HOSTNAME_CFG01 }}
+  retry: {count: 1, delay: 30}
+  skip_fail: true
+
+{%- if RUN_TEMPEST %}
+- description: Run tests
+  cmd: |
+    if [[ {{ PATTERN }} == "false" ]]; then
+        salt "ctl01*" cmd.run "docker run --rm --net=host  -e TEMPEST_CONF=lvm_mcp.conf  -e SKIP_LIST=mcp_skip.list  -e SOURCE_FILE=keystonercv3 -v /etc/ssl/certs/:/etc/ssl/certs/ -v /root/:/home/rally sandriichenko/rally_tempest_docker:mcp1.1_ocata  >> image.output"
+    else
+        salt "ctl01*" cmd.run "docker run --rm --net=host  -e TEMPEST_CONF=lvm_mcp.conf  -e SKIP_LIST=mcp_skip.list  -e SOURCE_FILE=keystonercv3 -v /etc/ssl/certs/:/etc/ssl/certs/ -e CUSTOM='--pattern {{ PATTERN }}' -v /root/:/home/rally sandriichenko/rally_tempest_docker:mcp1.1_ocata  >> image.output"
+    fi
+  node_name: {{ HOSTNAME_CFG01 }}
+  retry: {count: 1, delay: 5}
+  skip_fail: false
+
+- description: Download xml and html results
+  cmd: |
+    d=$(date +%Y-%m-%d)
+    ctl01_ip=`salt --out=newline_values_only 'ctl01*' grains.get ip4_interfaces:ens2`;
+    scp root@$ctl01_ip:/root/report*.xml /root/report_$d.xml;
+  node_name: {{ HOSTNAME_CFG01 }}
+  retry: {count: 1, delay: 5}
+  skip_fail: true
+{%- endif %}
 
 #- description: Download html results
 #  download:
 #    remote_path: /root
 #    remote_filename: "report_*.html"
 #    local_path: {{ os_env('PWD') }}
-#  node_name: {{ HOSTNAME_GTW01 }}
+#  node_name: {{ HOSTNAME_CFG01 }}
 #  skip_fail: true
diff --git a/tcp_tests/templates/cookied-bm-mcp-ocata-contrail/salt-context-cookiecutter-contrail-dpdk.yaml b/tcp_tests/templates/cookied-bm-mcp-ocata-contrail/salt-context-cookiecutter-contrail-dpdk.yaml
new file mode 100644
index 0000000..769ded7
--- /dev/null
+++ b/tcp_tests/templates/cookied-bm-mcp-ocata-contrail/salt-context-cookiecutter-contrail-dpdk.yaml
@@ -0,0 +1,161 @@
+default_context:

+  cicd_enabled: 'False'

+  cluster_domain: cookied-bm-mcp-ocata-contrail.local

+  cluster_name: deployment_name

+  compute_bond_mode: active-backup

+  compute_primary_first_nic: enp5s0f0

+  compute_primary_second_nic: enp5s0f1

+  context_seed: WCQ00jbWQE6qxjDdhHsS7SNGExTJ9HVanC9LXyJHF2IIe0Qj6vtaXFP5FSwEK6jm

+  control_network_netmask: 255.255.255.0

+  control_network_subnet: 10.167.8.0/24

+  control_vlan: '2422'

+  cookiecutter_template_branch: master

+  cookiecutter_template_credentials: gerrit

+  cookiecutter_template_url: ssh://mcp-jenkins@gerrit.mcp.mirantis.net:29418/mk/cookiecutter-templates.git

+  deploy_network_gateway: 172.16.49.126

+  deploy_network_netmask: 255.255.255.192

+  deploy_network_subnet: 172.16.49.64/26

+  deployment_type: physical

+  dns_server01: 8.8.8.8

+  dns_server02: 8.8.4.4

+  email_address: sgudz@mirantis.com

+  infra_bond_mode: active-backup

+  infra_deploy_nic: eth0

+  infra_kvm01_control_address: 10.167.8.241

+  infra_kvm01_deploy_address: 172.16.49.67

+  infra_kvm01_hostname: kvm01

+  infra_kvm02_control_address: 10.167.8.242

+  infra_kvm02_deploy_address: 172.16.49.68

+  infra_kvm02_hostname: kvm02

+  infra_kvm03_control_address: 10.167.8.243

+  infra_kvm03_deploy_address: 172.16.49.69

+  infra_kvm03_hostname: kvm03

+  infra_kvm_vip_address: 10.167.8.240

+  infra_primary_first_nic: eth2

+  infra_primary_second_nic: eth3

+  kubernetes_enabled: 'False'

+  local_repositories: 'False'

+  maas_deploy_address: 10.167.8.91

+  maas_hostname: cfg01

+  opencontrail_analytics_address: 10.167.8.30

+  opencontrail_analytics_hostname: nal

+  opencontrail_analytics_node01_address: 10.167.8.31

+  opencontrail_analytics_node01_hostname: nal01

+  opencontrail_analytics_node02_address: 10.167.8.32

+  opencontrail_analytics_node02_hostname: nal02

+  opencontrail_analytics_node03_address: 10.167.8.33

+  opencontrail_analytics_node03_hostname: nal03

+  opencontrail_compute_iface_mask: '24'

+  opencontrail_control_address: 10.167.8.20

+  opencontrail_control_hostname: ntw

+  opencontrail_control_node01_address: 10.167.8.21

+  opencontrail_control_node01_hostname: ntw01

+  opencontrail_control_node02_address: 10.167.8.22

+  opencontrail_control_node02_hostname: ntw02

+  opencontrail_control_node03_address: 10.167.8.23

+  opencontrail_control_node03_hostname: ntw03

+  opencontrail_enabled: 'True'

+  opencontrail_router01_address: 10.167.8.100

+  opencontrail_router01_hostname: rtr01

+  opencontrail_router02_address: 10.167.8.101

+  opencontrail_router02_hostname: rtr02

+  openstack_benchmark_node01_address: 10.167.8.95

+  openstack_benchmark_node01_hostname: bmk01

+  openstack_compute_count: '1'

+  openstack_compute_rack01_hostname: cmpt

+  openstack_compute_rack01_single_subnet: 10.167.8

+  openstack_compute_rack01_tenant_subnet: 192.168.0

+

+  openstack_compute_node01_hostname: cmp001

+  openstack_compute_node02_hostname: cmp002

+  openstack_compute_node01_address: 10.167.8.101

+  openstack_compute_node02_address: 10.167.8.102

+  openstack_compute_node01_single_address: 10.167.8.101

+  openstack_compute_node02_single_address: 10.167.8.102

+  openstack_compute_node01_deploy_address: 172.16.49.72

+  openstack_compute_node02_deploy_address: 172.16.49.74

+

+  openstack_control_address: 10.167.8.10

+  openstack_control_hostname: ctl

+  openstack_control_node01_address: 10.167.8.11

+  openstack_control_node01_hostname: ctl01

+  openstack_control_node02_address: 10.167.8.12

+  openstack_control_node02_hostname: ctl02

+  openstack_control_node03_address: 10.167.8.13

+  openstack_control_node03_hostname: ctl03

+  openstack_database_address: 10.167.8.50

+  openstack_database_hostname: dbs

+  openstack_database_node01_address: 10.167.8.51

+  openstack_database_node01_hostname: dbs01

+  openstack_database_node02_address: 10.167.8.52

+  openstack_database_node02_hostname: dbs02

+  openstack_database_node03_address: 10.167.8.53

+  openstack_database_node03_hostname: dbs03

+  openstack_enabled: 'True'

+  openstack_message_queue_address: 10.167.8.40

+  openstack_message_queue_hostname: msg

+  openstack_message_queue_node01_address: 10.167.8.41

+  openstack_message_queue_node01_hostname: msg01

+  openstack_message_queue_node02_address: 10.167.8.42

+  openstack_message_queue_node02_hostname: msg02

+  openstack_message_queue_node03_address: 10.167.8.43

+  openstack_message_queue_node03_hostname: msg03

+  openstack_network_engine: opencontrail

+  openstack_nfv_sriov_enabled: 'False'

+  openstack_nova_compute_nfv_req_enabled: 'False'

+  openstack_proxy_address: 10.167.8.80

+  openstack_proxy_hostname: prx

+  openstack_proxy_node01_address: 10.167.8.81

+  openstack_proxy_node01_hostname: prx01

+  openstack_proxy_node02_address: 10.167.8.82

+  openstack_proxy_node02_hostname: prx02

+  openstack_version: ocata

+  oss_enabled: 'False'

+  oss_notification_app_id: '24'

+  oss_notification_sender_password: password

+  oss_notification_smtp_port: '587'

+  oss_notification_webhook_login_id: '13'

+  platform: openstack_enabled

+  public_host: ${_param:openstack_proxy_address}

+  publication_method: email

+  reclass_repository: https://github.com/Mirantis/mk-lab-salt-model.git

+  salt_master_address: 10.167.8.66

+  salt_master_hostname: cfg01

+  salt_master_management_address: 172.16.49.66

+  shared_reclass_url: ssh://mcp-jenkins@gerrit.mcp.mirantis.net:29418/salt-models/reclass-system.git

+  stacklight_enabled: 'True'

+  stacklight_log_address: 10.167.8.60

+  stacklight_log_hostname: log

+  stacklight_log_node01_address: 10.167.8.61

+  stacklight_log_node01_hostname: log01

+  stacklight_log_node02_address: 10.167.8.62

+  stacklight_log_node02_hostname: log02

+  stacklight_log_node03_address: 10.167.8.63

+  stacklight_log_node03_hostname: log03

+  stacklight_monitor_address: 10.167.8.70

+  stacklight_monitor_hostname: mon

+  stacklight_monitor_node01_address: 10.167.8.71

+  stacklight_monitor_node01_hostname: mon01

+  stacklight_monitor_node02_address: 10.167.8.72

+  stacklight_monitor_node02_hostname: mon02

+  stacklight_monitor_node03_address: 10.167.8.73

+  stacklight_monitor_node03_hostname: mon03

+  stacklight_notification_address: alerts@localhost

+  stacklight_notification_smtp_host: 127.0.0.1

+  stacklight_telemetry_address: 10.167.8.85

+  stacklight_telemetry_hostname: mtr

+  stacklight_telemetry_node01_address: 10.167.8.86

+  stacklight_telemetry_node01_hostname: mtr01

+  stacklight_telemetry_node02_address: 10.167.8.87

+  stacklight_telemetry_node02_hostname: mtr02

+  stacklight_telemetry_node03_address: 10.167.8.88

+  stacklight_telemetry_node03_hostname: mtr03

+  stacklight_version: '2'

+  tenant_network_gateway: ''

+  tenant_network_netmask: 255.255.255.0

+  tenant_network_subnet: 192.168.0.0/24

+  tenant_vlan: '2423'

+  upstream_proxy_enabled: 'False'

+  openstack_nfv_dpdk_enabled: 'True'

+  openstack_nova_compute_hugepages_count: 40

+  opencontrail_compute_iface: 'enp5s0f0'

diff --git a/tcp_tests/templates/cookied-bm-mcp-ocata-contrail/salt-context-cookiecutter-contrail.yaml b/tcp_tests/templates/cookied-bm-mcp-ocata-contrail/salt-context-cookiecutter-contrail.yaml
index 4eecd23..f791c23 100644
--- a/tcp_tests/templates/cookied-bm-mcp-ocata-contrail/salt-context-cookiecutter-contrail.yaml
+++ b/tcp_tests/templates/cookied-bm-mcp-ocata-contrail/salt-context-cookiecutter-contrail.yaml
@@ -7,7 +7,7 @@
   compute_primary_second_nic: enp5s0f1

   context_seed: WCQ00jbWQE6qxjDdhHsS7SNGExTJ9HVanC9LXyJHF2IIe0Qj6vtaXFP5FSwEK6jm

   control_network_netmask: 255.255.255.0

-  control_network_subnet: 10.167.4.0/24

+  control_network_subnet: 10.167.8.0/24

   control_vlan: '2422'

   cookiecutter_template_branch: master

   cookiecutter_template_credentials: gerrit

@@ -21,94 +21,95 @@
   email_address: sgudz@mirantis.com

   infra_bond_mode: active-backup

   infra_deploy_nic: eth0

-  infra_kvm01_control_address: 10.167.4.241

+  infra_kvm01_control_address: 10.167.8.241

   infra_kvm01_deploy_address: 172.16.49.67

   infra_kvm01_hostname: kvm01

-  infra_kvm02_control_address: 10.167.4.242

+  infra_kvm02_control_address: 10.167.8.242

   infra_kvm02_deploy_address: 172.16.49.68

   infra_kvm02_hostname: kvm02

-  infra_kvm03_control_address: 10.167.4.243

+  infra_kvm03_control_address: 10.167.8.243

   infra_kvm03_deploy_address: 172.16.49.69

   infra_kvm03_hostname: kvm03

-  infra_kvm_vip_address: 10.167.4.240

+  infra_kvm_vip_address: 10.167.8.240

   infra_primary_first_nic: eth2

   infra_primary_second_nic: eth3

   kubernetes_enabled: 'False'

   local_repositories: 'False'

-  maas_deploy_address: 10.167.4.91

+  maas_deploy_address: 10.167.8.91

   maas_hostname: cfg01

-  opencontrail_analytics_address: 10.167.4.30

+  opencontrail_analytics_address: 10.167.8.30

   opencontrail_analytics_hostname: nal

-  opencontrail_analytics_node01_address: 10.167.4.31

+  opencontrail_analytics_node01_address: 10.167.8.31

   opencontrail_analytics_node01_hostname: nal01

-  opencontrail_analytics_node02_address: 10.167.4.32

+  opencontrail_analytics_node02_address: 10.167.8.32

   opencontrail_analytics_node02_hostname: nal02

-  opencontrail_analytics_node03_address: 10.167.4.33

+  opencontrail_analytics_node03_address: 10.167.8.33

   opencontrail_analytics_node03_hostname: nal03

   opencontrail_compute_iface_mask: '24'

-  opencontrail_control_address: 10.167.4.20

+  opencontrail_control_address: 10.167.8.20

   opencontrail_control_hostname: ntw

-  opencontrail_control_node01_address: 10.167.4.21

+  opencontrail_control_node01_address: 10.167.8.21

   opencontrail_control_node01_hostname: ntw01

-  opencontrail_control_node02_address: 10.167.4.22

+  opencontrail_control_node02_address: 10.167.8.22

   opencontrail_control_node02_hostname: ntw02

-  opencontrail_control_node03_address: 10.167.4.23

+  opencontrail_control_node03_address: 10.167.8.23

   opencontrail_control_node03_hostname: ntw03

   opencontrail_enabled: 'True'

-  opencontrail_router01_address: 10.167.4.100

+  opencontrail_router01_address: 10.167.8.100

   opencontrail_router01_hostname: rtr01

-  opencontrail_router02_address: 10.167.4.101

+  opencontrail_router02_address: 10.167.8.101

   opencontrail_router02_hostname: rtr02

-  openstack_benchmark_node01_address: 10.167.4.95

+

+  openstack_benchmark_node01_address: 10.167.8.95

   openstack_benchmark_node01_hostname: bmk01

   openstack_compute_count: '1'

   openstack_compute_rack01_hostname: cmpt

-  openstack_compute_rack01_single_subnet: 10.167.4

+  openstack_compute_rack01_single_subnet: 10.167.8

   openstack_compute_rack01_tenant_subnet: 192.168.0

 

   openstack_compute_node01_hostname: cmp001

   openstack_compute_node02_hostname: cmp002

-  openstack_compute_node01_address: 10.167.4.72

-  openstack_compute_node02_address: 10.167.4.74

-  openstack_compute_node01_single_address: 10.167.4.72

-  openstack_compute_node02_single_address: 10.167.4.74

+  openstack_compute_node01_address: 10.167.8.101

+  openstack_compute_node02_address: 10.167.8.102

+  openstack_compute_node01_single_address: 10.167.8.101

+  openstack_compute_node02_single_address: 10.167.8.102

   openstack_compute_node01_deploy_address: 172.16.49.72

   openstack_compute_node02_deploy_address: 172.16.49.74

 

-  openstack_control_address: 10.167.4.10

+  openstack_control_address: 10.167.8.10

   openstack_control_hostname: ctl

-  openstack_control_node01_address: 10.167.4.11

+  openstack_control_node01_address: 10.167.8.11

   openstack_control_node01_hostname: ctl01

-  openstack_control_node02_address: 10.167.4.12

+  openstack_control_node02_address: 10.167.8.12

   openstack_control_node02_hostname: ctl02

-  openstack_control_node03_address: 10.167.4.13

+  openstack_control_node03_address: 10.167.8.13

   openstack_control_node03_hostname: ctl03

-  openstack_database_address: 10.167.4.50

+  openstack_database_address: 10.167.8.50

   openstack_database_hostname: dbs

-  openstack_database_node01_address: 10.167.4.51

+  openstack_database_node01_address: 10.167.8.51

   openstack_database_node01_hostname: dbs01

-  openstack_database_node02_address: 10.167.4.52

+  openstack_database_node02_address: 10.167.8.52

   openstack_database_node02_hostname: dbs02

-  openstack_database_node03_address: 10.167.4.53

+  openstack_database_node03_address: 10.167.8.53

   openstack_database_node03_hostname: dbs03

   openstack_enabled: 'True'

-  openstack_message_queue_address: 10.167.4.40

+  openstack_message_queue_address: 10.167.8.40

   openstack_message_queue_hostname: msg

-  openstack_message_queue_node01_address: 10.167.4.41

+  openstack_message_queue_node01_address: 10.167.8.41

   openstack_message_queue_node01_hostname: msg01

-  openstack_message_queue_node02_address: 10.167.4.42

+  openstack_message_queue_node02_address: 10.167.8.42

   openstack_message_queue_node02_hostname: msg02

-  openstack_message_queue_node03_address: 10.167.4.43

+  openstack_message_queue_node03_address: 10.167.8.43

   openstack_message_queue_node03_hostname: msg03

   openstack_network_engine: opencontrail

-  openstack_nfv_dpdk_enabled: 'False'

+  openstack_nfv_dpdk_enabled: 'True'

   openstack_nfv_sriov_enabled: 'False'

   openstack_nova_compute_nfv_req_enabled: 'False'

-  openstack_proxy_address: 10.167.4.80

+  openstack_proxy_address: 10.167.8.80

   openstack_proxy_hostname: prx

-  openstack_proxy_node01_address: 10.167.4.81

+  openstack_proxy_node01_address: 10.167.8.81

   openstack_proxy_node01_hostname: prx01

-  openstack_proxy_node02_address: 10.167.4.82

+  openstack_proxy_node02_address: 10.167.8.82

   openstack_proxy_node02_hostname: prx02

   openstack_version: ocata

   oss_enabled: 'False'

@@ -120,42 +121,41 @@
   public_host: ${_param:openstack_proxy_address}

   publication_method: email

   reclass_repository: https://github.com/Mirantis/mk-lab-salt-model.git

-  salt_api_password: BIDWhCG4zuArfGwwKDuh3q32jdTLrWS1

-  salt_api_password_hash: $6$bGHqshet$Rf1A7.SWK.8VattpFelJ8yC4OHdnXCZdIIRsMLtoOb1ZDDO7meEEpqTWJY4xpQbXaXwO0aLjVDcF34ucfuxpb1

-  salt_master_address: 10.167.4.66

+  salt_master_address: 10.167.8.66

   salt_master_hostname: cfg01

   salt_master_management_address: 172.16.49.66

   shared_reclass_url: ssh://mcp-jenkins@gerrit.mcp.mirantis.net:29418/salt-models/reclass-system.git

   stacklight_enabled: 'True'

-  stacklight_log_address: 10.167.4.60

+  stacklight_log_address: 10.167.8.60

   stacklight_log_hostname: log

-  stacklight_log_node01_address: 10.167.4.61

+  stacklight_log_node01_address: 10.167.8.61

   stacklight_log_node01_hostname: log01

-  stacklight_log_node02_address: 10.167.4.62

+  stacklight_log_node02_address: 10.167.8.62

   stacklight_log_node02_hostname: log02

-  stacklight_log_node03_address: 10.167.4.63

+  stacklight_log_node03_address: 10.167.8.63

   stacklight_log_node03_hostname: log03

-  stacklight_monitor_address: 10.167.4.70

+  stacklight_monitor_address: 10.167.8.70

   stacklight_monitor_hostname: mon

-  stacklight_monitor_node01_address: 10.167.4.71

+  stacklight_monitor_node01_address: 10.167.8.71

   stacklight_monitor_node01_hostname: mon01

-  stacklight_monitor_node02_address: 10.167.4.72

+  stacklight_monitor_node02_address: 10.167.8.72

   stacklight_monitor_node02_hostname: mon02

-  stacklight_monitor_node03_address: 10.167.4.73

+  stacklight_monitor_node03_address: 10.167.8.73

   stacklight_monitor_node03_hostname: mon03

   stacklight_notification_address: alerts@localhost

   stacklight_notification_smtp_host: 127.0.0.1

-  stacklight_telemetry_address: 10.167.4.85

+  stacklight_telemetry_address: 10.167.8.85

   stacklight_telemetry_hostname: mtr

-  stacklight_telemetry_node01_address: 10.167.4.86

+  stacklight_telemetry_node01_address: 10.167.8.86

   stacklight_telemetry_node01_hostname: mtr01

-  stacklight_telemetry_node02_address: 10.167.4.87

+  stacklight_telemetry_node02_address: 10.167.8.87

   stacklight_telemetry_node02_hostname: mtr02

-  stacklight_telemetry_node03_address: 10.167.4.88

+  stacklight_telemetry_node03_address: 10.167.8.88

   stacklight_telemetry_node03_hostname: mtr03

   stacklight_version: '2'

-  tenant_network_gateway: 192.168.0.1

+  tenant_network_gateway: ''

   tenant_network_netmask: 255.255.255.0

   tenant_network_subnet: 192.168.0.0/24

   tenant_vlan: '2423'

   upstream_proxy_enabled: 'False'

+  openstack_nova_compute_hugepages_count: 40

diff --git a/tcp_tests/templates/cookied-bm-mcp-ocata-contrail/salt-context-environment.yaml b/tcp_tests/templates/cookied-bm-mcp-ocata-contrail/salt-context-environment.yaml
index 53417f2..98eaa56 100644
--- a/tcp_tests/templates/cookied-bm-mcp-ocata-contrail/salt-context-environment.yaml
+++ b/tcp_tests/templates/cookied-bm-mcp-ocata-contrail/salt-context-environment.yaml
@@ -181,7 +181,6 @@
         eth1:

           role: single_ctl

 

-

     mtr01.cookied-bm-mcp-ocata-contrail.local:

       reclass_storage_name: stacklight_telemetry_node01

       roles:

@@ -235,3 +234,12 @@
       interfaces:

         ens3:

           role: single_ctl

+

+    bmk01.cookied-bm-mcp-ocata-contrail.local:

+      reclass_storage_name: openstack_benchmark_node01

+      roles:

+      - openstack_benchmark

+      - linux_system_codename_xenial

+      interfaces:

+        ens3:

+          role: single_ctl

diff --git a/tcp_tests/templates/cookied-bm-mcp-ocata-contrail/salt.yaml b/tcp_tests/templates/cookied-bm-mcp-ocata-contrail/salt.yaml
index 3c8f025..4051882 100644
--- a/tcp_tests/templates/cookied-bm-mcp-ocata-contrail/salt.yaml
+++ b/tcp_tests/templates/cookied-bm-mcp-ocata-contrail/salt.yaml
@@ -1,6 +1,9 @@
 {% from 'cookied-bm-mcp-ocata-contrail/underlay.yaml' import HOSTNAME_CFG01 with context %}
 {% from 'cookied-bm-mcp-ocata-contrail/underlay.yaml' import LAB_CONFIG_NAME with context %}
 {% from 'cookied-bm-mcp-ocata-contrail/underlay.yaml' import DOMAIN_NAME with context %}
+{% from 'cookied-bm-mcp-ocata-contrail/underlay.yaml' import HOSTNAME_KVM01 with context %}
+{% from 'cookied-bm-mcp-ocata-contrail/underlay.yaml' import HOSTNAME_KVM02 with context %}
+{% from 'cookied-bm-mcp-ocata-contrail/underlay.yaml' import HOSTNAME_KVM03 with context %}
 
 {% set SALT_MODELS_REPOSITORY = os_env('SALT_MODELS_REPOSITORY','https://gerrit.mcp.mirantis.net/salt-models/mcp-virtual-lab') %}
 # Other salt model repository parameters see in shared-salt.yaml
@@ -8,7 +11,7 @@
 # Name of the context file (without extension, that is fixed .yaml) used to render the Environment model
 {% set ENVIRONMENT_MODEL_INVENTORY_NAME = os_env('ENVIRONMENT_MODEL_INVENTORY_NAME','physical-cookied-bm-mcp-ocata-contrail') %}
 # Path to the context files used to render Cluster and Environment models
-{%- set CLUSTER_CONTEXT_NAME = 'salt-context-cookiecutter-contrail.yaml' %}
+{%- set CLUSTER_CONTEXT_NAME = 'salt-context-cookiecutter-contrail-dpdk.yaml' %}
 {%- set ENVIRONMENT_CONTEXT_NAMES = ['salt-context-environment.yaml','lab04-physical-inventory.yaml'] %}
 {%- set CONTROL_VLAN = os_env('CONTROL_VLAN', '2422') %}
 {%- set TENANT_VLAN = os_env('TENANT_VLAN', '2423') %}
@@ -16,16 +19,72 @@
 
 {% import 'shared-salt.yaml' as SHARED with context %}
 
+- description: (REMOVE asap) Hack KVMs of Hash sum mismatch
+  cmd: |
+    rm -rf /var/lib/apt/lists/*;
+    apt-get clean;
+    apt-get update;
+  node_name: {{ HOSTNAME_KVM01 }}
+  retry: {count: 1, delay: 5}
+  skip_fail: true
+
+- description: (REMOVE asap) Hack KVMs of Hash sum mismatch
+  cmd: |
+    rm -rf /var/lib/apt/lists/*;
+    apt-get clean;
+    apt-get update;
+  node_name: {{ HOSTNAME_KVM02 }}
+  retry: {count: 1, delay: 5}
+  skip_fail: true
+
+- description: (REMOVE asap) Hack KVMs of Hash sum mismatch
+  cmd: |
+    rm -rf /var/lib/apt/lists/*;
+    apt-get clean;
+    apt-get update;
+  node_name: {{ HOSTNAME_KVM03 }}
+  retry: {count: 1, delay: 5}
+  skip_fail: true
+
+
 {{ SHARED.MACRO_INSTALL_SALT_MASTER() }}
 
 {{ SHARED.MACRO_GENERATE_COOKIECUTTER_MODEL(CONTROL_VLAN=CONTROL_VLAN, TENANT_VLAN=TENANT_VLAN) }}
 
+- description: Temporary WR for cinder backend defined by default in reclass.system
+  cmd: |
+    sed -i 's/backend\:\ {}//g' /srv/salt/reclass/classes/system/cinder/control/cluster.yml;
+  node_name: {{ HOSTNAME_CFG01 }}
+  retry: {count: 1, delay: 5}
+  skip_fail: false
+
+
 {{ SHARED.MACRO_GENERATE_AND_ENABLE_ENVIRONMENT_MODEL() }}
 
 {{ SHARED.MACRO_CONFIGURE_RECLASS(FORMULA_SERVICES='"linux" "reclass" "salt" "openssh" "ntp" "git" "nginx" "collectd" "sensu" "heka" "sphinx" "keystone" "mysql" "grafana" "haproxy" "rsyslog" "horizon" "prometheus" "telegraf" "elasticsearch" "powerdns" "glusterfs" "xtrabackup" "maas"') }}
 
+- description: "Workaround for haproxy without listen"
+  cmd: |
+    set -e;
+    git clone https://gerrit.mcp.mirantis.net/salt-formulas/haproxy;
+    cd haproxy/;
+    git fetch https://gerrit.mcp.mirantis.net/salt-formulas/haproxy refs/changes/39/11339/1 && git checkout FETCH_HEAD;
+    cp haproxy/files/haproxy.cfg /srv/salt/env/prd/haproxy/files/;
+  node_name: {{ HOSTNAME_CFG01 }}
+  retry: {count: 1, delay: 10}
+  skip_fail: true
+
 {{ SHARED.MACRO_INSTALL_SALT_MINIONS() }}
 
+- description: (REMOVE asap) Hack CFG of Hash sum mismatch
+  cmd: |
+    rm -rf /var/lib/apt/lists/*;
+    apt-get clean;
+    apt-get update;
+  node_name: {{ HOSTNAME_CFG01 }}
+  retry: {count: 1, delay: 5}
+  skip_fail: true
+
 {{ SHARED.MACRO_RUN_SALT_MASTER_UNDERLAY_STATES() }}
 
 - description: "Workaround for rack01 compute generator"
@@ -36,8 +95,8 @@
     # Add openstack_compute_node definition from system
     reclass-tools add-key 'classes' 'system.reclass.storage.system.openstack_compute_multi' /srv/salt/reclass/classes/cluster/{{ LAB_CONFIG_NAME }}/infra/config.yml --merge;
     # Set ipaddresses
-#    salt-call reclass.cluster_meta_set openstack_compute_node01_single_address 10.167.4.72 /srv/salt/reclass/classes/cluster/{{ LAB_CONFIG_NAME }}/infra/init.yml;
-#    salt-call reclass.cluster_meta_set openstack_compute_node02_single_address 10.167.4.74 /srv/salt/reclass/classes/cluster/{{ LAB_CONFIG_NAME }}/infra/init.yml;
+#    salt-call reclass.cluster_meta_set openstack_compute_node01_single_address 10.167.8.101 /srv/salt/reclass/classes/cluster/{{ LAB_CONFIG_NAME }}/infra/init.yml;
+#    salt-call reclass.cluster_meta_set openstack_compute_node02_single_address 10.167.8.102 /srv/salt/reclass/classes/cluster/{{ LAB_CONFIG_NAME }}/infra/init.yml;
 #    salt-call reclass.cluster_meta_set openstack_compute_node01_deploy_address 172.16.49.72 /srv/salt/reclass/classes/cluster/{{ LAB_CONFIG_NAME }}/infra/init.yml;
 #    salt-call reclass.cluster_meta_set openstack_compute_node02_deploy_address 172.16.49.74 /srv/salt/reclass/classes/cluster/{{ LAB_CONFIG_NAME }}/infra/init.yml;
 
@@ -56,24 +115,33 @@
     # Add tenant and single addresses for computes
     salt-call reclass.cluster_meta_set deploy_address 172.16.49.72 /srv/salt/reclass/nodes/_generated/cmp001.cookied-bm-mcp-ocata-contrail.local.yml
     salt-call reclass.cluster_meta_set tenant_address 192.168.0.101 /srv/salt/reclass/nodes/_generated/cmp001.cookied-bm-mcp-ocata-contrail.local.yml
-    salt-call reclass.cluster_meta_set single_address 10.167.4.72 /srv/salt/reclass/nodes/_generated/cmp001.cookied-bm-mcp-ocata-contrail.local.yml
+    salt-call reclass.cluster_meta_set single_address 10.167.8.101 /srv/salt/reclass/nodes/_generated/cmp001.cookied-bm-mcp-ocata-contrail.local.yml
 
     salt-call reclass.cluster_meta_set deploy_address 172.16.49.74 /srv/salt/reclass/nodes/_generated/cmp002.cookied-bm-mcp-ocata-contrail.local.yml
     salt-call reclass.cluster_meta_set tenant_address 192.168.0.102 /srv/salt/reclass/nodes/_generated/cmp002.cookied-bm-mcp-ocata-contrail.local.yml
-    salt-call reclass.cluster_meta_set single_address 10.167.4.74 /srv/salt/reclass/nodes/_generated/cmp002.cookied-bm-mcp-ocata-contrail.local.yml
+    salt-call reclass.cluster_meta_set single_address 10.167.8.102 /srv/salt/reclass/nodes/_generated/cmp002.cookied-bm-mcp-ocata-contrail.local.yml
 
   node_name: {{ HOSTNAME_CFG01 }}
   retry: {count: 1, delay: 10}
   skip_fail: false
 
-- description: "Workaround for PROD-15087"
+
+- description: Temporary workaround for removing cinder-volume from CTL nodes
   cmd: |
-    set -e;
-    reclass-tools add-key 'classes' 'system.linux.system.repo.mcp.openstack' /srv/salt/reclass/classes/cluster/{{ LAB_CONFIG_NAME }}/stacklight/telemetry.yml --merge;
+    sed -i 's/\-\ system\.cinder\.volume\.single//g' /srv/salt/reclass/classes/cluster/{{ LAB_CONFIG_NAME }}/openstack/control.yml;
+    sed -i 's/\-\ system\.cinder\.volume\.notification\.messagingv2//g' /srv/salt/reclass/classes/cluster/{{ LAB_CONFIG_NAME }}/openstack/control.yml;
+  node_name: {{ HOSTNAME_CFG01 }}
+  retry: {count: 1, delay: 5}
+  skip_fail: true
+
+- description: Temporary WR (Remove ASAP) for downgrade packages
+  cmd: |
+    salt --hard-crash --state-output=mixed --state-verbose=False -C 'I@linux:system' state.sls linux.system.repo;
+    salt --hard-crash --state-output=mixed --state-verbose=False -C 'I@linux:system' cmd.run "apt-get update"
+    salt --hard-crash --state-output=mixed --state-verbose=False -C 'I@linux:system' cmd.run "apt-get install -y --allow-downgrades vlan";
   node_name: {{ HOSTNAME_CFG01 }}
   retry: {count: 1, delay: 10}
-  skip_fail: false
-
+  skip_fail: true
 
 {{ SHARED.MACRO_BOOTSTRAP_ALL_MINIONS() }}
 
@@ -105,6 +173,14 @@
 # Configure all running salt minion nodes
 #########################################
 
+- description: Hack resolv.conf on VCP nodes for internal services access
+  cmd: |
+    salt --hard-crash --state-output=mixed --state-verbose=False -C '* and not kvm* and not cmp* and not gtw* and not cfg*' cmd.run "echo 'nameserver 172.18.208.44' > /etc/resolv.conf;"
+    salt --hard-crash --state-output=mixed --state-verbose=False -C '* and not kvm* and not cmp* and not gtw* and not cfg*' cmd.run "echo 'nameserver 8.8.8.8' >> /etc/resolv.conf;"
+  node_name: {{ HOSTNAME_CFG01 }}
+  retry: {count: 1, delay: 5}
+  skip_fail: false
+
 - description: Refresh pillars on all minions
   cmd: salt --hard-crash --state-output=mixed --state-verbose=False '*' saltutil.refresh_pillar
   node_name: {{ HOSTNAME_CFG01 }}
@@ -123,22 +199,20 @@
   retry: {count: 1, delay: 5}
   skip_fail: false
 
+- description: Temporary WR (Remove ASAP) for downgrade packages
+  cmd: |
+    salt --hard-crash --state-output=mixed --state-verbose=False -C 'I@linux:system' state.sls linux.system.repo;
+    salt --hard-crash --state-output=mixed --state-verbose=False -C 'I@linux:system' cmd.run "apt-get update"
+    salt --hard-crash --state-output=mixed --state-verbose=False -C 'I@linux:system' cmd.run "apt-get install -y --allow-downgrades vlan";
+  node_name: {{ HOSTNAME_CFG01 }}
+  retry: {count: 1, delay: 10}
+  skip_fail: true
+
 {{ SHARED.MACRO_BOOTSTRAP_ALL_MINIONS() }}
 
-#- description: Hack gtw node
-#  cmd: salt 'gtw*' cmd.run "ip addr del {{ SHARED.IPV4_NET_CONTROL_PREFIX }}.110/24 dev ens4; ip addr flush dev ens4";
-#  node_name: {{ HOSTNAME_CFG01 }}
-#  retry: {count: 1, delay: 10}
-#  skip_fail: false
-
-#- description: Hack cmp01 node
-#  cmd: salt 'cmp01*' cmd.run "ip addr del {{ SHARED.IPV4_NET_CONTROL_PREFIX }}.105/24 dev ens4; ip addr flush dev ens4";
-#  node_name: {{ HOSTNAME_CFG01 }}
-#  retry: {count: 1, delay: 10}
-#  skip_fail: false
-
-#- description: Hack cmp02 node
-#  cmd: salt 'cmp02*' cmd.run "ip addr del {{ SHARED.IPV4_NET_CONTROL_PREFIX }}.106/24 dev ens4; ip addr flush dev ens4";
-#  node_name: {{ HOSTNAME_CFG01 }}
-#  retry: {count: 1, delay: 10}
-#  skip_fail: false
+- description: (REMOVE asap) Hack VCPs of Hash sum mismatch
+  cmd: |
+    salt --hard-crash --state-output=mixed --state-verbose=False -C '* and not kvm* and not cmp* and not gtw* and not cfg*' cmd.run "rm -rf /var/lib/apt/lists/*; apt-get clean; apt-get update -y;"
+  node_name: {{ HOSTNAME_CFG01 }}
+  retry: {count: 1, delay: 5}
+  skip_fail: true
diff --git a/tcp_tests/templates/cookied-bm-mcp-ocata-contrail/sl.yaml b/tcp_tests/templates/cookied-bm-mcp-ocata-contrail/sl.yaml
index 10d0d9c..9e14bf2 100644
--- a/tcp_tests/templates/cookied-bm-mcp-ocata-contrail/sl.yaml
+++ b/tcp_tests/templates/cookied-bm-mcp-ocata-contrail/sl.yaml
@@ -1,6 +1,6 @@
 {% from 'cookied-bm-mcp-ocata-contrail/underlay.yaml' import HOSTNAME_CFG01 with context %}
 
-# Install docker swarm
+# Install docker swarm.
 - description: Install keepalived on mon nodes
   cmd: salt --hard-crash --state-output=mixed --state-verbose=False
     -C 'mon*' state.sls keepalived
@@ -142,39 +142,27 @@
   retry: {count: 1, delay: 10}
   skip_fail: false
 
-# Change environment configuration before deploy
-- description: Set SL docker images deploy parameters
-  cmd: |
-  {% for sl_opt, value in config.sl_deploy.items() %}
-    {% if value|string() %}
-    salt-call reclass.cluster_meta_set {{ sl_opt }} {{ value }};
-    {% endif %}
-  {% endfor %}
-  node_name: {{ HOSTNAME_CFG01 }}
-  retry: {count: 1, delay: 1}
-  skip_fail: false
-
 # Configure the services running in Docker Swarm
 - description: Install prometheus alertmanager
   cmd: salt -C 'I@docker:swarm' state.sls prometheus,heka.remote_collector -b 1
   node_name: {{ HOSTNAME_CFG01 }}
-  retry: {count: 1, delay: 10}
+  retry: {count: 2, delay: 10}
   skip_fail: false
 
 - description: run docker state
   cmd: salt -C 'I@docker:swarm:role:master' state.sls docker
   node_name: {{ HOSTNAME_CFG01 }}
-  retry: {count: 1, delay: 10}
+  retry: {count: 2, delay: 120}
   skip_fail: false
 
 - description: docker ps
-  cmd: salt -C 'I@docker:swarm' dockerng.ps
+  cmd: sleep 120; salt -C 'I@docker:swarm' dockerng.ps
   node_name: {{ HOSTNAME_CFG01 }}
   retry: {count: 1, delay: 10}
   skip_fail: false
 
 - description: Configure Grafana dashboards and datasources
-  cmd: sleep 30;  salt -C 'I@grafana:client' state.sls grafana.client
+  cmd: sleep 60;  salt -C 'I@grafana:client' state.sls grafana.client
   node_name: {{ HOSTNAME_CFG01 }}
   retry: {count: 2, delay: 10}
   skip_fail: false
diff --git a/tcp_tests/templates/cookied-bm-mcp-ocata-contrail/underlay--user-data1604.yaml b/tcp_tests/templates/cookied-bm-mcp-ocata-contrail/underlay--user-data1604.yaml
index a362d86..6ac6dd5 100644
--- a/tcp_tests/templates/cookied-bm-mcp-ocata-contrail/underlay--user-data1604.yaml
+++ b/tcp_tests/templates/cookied-bm-mcp-ocata-contrail/underlay--user-data1604.yaml
@@ -52,6 +52,8 @@
    ############## TCP Cloud cfg01 node ##################

    #- sleep 120

    - echo "Preparing base OS"

+   - echo "nameserver 172.18.208.44" > /etc/resolv.conf;

+   - echo "nameserver 8.8.8.8" >> /etc/resolv.conf;

    - which wget >/dev/null || (apt-get update; apt-get install -y wget)

 

    - echo "deb [arch=amd64] http://apt.mirantis.com/xenial {{ REPOSITORY_SUITE }} salt extra" > /etc/apt/sources.list.d/mcp_salt.list;

diff --git a/tcp_tests/templates/shared-salt.yaml b/tcp_tests/templates/shared-salt.yaml
index 145c57f..955972c 100644
--- a/tcp_tests/templates/shared-salt.yaml
+++ b/tcp_tests/templates/shared-salt.yaml
@@ -9,6 +9,7 @@
 {% set SALT_MODELS_SYSTEM_COMMIT = os_env('SALT_MODELS_SYSTEM_COMMIT','') %}
 {% set SALT_MODELS_SYSTEM_REF_CHANGE = os_env('SALT_MODELS_SYSTEM_REF_CHANGE','') %}
 {% set COOKIECUTTER_REF_CHANGE = os_env('COOKIECUTTER_REF_CHANGE','') %}
+{% set ENVIRONMENT_TEMPLATE_REF_CHANGE = os_env('ENVIRONMENT_TEMPLATE_REF_CHANGE','') %}
 
 {% set REPOSITORY_SUITE = os_env('REPOSITORY_SUITE', 'testing') %}
 
@@ -80,7 +81,6 @@
   skip_fail: false
 {%- endmacro %}
 
-
 {%- macro MACRO_CLONE_RECLASS_MODELS(IS_CONTRAIL_LAB=false) %}
 {############################################################}
 {# Creates a 'cluster' model from cookiecutter-templates and 'environment' model from uploaded template #}
@@ -205,10 +205,6 @@
     sed -i 's/tenant_vlan:.*/tenant_vlan: {{ TENANT_VLAN }}/g' {{ CLUSTER_CONTEXT_PATH }}
     {%- endif %}
 
-    # Temporary workaround (with hardcoded address .90 -> .15) of bug https://mirantis.jira.com/browse/PROD-14377
-    # sed -i 's/salt_master_address:.*/salt_master_address: {{ IPV4_NET_CONTROL_PREFIX }}.15/g' {{ CLUSTER_CONTEXT_PATH }}
-    # sed -i 's/salt_master_management_address:.*/salt_master_management_address: {{ IPV4_NET_ADMIN_PREFIX }}.15/g' {{ CLUSTER_CONTEXT_PATH }}
-
     # Replace firstly to an intermediate value to avoid intersection between
     # already replaced and replacing networks.
     # For example, if generated IPV4_NET_ADMIN_PREFIX=10.16.0 , then there is a risk of replacing twice:
@@ -278,7 +274,7 @@
 {%- macro MACRO_GENERATE_AND_ENABLE_ENVIRONMENT_MODEL() %}
 {########################################################}
 
-- description: "[EXPERIMENTAL] Clone 'environment-template' repository to {{ HOSTNAME_CFG01 }}"
+- description: "[EXPERIMENTAL] Clone 'environment-template' repository to {{ HOSTNAME_CFG01 }}."
   cmd: |
     set -e;
     mkdir -p /tmp/environment/;
@@ -286,6 +282,18 @@
   node_name: {{ HOSTNAME_CFG01 }}
   skip_fail: false
 
+{%- if ENVIRONMENT_TEMPLATE_REF_CHANGE != '' %}
+- description: Fetch changes for environment templates
+  cmd: |
+    set -e;
+    pushd /tmp/environment/environment_template &&
+    git fetch https://github.com/Mirantis/environment-template {{ ENVIRONMENT_TEMPLATE_REF_CHANGE }} &&
+    git checkout FETCH_HEAD &&
+    popd
+  node_name: {{ HOSTNAME_CFG01 }}
+  skip_fail: false
+{%- endif %}
+
 {%- for ENVIRONMENT_CONTEXT_NAME in ENVIRONMENT_CONTEXT_NAMES %}
 - description: "[EXPERIMENTAL] Upload environment inventory to {{ HOSTNAME_CFG01 }}"
   upload:
diff --git a/tcp_tests/tests/system/test_opencontrail.py b/tcp_tests/tests/system/test_opencontrail.py
index e21d978..9e56780 100644
--- a/tcp_tests/tests/system/test_opencontrail.py
+++ b/tcp_tests/tests/system/test_opencontrail.py
@@ -15,6 +15,7 @@
 import pytest
 
 from tcp_tests import logger
+from tcp_tests import settings
 
 LOG = logger.logger
 
@@ -25,7 +26,7 @@
 
     @pytest.mark.fail_snapshot
     def test_opencontrail(self, config, openstack_deployed,
-                          show_step, opencontrail):
+                          show_step, sl_deployed):
         """Runner for Juniper contrail-tests
 
         Scenario:
@@ -35,9 +36,19 @@
             4. Prepare contrail-tests on ctl01 node
             5. Run contrail-tests
         """
-        opencontrail.prepare_tests(
-            config.opencontrail.opencontrail_prepare_tests_steps_path)
+        openstack_deployed._salt.local(
+            tgt='*', fun='cmd.run',
+            args='service ntp stop; ntpd -gq; service ntp start')
 
-        opencontrail.run_tests(
-            tags=config.opencontrail.opencontrail_tags,
-            features=config.opencontrail.opencontrail_features)
+        if settings.RUN_TEMPEST:
+            # openstack_deployed.run_tempest(target='ctl01',
+            #                               pattern=settings.PATTERN)
+            openstack_deployed.download_tempest_report(stored_node='cfg01')
+        LOG.info("*************** DONE **************")
+
+        # opencontrail.prepare_tests(
+        #     config.opencontrail.opencontrail_prepare_tests_steps_path)
+
+        # opencontrail.run_tests(
+        #     tags=config.opencontrail.opencontrail_tags,
+        #     features=config.opencontrail.opencontrail_features)