Promote pkg-promotion repositories from proposed to release

Related-PROD:https://mirantis.jira.com/browse/PROD-26049

Change-Id: Idde79818ea3e906828df06f0109a973083d9b155
diff --git a/release-mcp-version.groovy b/release-mcp-version.groovy
index 27290e9..f726087 100644
--- a/release-mcp-version.groovy
+++ b/release-mcp-version.groovy
@@ -21,6 +21,7 @@
  *   RELEASE_VCP_IMAGES - boolean
  *   EMAIL_NOTIFY
  *   NOTIFY_RECIPIENTS
+ *   PKG_REPO_LIST
  *
  */
 
@@ -91,6 +92,8 @@
 }
 
 def triggerPkgPromoteJob(PkgRepoList, PromoteFrom, PromoteTo) {
+    //For repositories with per-package promote such as extra, ceph
+    //we use different approaches for different steps of promoting
     def repos = PkgRepoList.trim().tokenize()
     def RepoName, RepoDist, PackagesToPromote
     for (repo in repos) {
@@ -105,13 +108,22 @@
         RepoName = repoArray[0]
         RepoDist = repoArray[1]
         PackagesToPromote = repoArray[2]
-        build job: "pkg-promote", parameters: [
-            [$class: 'ChoiceParameterValue', name: 'repoName', value: RepoName],
-            [$class: 'ChoiceParameterValue', name: 'repoDist', value: RepoDist],
-            [$class: 'ChoiceParameterValue', name: 'promoteFrom', value: PromoteFrom],
-            [$class: 'ChoiceParameterValue', name: 'promoteTo', value: PromoteTo],
-            [$class: 'TextParameterValue', name: 'packagesToPromote', value: PackagesToPromote],
-        ]
+        //During promote from testing to proposed we use per-package promote
+        if (SOURCE_REVISION == 'testing') {
+            build job: "pkg-promote", parameters: [
+               [$class: 'ChoiceParameterValue', name: 'repoName', value: RepoName],
+               [$class: 'ChoiceParameterValue', name: 'repoDist', value: RepoDist],
+               [$class: 'ChoiceParameterValue', name: 'promoteFrom', value: PromoteFrom],
+               [$class: 'ChoiceParameterValue', name: 'promoteTo', value: PromoteTo],
+               [$class: 'TextParameterValue', name: 'packagesToPromote', value: PackagesToPromote],
+            ]
+        //In promote from proposed to release we move links to snapshots
+        } else if (SOURCE_REVISION == 'proposed') {
+            build job: "mirror-snapshot-pkg-name-${RepoName}-${RepoDist}", parameters: [
+               [$class: 'ChoiceParameterValue', name: 'Snapshot_Name', value: PromoteFrom],
+               [$class: 'ChoiceParameterValue', name: 'Snapshot_Id', value: PromoteTo],
+            ]
+        }
     }
 }
 
@@ -144,7 +156,7 @@
                     triggerAptlyPromoteJob(APTLY_URL, 'all', false, true, 'all', false, "(.*)/${SOURCE_REVISION}", APTLY_STORAGES, "{0}/${TARGET_REVISION}")
                 }
 
-                if (PKG_PROMOTE.toBoolean() && SOURCE_REVISION == 'testing') {
+                if (PKG_PROMOTE.toBoolean()) {
                     common.infoMsg("Promoting Extra and Ceph packages")
                     triggerPkgPromoteJob(PKG_REPO_LIST, SOURCE_REVISION, TARGET_REVISION)
                 }