Revert "Fix properties setting in `docker-images-mirror` (try #2)"
This reverts commit 014e12b8fc6e25270155941213af57720bf33ba3.
Change-Id: I3c1f169cbac49e7bf46788991a3413913e20b498
diff --git a/docker-mirror-images.groovy b/docker-mirror-images.groovy
index aca4185..522d044 100644
--- a/docker-mirror-images.groovy
+++ b/docker-mirror-images.groovy
@@ -17,6 +17,7 @@
*
*/
import java.util.regex.Pattern
+import groovy.json.JsonSlurper
common = new com.mirantis.mk.Common()
external = false
@@ -91,14 +92,18 @@
if (setDefaultArtifactoryProperties) {
common.infoMsg("Processing artifactory props for : ${targetImageFull}")
LinkedHashMap artifactoryProperties = [:]
- // Guess API image URL to use for setting properties
- String artRepo
- String tgtGuessImage
- (artRepo, tgtGuessImage) = targetImageFull.split('/', 2)
- artRepo = artRepo.tokenize('.')[0]
- tgtGuessImage = artRepo + '/' + tgtGuessImage.replace(':', '/')
- String tgtImgUrl = "https://${targetRegistry}/artifactory/api/storage/${tgtGuessImage}"
- // Collect properties
+ // Get digest of pushed image
+ String unique_image_id = sh(
+ script: "docker inspect --format='{{index .RepoDigests 0}}' '${targetImageFull}'",
+ returnStdout: true,
+ ).trim()
+ def image_sha256 = unique_image_id.tokenize(':')[1]
+ def ret = new URL("https://${targetRegistry}/artifactory/api/search/checksum?sha256=${image_sha256}").getText()
+ // Most probably, we would get many images, especially for external images. We need to guess
+ // exactly one, which we pushing now
+ def tgtGuessImage = targetImageFull.replace(':', '/').replace(targetRegistry, '')
+ ArrayList img_data = new JsonSlurper().parseText(ret)['results']
+ def tgtImgUrl = img_data*.uri.find { it.contains(tgtGuessImage) } - '/manifest.json'
artifactoryProperties = [
'com.mirantis.targetTag' : env.IMAGE_TAG,
'com.mirantis.uniqueImageId': unique_image_id,