diff --git a/jobs/pipelines/deploy-cicd-and-run-tests.groovy b/jobs/pipelines/deploy-cicd-and-run-tests.groovy
index 5106d80..8156eed 100644
--- a/jobs/pipelines/deploy-cicd-and-run-tests.groovy
+++ b/jobs/pipelines/deploy-cicd-and-run-tests.groovy
@@ -178,6 +178,12 @@
             stage("report results to testrail from jenkins master") {
                 common.printMsg("Running on: " + node_with_reports, "blue")
                 common.printMsg("Running on: " + env.NODE_NAME, "blue")
+                shared.verbose_sh("""\
+                       [ -d /home/jenkins/venv_testrail_reporter ] || virtualenv --python=python3.7 /home/jenkins/venv_testrail_reporter""", true, false, true)
+                sshagent(credentials: ['maintenance-team-ssh']) {
+                    shared.run_cmd("""\
+                            . /home/jenkins/venv_testrail_reporter/bin/activate; pip install git+ssh://maintenance-ci-robot@gerrit.mcp.mirantis.com:29418/mcp/testrail-reporter -U""")
+                }
                 shared.swarm_testrail_report(steps, env.NODE_NAME)
             }
             stage("Store TestRail reports to job description") {
diff --git a/jobs/pipelines/run-test-scenarios.groovy b/jobs/pipelines/run-test-scenarios.groovy
index b83dcec..fc45ad8 100644
--- a/jobs/pipelines/run-test-scenarios.groovy
+++ b/jobs/pipelines/run-test-scenarios.groovy
@@ -65,6 +65,12 @@
                 stage("report results to testrail from jenkins master") {
                     if ("${env.REPORT_TO_TESTRAIL}" != "false") {
                         common.infoMsg("Running on: " + env.PARENT_NODE_NAME, "blue")
+                        shared.verbose_sh("""\
+                               [ -d /home/jenkins/venv_testrail_reporter ] || virtualenv --python=python3.7 /home/jenkins/venv_testrail_reporter""", true, false, true)
+                        sshagent(credentials: ['maintenance-team-ssh']) {
+                            shared.run_cmd("""\
+                                    . /home/jenkins/venv_testrail_reporter/bin/activate; pip install git+ssh://maintenance-ci-robot@gerrit.mcp.mirantis.com:29418/mcp/testrail-reporter -U""")
+                        }
                         shared.swarm_testrail_report(steps, env.PARENT_NODE_NAME)
                     } else {
                         common.infoMsg("REPORT_TO_TESTRAIL is set to FALSE. Skipped this step ")
diff --git a/jobs/pipelines/swarm-testrail-report.groovy b/jobs/pipelines/swarm-testrail-report.groovy
index f9820f8..1167978 100644
--- a/jobs/pipelines/swarm-testrail-report.groovy
+++ b/jobs/pipelines/swarm-testrail-report.groovy
@@ -78,6 +78,26 @@
             common.printMsg(stacklight_report_name ? "Found stacklight-pytest report: ${stacklight_report_name}" : "stacklight-pytest report not found", stacklight_report_name ? "blue" : "red")
             common.printMsg(cvp_sanity_report_name ? "Found CVP Sanity report: ${cvp_sanity_report_name}" : "CVP Sanity report not found", cvp_sanity_report_name ? "blue" : "red")
 
+            stage("Prepare/update venvs for reporter/analyzer tools"){
+                sshagent(credentials: ['maintenance-team-ssh']) {
+                    shared.run_cmd("""\
+                            . /home/jenkins/venv_testrail_reporter/bin/activate;
+                            pip install git+ssh://maintenance-ci-robot@gerrit.mcp.mirantis.com:29418/mcp/testrail-reporter -U;
+                            pip install --force-reinstall --no-deps git+ssh://maintenance-ci-robot@gerrit.mcp.mirantis.com:29418/mcp/testrail-reporter;""")
+                }
+                shared.run_cmd("""\
+                    if [ -f /home/jenkins/venv_testrail_analyzer/bin/python &&
+                        $(/home/jenkins/venv_testrail_analyzer/bin/python -V | awk -F "." '{print \$2}') -lt 6 ] ; then
+                        rm -rf /home/jenkins/venv_testrail_analyzer ;
+                    fi
+                """)
+                shared.run_cmd("""\
+                    [ -d /home/jenkins/venv_testrail_analyzer ] || virtualenv --python=python3.7 /home/jenkins/venv_testrail_analyzer ;
+                    source /home/jenkins/venv_testrail_analyzer/bin/activate;
+                    pip install git+https://review.gerrithub.io/ibumarskov/testrail-reporter@b9041b241f3364022cd0ad63510f02aab4352a6b
+                """)
+            }
+
             if (deployment_report_name) {
                 stage("Deployment report") {
                     testSuiteName = "[MCP] Integration automation"
diff --git a/src/com/mirantis/system_qa/SharedPipeline.groovy b/src/com/mirantis/system_qa/SharedPipeline.groovy
index c937fbe..8390c1b 100644
--- a/src/com/mirantis/system_qa/SharedPipeline.groovy
+++ b/src/com/mirantis/system_qa/SharedPipeline.groovy
@@ -686,42 +686,8 @@
     writeFile(file: filename, text: script, encoding: "UTF-8")
 }
 
-
-def withVirtualEnv(name, pythonVersion, installRepo = "", command = "") {
-    /// name - str, name of virtualenv, name of folder which will be located in /home/jenkins
-    /// pythonVersion - str, version of python defined through the ShiningPanda settings in the Jenkins (Jenkins ->
-    //Manage Jenkins -> Global Tool Configuration -> Python Installations)
-    /// installRepo - repo with tool which should be installed in that virtualenv
-    def homeDir = "/home/jenkins"
-    venvPath = "${homeDir}/${name}"
-    // check if venv exists
-
-    withPythonEnv("${pythonVersion}") {
-        if (!fileExists(venvPath)) {
-            sh """
-                set -x;
-                virtualenv ${venvPath};
-                source ${venvPath}/bin/activate;
-                pip install -U ${installRepo};
-            """
-        }
-        sh """
-        set -x;
-        source ${venvPath}/bin/activate;
-        ${command};
-        deactivate;
-
-        """
-    }
-    // if no - create folder, install specific python, install repo
-
-    // if yes - launch command
-
-
-}
-
-
 def upload_results_to_testrail(report_name, testPlanName, testSuiteName, methodname, testrail_name_template, reporter_extra_options=[]) {
+  def venvPath = '/home/jenkins/venv_testrail_reporter'
   def testPlanDesc = env.LAB_CONFIG_NAME
   def testrailURL = "https://mirantis.testrail.com"
   def testrailProject = "Mirantis Cloud Platform"
@@ -747,6 +713,8 @@
   ] + reporter_extra_options
 
   def script = """
+    . ${venvPath}/bin/activate
+    set -ex
     report ${reporterOptions.join(' ')} ${report_name}
   """
 
@@ -758,26 +726,17 @@
              passwordVariable: 'TESTRAIL_PASSWORD',
              usernameVariable: 'TESTRAIL_USER']
   ]) {
-
-        def ret = [:]
-        ret.stdout = ''
-        ret.exception = ''
-        try {
-            sshagent(credentials: ['maintenance-team-ssh']) {
-                withVirtualEnv(
-                    name: "venv_testrail_reporter",
-                    pythonVersion: "python3.7",
-                    installRepo: "git+ssh://maintenance-ci-robot@gerrit.mcp.mirantis.com:29418/mcp/testrail-reporter",
-                    command: script
-                )}
-//             ret.stdout = run_cmd_stdout(script)
-        } catch (Exception ex) {
-            ret.exception = ("""\
-    ##### Report to '${testSuiteName}' failed: #####\n""" + ex.message + "\n\n")
-        }
-
-        return ret
-      }
+    def ret = [:]
+    ret.stdout = ''
+    ret.exception = ''
+    try {
+        ret.stdout = run_cmd_stdout(script)
+    } catch (Exception ex) {
+        ret.exception = ("""\
+##### Report to '${testSuiteName}' failed: #####\n""" + ex.message + "\n\n")
+    }
+    return ret
+  }
 }
 
 
@@ -791,13 +750,16 @@
 }
 
 def mark_test_results(testPlanName, testSuiteName) {
+    def venvPath = '/home/jenkins/venv_testrail_analyzer'
     def testrailURL = "https://mirantis.testrail.com"
     def testrailProject = "Mirantis Cloud Platform"
     def configName = env.LAB_CONFIG_NAME
     def testRunName = "${configName} <${testSuiteName}>"
 
     def script = """
-    export TESTRAIL_URL=${testrailURL};
+    . ${venvPath}/bin/activate
+    set -ex
+    export TESTRAIL_URL=${testrailURL}
     testrail-reporter analyze -p "${testrailProject}" -t "${testPlanName}" -r "${testRunName}" checklist.yaml
     """
 
@@ -807,17 +769,13 @@
              [$class          : 'UsernamePasswordMultiBinding',
              credentialsId   : testrail_cred_id,
              passwordVariable: 'TESTRAIL_PASSWORD',
-             usernameVariable: 'TESTRAIL_USER'
+             usernameVariable: 'TESTRAIL_USER']
   ]) {
     def ret = [:]
     ret.stdout = ''
     ret.exception = ''
     try {
-        withVirtualEnv( name: "venv_testrail_analyzer",
-                        pythonVersion: "python3.7",
-                        installRepo: "git+https://review.gerrithub.io/ibumarskov/testrail-reporter",
-                        command: script)
-//         ret.stdout = run_cmd_stdout(script)
+        ret.stdout = run_cmd_stdout(script)
     } catch (Exception ex) {
         ret.exception = ("""\
 ##### Report to '${testRunName}' failed: #####\n""" + ex.message + "\n\n")
@@ -825,7 +783,6 @@
     return ret
   }
 }
-
 def reboot_hardware_nodes(creds_name) {
     bm_ips_file = readFile("tcp_tests/templates/${creds_name}")
     bm_ips = bm_ips_file.split("\n")
