diff --git a/lab-pipeline.groovy b/lab-pipeline.groovy
index 52477dc..b36543a 100644
--- a/lab-pipeline.groovy
+++ b/lab-pipeline.groovy
@@ -156,8 +156,8 @@
                         // workaround - install apt-transport-https
                         //salt.runSaltProcessStep(saltMaster, '* and not kvm*', 'cmd.run', ['apt-get update -y && apt-get install -y apt-transport-https'], null, true)
                         //salt.runSaltProcessStep(saltMaster, '* and not kvm*', 'pkg.install', ['apt-transport-https', 'refresh=True'], null, true)
-                        salt.enforceState(saltMaster, 'I@linux:system', ['linux', 'salt.minion'], true)
-                        salt.enforceState(saltMaster, 'I@linux:system', ['openssh', 'salt.minion', 'ntp'], true)
+                        salt.enforceState(saltMaster, 'I@linux:system', ['linux', 'salt.minion'], true, false)
+                        salt.enforceState(saltMaster, 'I@linux:system', ['openssh', 'salt.minion', 'ntp'], true, false)
                     }
 
                     //orchestrate.validateFoundationInfra(saltMaster)
@@ -189,8 +189,6 @@
 
                     // Setup glusterfs
                     salt.runSaltProcessStep(saltMaster, 'I@glusterfs:server and *01*', 'state.sls', ['glusterfs.server.setup'])
-                    salt.runSaltProcessStep(saltMaster, 'I@glusterfs:server and *02*', 'state.sls', ['glusterfs.server.setup'])
-                    salt.runSaltProcessStep(saltMaster, 'I@glusterfs:server and *03*', 'state.sls', ['glusterfs.server.setup'])
                     salt.runSaltProcessStep(saltMaster, 'I@glusterfs:server', 'cmd.run', ['gluster peer status'])
                     salt.runSaltProcessStep(saltMaster, 'I@glusterfs:server', 'cmd.run', ['gluster volume status'])
 
@@ -246,6 +244,9 @@
                 stage('Install OpenStack infra') {
                     //orchestrate.installOpenstackMkInfra(saltMaster, physical)
 
+                    // Install glusterfs
+                    salt.enforceState(saltMaster, 'I@glusterfs:server', 'glusterfs.server.service', true)
+
                     // Install keepaliveds
                     //runSaltProcessStep(master, 'I@keepalived:cluster', 'state.sls', ['keepalived'], 1)
                     salt.enforceState(saltMaster, 'I@keepalived:cluster and *01*', 'keepalived', true)
@@ -254,33 +255,29 @@
                     // Check the keepalived VIPs
                     salt.runSaltProcessStep(saltMaster, 'I@keepalived:cluster', 'cmd.run', ['ip a | grep 172.16.10.2'])
 
-                    // Install glusterfs
-                    salt.enforceState(saltMaster, 'I@glusterfs:server', 'glusterfs.server.service', true)
-
-                    //runSaltProcessStep(saltMaster, 'I@glusterfs:server', 'state.sls', ['glusterfs.server.setup'], 1)
                     salt.enforceState(saltMaster, 'I@glusterfs:server and *01*', 'glusterfs.server.setup', true)
-                    salt.enforceState(saltMaster, 'I@glusterfs:server and *02*', 'glusterfs.server.setup', true)
-                    salt.enforceState(saltMaster, 'I@glusterfs:server and *03*', 'glusterfs.server.setup', true)
 
                     salt.runSaltProcessStep(saltMaster, 'I@glusterfs:server', 'cmd.run', ['gluster peer status'], null, true)
                     salt.runSaltProcessStep(saltMaster, 'I@glusterfs:server', 'cmd.run', ['gluster volume status'], null, true)
 
                     // Install rabbitmq
-                    salt.enforceState(saltMaster, 'I@rabbitmq:server', 'rabbitmq', true)
+                    salt.enforceState(saltMaster, 'I@rabbitmq:server', 'rabbitmq', true, false)
 
                     // Check the rabbitmq status
                     salt.runSaltProcessStep(saltMaster, 'I@rabbitmq:server', 'cmd.run', ['rabbitmqctl cluster_status'])
 
                     // Install galera
-                    salt.enforceState(saltMaster, 'I@galera:master', 'galera', true)
+                    retry(2) {
+                        salt.enforceState(saltMaster, 'I@galera:master', 'galera', true)
+                    }
                     salt.enforceState(saltMaster, 'I@galera:slave', 'galera', true)
 
                     // Check galera status
                     salt.runSaltProcessStep(saltMaster, 'I@galera:master', 'mysql.status')
                     salt.runSaltProcessStep(saltMaster, 'I@galera:slave', 'mysql.status')
 
-                    // Setup mysql client
-                    salt.enforceState(saltMaster, 'I@mysql:client', 'mysql.client', true)
+                    // // Setup mysql client
+                    // salt.enforceState(saltMaster, 'I@mysql:client', 'mysql.client', true)
 
                     // Install haproxy
                     salt.enforceState(saltMaster, 'I@haproxy:proxy', 'haproxy', true)
@@ -356,20 +353,20 @@
                         try {
                             salt.enforceState(saltMaster, 'I@opencontrail:database and *01*', 'opencontrail.database', true)
                         } catch (Exception e) {
-                            print.warningMsg('Exception in state opencontrail.database on I@opencontrail:database and *01*')
+                            common.warningMsg('Exception in state opencontrail.database on I@opencontrail:database and *01*')
                         }
 
                         try {
                             salt.enforceState(saltMaster, 'I@opencontrail:database', 'opencontrail.database', true)
                         } catch (Exception e) {
-                            print.warningMsg('Exception in state opencontrail.database on I@opencontrail:database')
+                            common.warningMsg('Exception in state opencontrail.database on I@opencontrail:database')
                         }
 
                         // Install opencontrail control services
                         //runSaltProcessStep(saltMaster, 'I@opencontrail:control', 'state.sls', ['opencontrail'], 1)
-                        salt.enforceState(saltMaster, 'I@opencontrail:control and *01*', 'opencontrail', true)
-                        salt.enforceState(saltMaster, 'I@opencontrail:control', 'opencontrail', true)
-                        salt.enforceState(saltMaster, 'I@opencontrail:collector', 'opencontrail', true)
+                        salt.runSaltProcessStep(saltMaster, 'I@opencontrail:control and *01*', 'state.sls', ['opencontrail', 'exclude=opencontrail.client'])
+                        salt.runSaltProcessStep(saltMaster, 'I@opencontrail:control', 'state.sls', ['opencontrail', 'exclude=opencontrail.client'])
+                        salt.runSaltProcessStep(saltMaster, 'I@opencontrail:collector', 'state.sls', ['opencontrail', 'exclude=opencontrail.client'])
 
                         // Test opencontrail
                         salt.runSaltProcessStep(saltMaster, 'I@opencontrail:control', 'cmd.run', ['contrail-status'], null, true)
