[ Cmii ] [ Octopus ] - add Image Function - 1
This commit is contained in:
110
agent-common/image/ImageNameConvert.go
Normal file
110
agent-common/image/ImageNameConvert.go
Normal file
@@ -0,0 +1,110 @@
|
||||
package image
|
||||
|
||||
import (
|
||||
"strings"
|
||||
)
|
||||
|
||||
var unSupported = "UN-SUPPORT-APP-NAME"
|
||||
|
||||
const CmiiHarborPrefix = "harbor.cdcyy.com.cn/cmii/"
|
||||
|
||||
func ImageFullNameToAppName(imageFullName string) (appName string) {
|
||||
|
||||
// harbor.cdcyy.cn/cmii/cmii-uav-platform:5.4.0 ==> cmii-uav-platform
|
||||
|
||||
// 10.1.1.1:8033/cmii/ok:1.2 不支持 不允许存在
|
||||
// rancher/fleet:v0.3.4
|
||||
|
||||
// ossr/srs:v5.0.1 ==> docker=cmii=srs=v5.0.1.tar.gz
|
||||
// nginx:latest
|
||||
// bitnami/minio:2022.5.4
|
||||
// simonrupf/chronyd:0.4.3
|
||||
|
||||
if strings.HasPrefix(imageFullName, CmiiHarborPrefix) {
|
||||
return strings.Split(strings.TrimPrefix(imageFullName, CmiiHarborPrefix), ":")[0]
|
||||
}
|
||||
|
||||
return ""
|
||||
}
|
||||
|
||||
func ImageFullNameToImageTag(imageFullName string) (imageTag string) {
|
||||
s := strings.Split(imageFullName, ":")[1]
|
||||
|
||||
if strings.Contains(s, ":") {
|
||||
// 10.1.1.1:8033/cmii/ok:1.2
|
||||
return strings.Split(imageFullName, ":")[2]
|
||||
}
|
||||
|
||||
return s
|
||||
}
|
||||
|
||||
// ImageFullNameToGzipFileName 必须输出长度为4的内容 =出现得次数为3
|
||||
func ImageFullNameToGzipFileName(imageFullName string) (gzipFileName string) {
|
||||
|
||||
// harbor.cdcyy.cn/cmii/cmii-uav-platform:5.4.0 ==> cmlc=cmii=cmii-uav-platform=5.4.0.tar.gz
|
||||
// rancher/fleet:v0.3.4
|
||||
|
||||
// ossr/srs:v5.0.1 ==> docker=cmii=srs=v5.0.1.tar.gz
|
||||
// nginx:latest
|
||||
// bitnami/minio:2022.5.4
|
||||
// simonrupf/chronyd:0.4.3
|
||||
|
||||
// 10.1.1.1:8033/cmii/ok:1.2 不支持 不允许存在
|
||||
|
||||
split := strings.Split(imageFullName, ":")
|
||||
//log.DebugF(" %s to %s", imageRepoTag, split)
|
||||
if len(split) == 1 {
|
||||
// nginx
|
||||
return "docker=library=" + imageFullName + "=latest.tar.gz"
|
||||
}
|
||||
|
||||
first := strings.Split(split[0], "/")
|
||||
//log.DebugF(" split[0] %s to %s", split[0], first)
|
||||
if len(first) == 3 {
|
||||
// harbor.cdcyy.cn/cmii/cmii-uav-platform:5.4.0
|
||||
// docker.io/ossr/srs:v5.0.1
|
||||
if strings.HasPrefix(split[0], CmiiHarborPrefix) {
|
||||
gzipFileName += "cmlc=cmii="
|
||||
} else {
|
||||
gzipFileName += "docker=cmii="
|
||||
}
|
||||
gzipFileName += first[2]
|
||||
gzipFileName += "="
|
||||
|
||||
} else if len(first) == 4 {
|
||||
// harbor.cdcyy.cn/cmii/ossr/srs:v5.0.1
|
||||
// harbor.cdcyy.com.cn/cmii/cmlc-ai/cmlc-ai-operator:v5.2.0-t4-no-dino
|
||||
if !strings.HasPrefix(split[0], CmiiHarborPrefix) {
|
||||
return imageFullName
|
||||
}
|
||||
gzipFileName += "cmlc=cmii="
|
||||
gzipFileName += first[3]
|
||||
gzipFileName += "="
|
||||
} else if len(first) == 2 {
|
||||
// bitnami/redis
|
||||
// ossrs/srs
|
||||
gzipFileName += "docker="
|
||||
gzipFileName += first[0]
|
||||
gzipFileName += "="
|
||||
gzipFileName += first[1]
|
||||
gzipFileName += "="
|
||||
} else if len(first) == 1 {
|
||||
// nginx:latest
|
||||
return "docker=library=" + split[0] + "=" + split[1] + ".tar.gz"
|
||||
}
|
||||
|
||||
gzipFileName += split[1]
|
||||
gzipFileName += ".tar.gz"
|
||||
|
||||
return gzipFileName
|
||||
}
|
||||
|
||||
func ImageFullNameToTargetImageFullName(imageFullName, targetHost string) string {
|
||||
|
||||
return imageFullName
|
||||
}
|
||||
|
||||
func GzipFileNameToImageFullName(gzipFileName string) (imageFullName string) {
|
||||
|
||||
return gzipFileName
|
||||
}
|
||||
Reference in New Issue
Block a user