rewrite updateRelaseMetadata for more generic way
Related-prod: PROD-31485

Change-Id: If5e275364372d523eccc967bb0caab8c8edf0296
diff --git a/src/com/mirantis/mk/ReleaseWorkflow.groovy b/src/com/mirantis/mk/ReleaseWorkflow.groovy
index 8fe21ae..5d54776 100644
--- a/src/com/mirantis/mk/ReleaseWorkflow.groovy
+++ b/src/com/mirantis/mk/ReleaseWorkflow.groovy
@@ -1,5 +1,4 @@
 package com.mirantis.mk
-
 /**
  * ReleaseWorkflow functions
  *
@@ -10,92 +9,79 @@
  *
  * @param key metadata key
  * @param value metadata value
- * @param image image name
- * @param imageRelease image release name
+ * @param params string map with credentialsID, metadataRepoUrl, metadataGerritBranch and crTopic
  */
 
-def updateReleaseMetadata(key, value, image, imageRelease){
+def updateReleaseMetadata(key, value, String[] params) {
+    credentialsID = params['credentialsID'] ?: "mcp-ci-gerrit"
+    metadataRepoUrl = params['metadataRepoUrl'] ?: "ssh://mcp-ci-gerrit@gerrit.mcp.mirantis.net:29418/mcp/release-matadata"
+    metadataGerritBranch = params['metadataGerritBranch'] ?: "master"
+    crTopic = params['crTopic'] ?: ""
     def python = new com.mirantis.mk.Python()
     def gerrit = new com.mirantis.mk.Gerrit()
     def git = new com.mirantis.mk.Git()
     def changeAuthorName = "MCP-CI"
     def changeAuthorEmail = "mcp-ci-jenkins@ci.mcp.mirantis.net"
-    def cred = common.getCredentials(env["CREDENTIALS_ID"], 'key')
+    def cred = common.getCredentials(credentialsID, 'key')
     String gerritUser = cred.username
-    def gerritHost = env["METADATA_REPO_URL.tokenize"]('@')[-1].tokenize(':')[0]
-    def metadataProject = env["METADATA_REPO_URL"].tokenize('/')[-2..-1].join('/')
-    def gerritPort = env["METADATA_REPO_URL"].tokenize(':')[-1].tokenize('/')[0]
+    def gerritHost = metadataRepoUrl.tokenize('@')[-1].tokenize(':')[0]
+    def metadataProject = metadataRepoUrl.tokenize('/')[-2..-1].join('/')
+    def gerritPort = metadataRepoUrl.tokenize(':')[-1].tokenize('/')[0]
     def workspace = common.getWorkspace()
     def venvDir = "${workspace}/gitreview-venv"
     def repoDir = "${venvDir}/repo"
     def metadataDir = "${repoDir}/metadata"
-    def imageChangeId
+    def ChangeId
     def commitMessage
     def gitRemote
-    if (env["RELEASE_METADATA_CR"].toBoolean()) {
-        stage("Installing virtualenv") {
-            python.setupVirtualenv(venvDir, 'python3', ['git-review', 'PyYaml'])
+    stage("Installing virtualenv") {
+        python.setupVirtualenv(venvDir, 'python3', ['git-review', 'PyYaml'])
+    }
+    stage('Cleanup repo dir') {
+        dir(repoDir) {
+            deleteDir()
         }
-
-        stage('Cleanup repo dir') {
-            dir(repoDir) {
-                deleteDir()
-            }
+    }
+    stage('Cloning release-metadata repository') {
+        git.checkoutGitRepository(repoDir, metadataRepoUrl, metadataGerritBranch, credentialsID, true, 10, 0)
+        dir(repoDir) {
+            gitRemote = sh(
+                    script:
+                            'git remote -v | head -n1 | cut -f1',
+                    returnStdout: true,
+            ).trim()
         }
-        stage('Cloning release-metadata repository') {
-            git.checkoutGitRepository(repoDir, env["METADATA_REPO_URL"], env["METADATA_GERRIT_BRANCH"], env["CREDENTIALS_ID"], true, 10, 0)
-            dir(repoDir) {
-                gitRemote = sh(
-                        script:
-                                'git remote -v | head -n1 | cut -f1',
-                        returnStdout: true,
-                ).trim()
-            }
+    }
+    stage('Creating CR') {
+        def gerritAuth = ['PORT': gerritPort, 'USER': gerritUser, 'HOST': gerritHost]
+        def changeParams = ['owner': gerritUser, 'status': 'open', 'project': metadataProject, 'branch': metadataGerritBranch, 'topic': crTopic]
+        def gerritChange = gerrit.findGerritChange(credentialsID, gerritAuth, changeParams)
+        git.changeGitBranch(repoDir, metadataGerritBranch)
+        if (gerritChange) {
+            def jsonChange = readJSON text: gerritChange
+            changeNum = jsonChange['number']
+            ChangeId = 'Change-Id: '
+            ChangeId += jsonChange['id']
+            //get existent change from gerrit
+            gerrit.getGerritChangeByNum(credentialsID, venvDir, repoDir, gitRemote, changeNum)
+        } else {
+            ChangeId = ''
+            git.createGitBranch(repoDir, crTopic)
         }
-        stage('Creating CRs') {
-            for (openstackRelease in resultBuiltImages.keySet()) {
-                def crTopic = "nightly_update_images_" + openstackRelease
-                //Check if CR already exist
+        cmdText = "python ${repoDir}/utils/app.py --path ${metadataDir} update --key ${key} --value ${value}"
+        python.runVirtualenvCommand(venvDir, cmdText)
+        commitMessage =
+                """[oscore] Auto-update ${metadataProject}
 
-                def gerritAuth = ['PORT': gerritPort, 'USER': gerritUser, 'HOST': gerritHost]
-                def changeParams = ['owner': gerritUser, 'status': 'open', 'project': metadataProject, 'branch': env["METADATA_GERRIT_BRANCH"], 'topic': crTopic]
-                def gerritChange = gerrit.findGerritChange(env["CREDENTIALS_ID"], gerritAuth, changeParams)
-
-                git.changeGitBranch(repoDir, env["METADATA_GERRIT_BRANCH"])
-                if (gerritChange) {
-                    def jsonChange = readJSON text: gerritChange
-                    changeNum = jsonChange['number']
-                    imageChangeId = 'Change-Id: '
-                    imageChangeId += jsonChange['id']
-                    //get existent change from gerrit
-                    gerrit.getGerritChangeByNum(env["CREDENTIALS_ID"], venvDir, repoDir, gitRemote, changeNum)
-                } else {
-                    imageChangeId = ''
-                    git.createGitBranch(repoDir, crTopic)
-                }
-
-                for (component in resultBuiltImages[openstackRelease].keySet()) {
-                    resultBuiltImages[openstackRelease][component].each {
-                        cmdText = "python ${repoDir}/utils/app.py --path ${metadataDir} update --key images:${image}:${imageRelease}:${component}:${key} --value ${value}"
-                        python.runVirtualenvCommand(venvDir, cmdText)
-                    }
-                }
-
-                commitMessage =
-                        """[oscore] Auto-update ${metadataProject}
-
-               |${imageChangeId}
+               |${ChangeId}
             """.stripMargin()
-                //commit change
-                if (gerritChange) {
-                    git.commitGitChanges(repoDir, commitMessage, changeAuthorEmail, changeAuthorName, false, true)
-                } else {
-                    git.commitGitChanges(repoDir, commitMessage, changeAuthorEmail, changeAuthorName, false)
-                }
-                //post change
-                gerrit.postGerritReview(CREDENTIALS_ID, venvDir, repoDir, changeAuthorName, changeAuthorEmail, gitRemote, crTopic, METADATA_GERRIT_BRANCH)
-
-            }
+        //commit change
+        if (gerritChange) {
+            git.commitGitChanges(repoDir, commitMessage, changeAuthorEmail, changeAuthorName, false, true)
+        } else {
+            git.commitGitChanges(repoDir, commitMessage, changeAuthorEmail, changeAuthorName, false)
         }
+        //post change
+        gerrit.postGerritReview(credentialsID, venvDir, repoDir, changeAuthorName, changeAuthorEmail, gitRemote, crTopic, metadataGerritBranch)
     }
 }
\ No newline at end of file