diff --git a/jobs/pipelines/swarm-run-pytest.groovy b/jobs/pipelines/swarm-run-pytest.groovy
index 1771b5d..65004b9 100644
--- a/jobs/pipelines/swarm-run-pytest.groovy
+++ b/jobs/pipelines/swarm-run-pytest.groovy
@@ -64,6 +64,8 @@
                             export ${it}_installed=true"""}.join("\n")
 
                         shared.run_sh(sources + installed + """
+                            mkdir tmp
+                            export PYTHONHTTPSVERIFY=0
                             export TESTS_CONFIGS=${ENV_NAME}_salt_deployed.ini
                             export ENV_MANAGER=$ENV_MANAGER  # use 'hardware' fixture to manage fuel-devops environment
                             export salt_master_host=\$SALT_MASTER_IP  # skip salt_deployed fixture
@@ -76,6 +78,12 @@
 
                             """)
 
+                        archiveArtifacts artifacts: "tmp/*"
+                        shared.run_sh("""
+                            cd ${PARENT_WORKSPACE}
+                            rm -rf tmp/
+                        """)
+
                         def snapshot_name = "test_completed"
                         shared.download_logs("test_completed_${ENV_NAME}")
 
diff --git a/src/com/mirantis/system_qa/SharedPipeline.groovy b/src/com/mirantis/system_qa/SharedPipeline.groovy
index dae2ce4..8390c1b 100644
--- a/src/com/mirantis/system_qa/SharedPipeline.groovy
+++ b/src/com/mirantis/system_qa/SharedPipeline.groovy
@@ -397,8 +397,8 @@
             ]
         common.printMsg("Start building job 'swarm-run-pytest' with parameters:", "purple")
         common.prettyPrint(parameters)
-        build job: 'swarm-run-pytest',
-            parameters: parameters
+        swarm_run_pytest_build = build(job: 'swarm-run-pytest', parameters: parameters)
+        copyArtifacts(projectName: 'swarm-run-pytest', selector: specific(swarm_run_pytest_build.getId()))
 }
 
 def swarm_testrail_report(String passed_steps, String node_with_reports) {
diff --git a/tcp_tests/managers/drivetrain_manager.py b/tcp_tests/managers/drivetrain_manager.py
index f65892e..dbc5096 100644
--- a/tcp_tests/managers/drivetrain_manager.py
+++ b/tcp_tests/managers/drivetrain_manager.py
@@ -11,11 +11,11 @@
 #    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
 #    License for the specific language governing permissions and limitations
 #    under the License.
-
 from tcp_tests.managers.execute_commands import ExecuteCommandsMixin
 from tcp_tests.utils import run_jenkins_job
 from tcp_tests.utils import get_jenkins_job_stages
 from tcp_tests import logger
+from tcp_tests.managers.jenkins import client
 
 LOG = logger.logger
 
@@ -62,6 +62,11 @@
         jenkins_url, jenkins_user, jenkins_pass = self.get_jenkins_creds(
             tgt=jenkins_tgt)
 
+        jenkins = client.JenkinsClient(host=jenkins_url,
+                                       username=jenkins_user,
+                                       password=jenkins_pass)
+        build_number = jenkins.job_info(job_name)['nextBuildNumber']
+
         job_result = run_jenkins_job.run_job(
             host=jenkins_url,
             username=jenkins_user,
@@ -83,6 +88,11 @@
             .format(description=description,
                     stages='\n'.join(stages))
 
+        job_log = jenkins.get_build_output(job_name, build_number)
+
+        with open('tmp/' + job_name + str(build_number) + '.log', 'wb') as f:
+            f.write(job_log)
+
         if job_result != 'SUCCESS':
             LOG.warning("{0}\n{1}".format(description, '\n'.join(stages)))
         return job_result, job_description
diff --git a/tcp_tests/tests/system/test_backup_restore_galera.py b/tcp_tests/tests/system/test_backup_restore_galera.py
index 573756a..ce782b2 100644
--- a/tcp_tests/tests/system/test_backup_restore_galera.py
+++ b/tcp_tests/tests/system/test_backup_restore_galera.py
@@ -82,7 +82,6 @@
 
         """
         dt = drivetrain_actions
-
         show_step(1)
         ctl_node = underlay_actions.get_target_node_names(target='ctl')[0]
         print(ctl_node)
diff --git a/tcp_tests/tests/system/test_cvp_pipelines.py b/tcp_tests/tests/system/test_cvp_pipelines.py
index 41c95fe..c7c919c 100644
--- a/tcp_tests/tests/system/test_cvp_pipelines.py
+++ b/tcp_tests/tests/system/test_cvp_pipelines.py
@@ -207,6 +207,9 @@
             ntp_skipped_nodes = ''
 
         job_name = 'cvp-sanity'
+        server = jenkins.Jenkins(jenkins_url, jenkins_user, jenkins_pass)
+        build_number = server.get_job_info(job_name)['nextBuildNumber']
+
         skipped_packages = ("python-setuptools,"
                             "python-pkg-resources,xunitmerge,"
                             "python-gnocchiclient, "
@@ -250,7 +253,8 @@
         # Download XML report
         show_step(4)
         destination_name = os.path.join(settings.LOGS_DIR,
-                                        "cvp_sanity_results.xml")
+                                        "tmp/" + job_name + "_"
+                                        + str(build_number) + "_results.xml")
         # Do not fail the test case when the job is failed, but
         # artifact with the XML report is present in the job.
         try:
@@ -259,8 +263,26 @@
                 username=jenkins_user,
                 password=jenkins_pass,
                 job_name=job_name,
-                build_number='lastBuild',
-                artifact_path='validation_artifacts/cvp-sanity_report.xml',
+                build_number=build_number,
+                artifact_path='validation_artifacts/' + job_name
+                              + '_report.xml',
+                destination_name=destination_name)
+        except jenkins.NotFoundException:
+            raise jenkins.NotFoundException("{0}\n{1}".format(
+                description, '\n'.join(stages)))
+
+        destination_name = os.path.join(settings.LOGS_DIR,
+                                        "tmp/" + job_name + "_"
+                                        + str(build_number) + "_full.log")
+
+        try:
+            get_jenkins_job_artifact.download_artifact(
+                host=jenkins_url,
+                username=jenkins_user,
+                password=jenkins_pass,
+                job_name=job_name,
+                build_number=build_number,
+                artifact_path='validation_artifacts/full.log',
                 destination_name=destination_name)
         except jenkins.NotFoundException:
             raise jenkins.NotFoundException("{0}\n{1}".format(
@@ -370,6 +392,9 @@
         jenkins_build_timeout = 50 * 60
 
         job_name = 'cvp-stacklight'
+        server = jenkins.Jenkins(jenkins_url, jenkins_user, jenkins_pass)
+        build_number = server.get_job_info(job_name)['nextBuildNumber']
+
         job_parameters = {
             "EXTRA_PARAMS": """
             envs:
@@ -406,7 +431,8 @@
         # Download XML report
         show_step(4)
         destination_name = os.path.join(settings.LOGS_DIR,
-                                        "stacklight_report.xml")
+                                        "tmp/" + job_name + "_"
+                                        + str(build_number) + "_results.xml")
         # Do not fail the test case when the job is failed, but
         # artifact with the XML report is present in the job.
         try:
