Working deploy for controller and compute nodes

- use 'dash' branch for mk-lab-salt-model repo (it has a lot of
  improvements and fixes)
- use less number of nodes to match the 'mk22-lab-advanced' model
- force update packages before configuring salt.minions
- use saltstack repo for latest salt.minions on trusty

* Note if the deploy starts from an 'underlay' snapshot,
  keepalived can lose VIP after update DHCP leases on nodes.
  It's better to start deploy from clean environment.
diff --git a/tcp_tests/templates/tcpcloud--user-data-master-node.yaml b/tcp_tests/templates/tcpcloud--user-data-master-node.yaml
index bfbb85f..fa24840 100644
--- a/tcp_tests/templates/tcpcloud--user-data-master-node.yaml
+++ b/tcp_tests/templates/tcpcloud--user-data-master-node.yaml
@@ -39,6 +39,8 @@
    - which wget >/dev/null || (apt-get update; apt-get install -y wget)
 
    - echo "deb [arch=amd64] http://apt.tcpcloud.eu/nightly/ xenial main security extra tcp tcp-salt" > /etc/apt/sources.list
+   # 'tcp-salt' from trusty is for temporary workaround until formulas will be fixed in xenial
+   - echo "deb [arch=amd64] http://apt.tcpcloud.eu/nightly/ trusty tcp-salt" >> /etc/apt/sources.list
    - wget -O - http://apt.tcpcloud.eu/public.gpg | apt-key add -
 
    - apt-get clean
@@ -77,7 +79,17 @@
    - HOME=/root git config --global user.name "TCP QA"
 
    - echo "Configuring reclass ..."
-   - git clone https://github.com/Mirantis/mk-lab-salt-model.git /srv/salt/reclass -b master
+   - git clone https://github.com/Mirantis/mk-lab-salt-model.git /srv/salt/reclass -b dash
+   - sed -i 's/ master/ dash/' /srv/salt/reclass/classes/cluster/mk20_lab_advanced/openstack_config.yml
+   - |
+       cat << 'EOF' >> /srv/salt/reclass/nodes/control/{hostname}.yml
+       # local storage
+         reclass:
+           storage:
+             data_source:
+               engine: local
+       EOF
+   - cd /srv/salt/reclass; git add -A;git commit -m"use dash repo"
 
    - mkdir -p /srv/salt/reclass/classes/service
    - for i in /usr/share/salt-formulas/reclass/service/*; do ln -s $i /srv/salt/reclass/classes/service/; done
diff --git a/tcp_tests/templates/tcpcloud--user-data.yaml b/tcp_tests/templates/tcpcloud--user-data.yaml
index d60a87a..ecde655 100644
--- a/tcp_tests/templates/tcpcloud--user-data.yaml
+++ b/tcp_tests/templates/tcpcloud--user-data.yaml
@@ -41,6 +41,9 @@
 
    - echo "deb [arch=amd64] http://apt.tcpcloud.eu/nightly/ trusty main security extra tcp tcp-salt" > /etc/apt/sources.list
    - wget -O - http://apt.tcpcloud.eu/public.gpg | apt-key add -
+   # saltstack repo is for minions that have the same version in the xenial and trusty (2016.3.3)
+   - echo "deb http://repo.saltstack.com/apt/ubuntu/14.04/amd64/latest trusty main" > /etc/apt/sources.list.d/saltstack.list
+   - wget -O - https://repo.saltstack.com/apt/ubuntu/14.04/amd64/latest/SALTSTACK-GPG-KEY.pub | apt-key add -
 
    - apt-get clean
    - apt-get update
diff --git a/tcp_tests/templates/tcpcloud-default.yaml b/tcp_tests/templates/tcpcloud-default.yaml
index 0a8cbdc..597a759 100644
--- a/tcp_tests/templates/tcpcloud-default.yaml
+++ b/tcp_tests/templates/tcpcloud-default.yaml
@@ -21,10 +21,8 @@
             default_ctl01.mk22-lab-advanced.local: +101
             default_ctl02.mk22-lab-advanced.local: +102
             default_ctl03.mk22-lab-advanced.local: +103
-            default_web01.mk22-lab-advanced.local: +104
+            default_prx01.mk22-lab-advanced.local: +104
             default_cmp01.mk22-lab-advanced.local: +105
-            default_mtr01.mk22-lab-advanced.local: +106
-            default_mon01.mk22-lab-advanced.local: +107
           ip_ranges:
             dhcp: [+100, -2]
 
@@ -227,7 +225,7 @@
                   networks:
                     - private
 
-          - name: web01.mk22-lab-advanced.local
+          - name: prx01.mk22-lab-advanced.local
             role: salt_minion
             params:
               vcpu: !os_env SLAVE_NODE_CPU, 1
@@ -302,79 +300,3 @@
                 eth1:
                   networks:
                     - private
-
-          - name: mtr01.mk22-lab-advanced.local
-            role: salt_minion
-            params:
-              vcpu: !os_env SLAVE_NODE_CPU, 1
-              memory: !os_env SLAVE_NODE_MEMORY, 2048
-              boot:
-                - hd
-              cloud_init_volume_name: iso
-              cloud_init_iface_up: eth0
-              volumes:
-                - name: system
-                  capacity: !os_env NODE_VOLUME_SIZE, 150
-                  backing_store: cloudimage1404
-                  format: qcow2
-                - name: iso  # Volume with name 'iso' will be used
-                             # for store image with cloud-init metadata.
-                  capacity: 1
-                  format: raw
-                  device: cdrom
-                  bus: ide
-                  cloudinit_meta_data: !include tcpcloud--meta-data.yaml
-                  cloudinit_user_data: !include tcpcloud--user-data.yaml
-
-              interfaces:
-                - label: eth0
-                  l2_network_device: public
-                  interface_model: *interface_model
-                - label: eth1
-                  l2_network_device: private
-                  interface_model: *interface_model
-              network_config:
-                eth0:    # Will get an IP from DHCP public-pool01
-                  networks:
-                    - public
-                eth1:
-                  networks:
-                    - private
-
-          - name: mon01.mk22-lab-advanced.local
-            role: salt_minion
-            params:
-              vcpu: !os_env SLAVE_NODE_CPU, 1
-              memory: !os_env SLAVE_NODE_MEMORY, 2048
-              boot:
-                - hd
-              cloud_init_volume_name: iso
-              cloud_init_iface_up: eth0
-              volumes:
-                - name: system
-                  capacity: !os_env NODE_VOLUME_SIZE, 150
-                  backing_store: cloudimage1404
-                  format: qcow2
-                - name: iso  # Volume with name 'iso' will be used
-                             # for store image with cloud-init metadata.
-                  capacity: 1
-                  format: raw
-                  device: cdrom
-                  bus: ide
-                  cloudinit_meta_data: !include tcpcloud--meta-data.yaml
-                  cloudinit_user_data: !include tcpcloud--user-data.yaml
-
-              interfaces:
-                - label: eth0
-                  l2_network_device: public
-                  interface_model: *interface_model
-                - label: eth1
-                  l2_network_device: private
-                  interface_model: *interface_model
-              network_config:
-                eth0:    # Will get an IP from DHCP public-pool01
-                  networks:
-                    - public
-                eth1:
-                  networks:
-                    - private