diff --git a/src/com/mirantis/mk/Workflow.groovy b/src/com/mirantis/mk/Workflow.groovy
index ef24280..9281907 100644
--- a/src/com/mirantis/mk/Workflow.groovy
+++ b/src/com/mirantis/mk/Workflow.groovy
@@ -483,50 +483,3 @@
         }
     } // finally
 }
-
-/**
- * Upload artifacts from SI scenario in Jfrog artifactory
- *
- * @param:        entrypointDirectory   (string) directory that needs to be archieved
- * @param:        storeArtsInJenkins    (bool) store artifacts in jenkins as well
- */
-def manageArtifacts(entrypointDirectory, storeArtsInJenkins = false) {
-    def mcpArtifactory = new com.mirantis.mcp.MCPArtifactory()
-    artifactoryServerName = 'mcp-ci'
-    artifactoryRepoPath = "si-local/jenkins-job-artifacts/${JOB_NAME}/${BUILD_NUMBER}"
-    tests_log = "${entrypointDirectory}/tests.log"
-
-    if (fileExists(tests_log)) {
-        try {
-            size = sh([returnStdout: true, script: "stat --printf='%s' ${tests_log}"]).trim().toInteger()
-            // do not archive unless it is more than 50 MB
-            allowed_size = 1048576 * 50
-            if (size >= allowed_size) {
-                sh("gzip ${tests_log} || true")
-            }
-        } catch (e) {
-            print("Cannot determine tests.log filesize: ${e}")
-        }
-    }
-
-    if (storeArtsInJenkins) {
-        archiveArtifacts(
-            artifacts: "${entrypointDirectory}/**",
-            allowEmptyArchive: true
-        )
-    }
-    artConfig = [
-        deleteArtifacts: false,
-        artifactory    : artifactoryServerName,
-        artifactPattern: "${entrypointDirectory}/**",
-        artifactoryRepo: "artifactory/${artifactoryRepoPath}",
-    ]
-    artDescription = mcpArtifactory.uploadArtifactsToArtifactory(artConfig)
-    currentBuild.description += "${artDescription}<br>"
-
-    junit(testResults: "${entrypointDirectory}/**/*.xml", allowEmptyResults: true)
-
-    artifactoryServer = Artifactory.server(artifactoryServerName)
-    artifactsUrl = "${artifactoryServer.getUrl()}/artifactory/${artifactoryRepoPath}"
-    return artifactsUrl
-}
