[ Cmii ] [ Octopus ] - 实际项目

This commit is contained in:
zeaslity
2024-03-20 11:28:19 +08:00
committed by zeaslity
parent 6b4616690c
commit 8e6f09d522
34 changed files with 350 additions and 537 deletions

View File

@@ -355,7 +355,7 @@ func PullFromListAndCompressSplit(fullImageNameList []string, gzipFolder string)
errorGzipImageList = append(errorGzipImageList, image)
continue
}
tarGzipFileNameList = append(tarGzipFileNameList, convertImageGzipFileName(image))
tarGzipFileNameList = append(tarGzipFileNameList, ImageFullNameToGzipFileName(image))
}
utils.BeautifulPrintListWithTitle(tarGzipFileNameList, "image gzip name list")
@@ -431,7 +431,7 @@ func SaveToTarGZ(targetImageName, folderPathPrefix string) bool {
}
}
gzipImageFile := convertImageGzipFileName(realImageTag)
gzipImageFile := ImageFullNameToGzipFileName(realImageTag)
if !strings.HasSuffix(folderPathPrefix, "/") {
folderPathPrefix += "/"
}
@@ -463,66 +463,6 @@ func SaveToTarGZ(targetImageName, folderPathPrefix string) bool {
return true
}
// convertImageGzipFileName 必须输出长度为4的内容 =出现得次数为3
func convertImageGzipFileName(imageRepoTag 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(imageRepoTag, ":")
//log.DebugF(" %s to %s", imageRepoTag, split)
if len(split) == 1 {
// nginx
return "docker=library=" + imageRepoTag + "=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
if !strings.HasPrefix(split[0], CmiiHarborPrefix) {
return imageRepoTag
}
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 ConvertCMiiImageMapToList(cmiiImageVersionMap map[string]string) (fullImageNameList []string) {
for image, tag := range cmiiImageVersionMap {

View File

@@ -117,7 +117,7 @@ func TestImageSaveToTarGZ(t *testing.T) {
assert.Equal(t, imageSaveToTarGZ, true, "image save to tar gz file error !")
}
func TestConvertImageGzipFileName(t *testing.T) {
func TestImageFullNameToGzipFileName(t *testing.T) {
test := []string{
"bitnami/redis:6.2.6-debian-10-r0",
@@ -132,7 +132,7 @@ func TestConvertImageGzipFileName(t *testing.T) {
}
for _, s := range test {
gzipFileName := convertImageGzipFileName(s)
gzipFileName := ImageFullNameToGzipFileName(s)
fmt.Printf(" %s to %s \n", s, gzipFileName)
}
}

View File

@@ -0,0 +1,100 @@
package image
import "strings"
var unSupported = "UN-SUPPORT-APP-NAME"
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
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 GzipFileNameToImageFullName(gzipFileName string) (imageFullName string) {
return gzipFileName
}