diff --git a/tcp_tests/managers/openstack_manager.py b/tcp_tests/managers/openstack_manager.py
index c67c3d5..5396cef 100644
--- a/tcp_tests/managers/openstack_manager.py
+++ b/tcp_tests/managers/openstack_manager.py
@@ -11,8 +11,12 @@
 #    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
 #    License for the specific language governing permissions and limitations
 #    under the License.
+import os
 
 from tcp_tests.managers.execute_commands import ExecuteCommandsMixin
+from tcp_tests import logger
+
+LOG = logger.logger
 
 
 class OpenstackManager(ExecuteCommandsMixin):
@@ -32,3 +36,46 @@
         self.execute_commands(commands,
                               label='Install OpenStack services')
         self.__config.openstack.openstack_installed = True
+
+    def run_tempest(
+            self,
+            image_name='rally-tempest:with_designate',
+            target='gtw01', pattern=None,
+            conf_name='lvm_mcp.conf',
+            registry='docker-sandbox.sandbox.mirantis.net/rally-tempest/'):
+        target_name = [node_name for node_name
+                       in self.__underlay.node_names() if target in node_name]
+
+        if pattern:
+            cmd = ("docker run --rm --net=host  "
+                   "-e TEMPEST_CONF={0} "
+                   "-e SKIP_LIST=mcp_skip.list "
+                   "-e SOURCE_FILE=keystonercv3  "
+                   "-e CUSTOM='--pattern {1}' "
+                   "-v /root/:/home/rally {2}{3} "
+                   "-v /etc/ssl/certs/:/etc/ssl/certs/ >> image.output".format(
+                conf_name, pattern, registry, image_name))
+        else:
+            cmd = ("docker run --rm --net=host  "
+                   "-e TEMPEST_CONF={0} "
+                   "-e SKIP_LIST=mcp_skip.list "
+                   "-e SOURCE_FILE=keystonercv3  "
+                   "-v /root/:/home/rally {2}{3} "
+                   "-v /etc/ssl/certs/:/etc/ssl/certs/ >> image.output".format(
+                conf_name, pattern, registry, image_name))
+        with self.__underlay.remote(node_name=target_name[0]) as node_remote:
+            result = node_remote.execute(cmd)
+            LOG.debug("Test execution result is {}".format(result))
+        return result
+
+    def download_tempest_report(self, file_fromat='xml', stored_node='gtw01'):
+        target_node_name = [node_name for node_name
+                            in self.__underlay.node_names()
+                            if stored_node in node_name]
+        with self.__underlay.remote(node_name=target_node_name[0]) as r:
+            result = r.execute('find /root -name "report_*.{}"'.format(
+                file_fromat))
+            LOG.debug("Find result {0}".format(result))
+            file_name = result['stdout'][0].rstrip()
+            LOG.debug("Founded files {0}".format(file_name))
+            r.download(destination=file_name, target=os.getcwd())
diff --git a/tcp_tests/settings.py b/tcp_tests/settings.py
index ea19a23..f4f7334 100644
--- a/tcp_tests/settings.py
+++ b/tcp_tests/settings.py
@@ -54,5 +54,5 @@
 DOCKER_REGISTRY = os.environ.get('DOCKER_REGISTRY',
                                  'docker-prod-virtual.docker.mirantis.net')
 
-PATTERN = os.environ.get('PATTERN', 'smoke')
-
+PATTERN = os.environ.get('PATTERN', None)
+RUN_TEMPEST = get_var_as_bool('RUN_TEMPEST', False)
diff --git a/tcp_tests/templates/virtual-mcp-ocata-dvr/openstack.yaml b/tcp_tests/templates/virtual-mcp-ocata-dvr/openstack.yaml
index 07bc3aa..3e0a4d3 100644
--- a/tcp_tests/templates/virtual-mcp-ocata-dvr/openstack.yaml
+++ b/tcp_tests/templates/virtual-mcp-ocata-dvr/openstack.yaml
@@ -384,30 +384,3 @@
   node_name: {{ HOSTNAME_CFG01 }}
   retry: {count: 1, delay: 30}
   skip_fail: false
-
-- description: Run tests
-  cmd: |
-    if [[ {{ PATTERN }} == "false" ]]; then
-        salt-call cmd.run 'docker run --rm --net=host  -e TEMPEST_CONF=lvm_mcp.conf  -e SKIP_LIST=mcp_skip.list  -e SOURCE_FILE=keystonercv3 -v /root/:/home/rally docker-sandbox.sandbox.mirantis.net/rally-tempest/rally-tempest:with_designate  >> image.output'
-    else
-        salt-call cmd.run "docker run --rm --net=host  -e TEMPEST_CONF=lvm_mcp.conf  -e SKIP_LIST=mcp_skip.list  -e SOURCE_FILE=keystonercv3  -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: Download xml results
-  download:
-    remote_path: /root
-    remote_filename: "report_*.xml"
-    local_path: {{ os_env('PWD') }}
-  node_name: {{ HOSTNAME_GTW01 }}
-  skip_fail: true
-
-- description: Download html results
-  download:
-    remote_path: /root
-    remote_filename: "report_*.html"
-    local_path: {{ os_env('PWD') }}
-  node_name: {{ HOSTNAME_GTW01 }}
-  skip_fail: true
diff --git a/tcp_tests/templates/virtual-mcp-ocata-ovs/openstack.yaml b/tcp_tests/templates/virtual-mcp-ocata-ovs/openstack.yaml
index 9d2f09f..0023f88 100644
--- a/tcp_tests/templates/virtual-mcp-ocata-ovs/openstack.yaml
+++ b/tcp_tests/templates/virtual-mcp-ocata-ovs/openstack.yaml
@@ -366,30 +366,3 @@
   node_name: {{ HOSTNAME_CFG01 }}
   retry: {count: 1, delay: 30}
   skip_fail: false
-
-- description: Run tests
-  cmd: |
-    if [[ {{ PATTERN }} == "false" ]]; then
-        salt-call cmd.run 'docker run --rm --net=host  -e TEMPEST_CONF=lvm_mcp.conf  -e SKIP_LIST=mcp_skip.list  -e SOURCE_FILE=keystonercv3 -v /root/:/home/rally docker-sandbox.sandbox.mirantis.net/rally-tempest/rally-tempest:with_designate  >> image.output'
-    else
-        salt-call cmd.run "docker run --rm --net=host  -e TEMPEST_CONF=lvm_mcp.conf  -e SKIP_LIST=mcp_skip.list  -e SOURCE_FILE=keystonercv3  -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: Download xml results
-  download:
-    remote_path: /root
-    remote_filename: "report_*.xml"
-    local_path: {{ os_env('PWD') }}
-  node_name: {{ HOSTNAME_GTW01 }}
-  skip_fail: true
-
-- description: Download html results
-  download:
-    remote_path: /root
-    remote_filename: "report_*.html"
-    local_path: {{ os_env('PWD') }}
-  node_name: {{ HOSTNAME_GTW01 }}
-  skip_fail: true
diff --git a/tcp_tests/templates/virtual-mcp11-dvr/openstack.yaml b/tcp_tests/templates/virtual-mcp11-dvr/openstack.yaml
index b971a5e..860a32e 100644
--- a/tcp_tests/templates/virtual-mcp11-dvr/openstack.yaml
+++ b/tcp_tests/templates/virtual-mcp11-dvr/openstack.yaml
@@ -350,26 +350,4 @@
   cmd: scp /root/keystonercv3 gtw01:/root
   node_name: {{ HOSTNAME_CFG01 }}
   retry: {count: 1, delay: 30}
-  skip_fail: false
-
-- description: Run tests
-  cmd: salt-call cmd.run "docker run --rm --net=host  -e TEMPEST_CONF=lvm_mcp.conf  -e SKIP_LIST=mcp_skip.list  -e SOURCE_FILE=keystonercv3  -v /root/:/home/rally docker-sandbox.sandbox.mirantis.net/rally-tempest/rally-tempest:mcp1.1_newton  >> image.output"
-  node_name: {{ HOSTNAME_GTW01 }}
-  retry: {count: 1, delay: 30}
-  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: Download html results
-  download:
-    remote_path: /root
-    remote_filename: "report_*.html"
-    local_path: {{ os_env('PWD') }}
-  node_name: {{ HOSTNAME_GTW01 }}
-  skip_fail: true
+  skip_fail: false
\ No newline at end of file
diff --git a/tcp_tests/templates/virtual-mcp11-ovs/openstack.yaml b/tcp_tests/templates/virtual-mcp11-ovs/openstack.yaml
index 9bf4ab7..e00cf3c 100644
--- a/tcp_tests/templates/virtual-mcp11-ovs/openstack.yaml
+++ b/tcp_tests/templates/virtual-mcp11-ovs/openstack.yaml
@@ -350,26 +350,4 @@
   cmd: scp /root/keystonercv3 gtw01:/root
   node_name: {{ HOSTNAME_CFG01 }}
   retry: {count: 1, delay: 30}
-  skip_fail: false
-
-- description: Run tests
-  cmd: salt-call cmd.run "docker run --rm --net=host  -e TEMPEST_CONF=lvm_mcp.conf  -e SKIP_LIST=mcp_skip.list  -e SOURCE_FILE=keystonercv3 -v /root/:/home/rally docker-sandbox.sandbox.mirantis.net/rally-tempest/rally-tempest:mcp1.1_newton  >> image.output"
-  node_name: {{ HOSTNAME_GTW01 }}
-  retry: {count: 1, delay: 30}
-  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: Download html results
-  download:
-    remote_path: /root
-    remote_filename: "report_*.html"
-    local_path: {{ os_env('PWD') }}
-  node_name: {{ HOSTNAME_GTW01 }}
-  skip_fail: true
+  skip_fail: false
\ No newline at end of file
diff --git a/tcp_tests/tests/system/test_install_mcp11_ovs_newton.py b/tcp_tests/tests/system/test_install_mcp11_ovs_newton.py
index 4b541bb..51a2826 100644
--- a/tcp_tests/tests/system/test_install_mcp11_ovs_newton.py
+++ b/tcp_tests/tests/system/test_install_mcp11_ovs_newton.py
@@ -24,12 +24,12 @@
 
 
 @pytest.mark.deploy
-class Test_Mcp11_install(object):
+class TestMcp11Install(object):
     """Test class for testing mcp11 vxlan deploy"""
 
     @pytest.mark.fail_snapshot
     def test_mcp11_newton_ovs_install(self, underlay, openstack_deployed,
-                                     show_step):
+                                      openstack_actions, show_step):
         """Test for deploying an mcp environment and check it
 
         Scenario:
@@ -38,11 +38,15 @@
             3. Setup compute nodes
 
         """
+        if settings.RUN_TEMPEST:
+            openstack_actions.run_tempest(pattern=settings.PATTERN)
+            openstack_actions.download_tempest_report()
+
         LOG.info("*************** DONE **************")
 
     @pytest.mark.fail_snapshot
     def test_mcp11_newton_dvr_install(self, underlay, openstack_deployed,
-                                     show_step):
+                                      openstack_actions, show_step):
         """Test for deploying an mcp environment and check it
 
         Scenario:
@@ -51,4 +55,7 @@
             3. Setup compute nodes
 
         """
+        if settings.RUN_TEMPEST:
+            openstack_actions.run_tempest(pattern=settings.PATTERN)
+            openstack_actions.download_tempest_report()
         LOG.info("*************** DONE **************")
diff --git a/tcp_tests/tests/system/test_install_mcp11_ovs_ocata.py b/tcp_tests/tests/system/test_install_mcp11_ovs_ocata.py
index d46d33f..7c2f788 100644
--- a/tcp_tests/tests/system/test_install_mcp11_ovs_ocata.py
+++ b/tcp_tests/tests/system/test_install_mcp11_ovs_ocata.py
@@ -15,6 +15,7 @@
 import pytest
 
 from tcp_tests import logger
+from tcp_tests import settings
 
 LOG = logger.logger
 
@@ -25,15 +26,20 @@
 
     @pytest.mark.fail_snapshot
     @pytest.mark.cz8119
-    def test_mcp11_ocata_ovs_install(self, underlay, openstack_deployed,
-                                          show_step):
+    def test_mcp11_ocata_ovs_install(self, underlay,
+                                     openstack_deployed,
+                                     sl_deployed, openstack_actions):
         """Test for deploying an mcp environment and check it
         Scenario:
         1. Prepare salt on hosts
         2. Setup controller nodes
         3. Setup compute nodes
+        4. Run tempest
 
         """
+        if settings.RUN_TEMPEST:
+            openstack_actions.run_tempest(pattern=settings.PATTERN)
+            openstack_actions.download_tempest_report()
         LOG.info("*************** DONE **************")
 
     @pytest.mark.fail_snapshot
@@ -102,8 +108,10 @@
 
     @pytest.mark.fail_snapshot
     @pytest.mark.cz8120
-    def test_mcp11_ocata_dvr_install(self, underlay, openstack_deployed,
-                                          show_step):
+    def test_mcp11_ocata_dvr_install(self,
+                                     underlay,
+                                     openstack_deployed,
+                                     openstack_actions):
         """Test for deploying an mcp environment and check it
         Scenario:
         1. Prepare salt on hosts
@@ -111,6 +119,9 @@
         3. Setup compute nodes
 
         """
+        if settings.RUN_TEMPEST:
+            openstack_actions.run_tempest(pattern=settings.PATTERN)
+            openstack_actions.download_tempest_report()
         LOG.info("*************** DONE **************")
 
     @pytest.mark.fail_snapshot
