diff --git a/tcp_tests/managers/drivetrain_manager.py b/tcp_tests/managers/drivetrain_manager.py
index 8ef758d..3851e8d 100644
--- a/tcp_tests/managers/drivetrain_manager.py
+++ b/tcp_tests/managers/drivetrain_manager.py
@@ -38,8 +38,11 @@
                               label='Install Drivetrain Tools')
         self.__config.drivetrain.drivetrain_installed = True
 
-    def start_job_on_cid_jenkins(self, job_name,
-                                 **kwargs):
+    def start_job_on_jenkins(
+            self,
+            job_name,
+            jenkins_tgt='I@docker:client:stack:jenkins and cid01*',
+            **kwargs):
         """
         Starts job with specific parameters on cluster Jenkins
 
@@ -54,7 +57,7 @@
         :return: string, Result of passed job, "SUCCESS"| "FAILED" | "UNSTABLE"
         """
         jenkins_url, jenkins_user, jenkins_pass = self.get_jenkins_creds(
-            tgt='I@docker:client:stack:jenkins and cid01*')
+            tgt=jenkins_tgt)
 
         job_result = run_jenkins_job.run_job(
             host=jenkins_url,
diff --git a/tcp_tests/managers/runtestmanager.py b/tcp_tests/managers/runtestmanager.py
index cf9b487..0c5fdf7 100644
--- a/tcp_tests/managers/runtestmanager.py
+++ b/tcp_tests/managers/runtestmanager.py
@@ -85,11 +85,16 @@
                 target_host)[0]
         return self.__target_minion
 
-    def fetch_arficats(self, username=None, file_format='xml'):
+    def fetch_arficats(
+            self,
+            username=None,
+            file_format='xml',
+            report_pattern="report_*",
+            report_dir=TEMPEST_CFG_DIR):
         with self.underlay.remote(node_name=self.target_name,
                                   username=None) as tgt:
-            result = tgt.execute('find {} -name "report_*.{}"'.format(
-                TEMPEST_CFG_DIR, file_format))
+            result = tgt.execute('find {} -name "{}.{}"'.format(
+                report_dir, report_pattern, file_format))
             LOG.debug("Find result {0}".format(result))
             assert len(result['stdout']) > 0, ('No report found, please check'
                                                ' if test run was successful.')
@@ -118,7 +123,7 @@
                                                indent=4, sort_keys=True)
                 f.write(container_inspect)
 
-    def prepare(self):
+    def prepare(self, pipeline=False):
         salt_call_cmd = "salt-call -l info --hard-crash --state-output=mixed "
         barbican_integration = self.__salt_api.get_single_pillar(
             tgt="ctl01*",
@@ -147,14 +152,18 @@
                 'node_name': self.target_name,
                 'cmd': ("set -ex;" +
                         salt_call_cmd + " pip.install setuptools && " +
-                        salt_call_cmd + " pip.install docker")},
-            {
-                'description': "Generate config for Tempest",
-                'node_name': self.master_name,
-                'cmd': ("set -ex;" +
-                        "salt-run state.orchestrate " +
-                        "runtest.orchestrate.tempest")},
+                        salt_call_cmd + " pip.install docker")}
         ]
+        if not pipeline:
+            commands.append(
+                {
+                    'description': "Generate config for Tempest",
+                    'node_name': self.master_name,
+                    'cmd': ("set -ex;" +
+                            "salt-run state.orchestrate " +
+                            "runtest.orchestrate.tempest")
+                }
+            )
 
         if contrail_integration:
             vsrx_router = self.__salt_api.get_single_pillar(
