package cmii_operator import ( "errors" "os" "wdd.io/agent-go/executor" "wdd.io/agent-go/utils" ) const OfflineImageGzipFolderPrefix = "/root/octopus_image/" func FetchDemoImages(projectName string, gzipSplit bool) bool { // generate a project folder err := os.Mkdir(OfflineImageGzipFolderPrefix+projectName, os.ModeDir) if err != nil { if !errors.Is(err, os.ErrExist) { log.ErrorF("[FetchDemoImages] - create folder of %s error %s", OfflineImageGzipFolderPrefix+projectName, err.Error()) return false } } // get demo image version map backendMap, frontendMap := BackupAllCmiiDeploymentToMap(demo) utils.BeautifulPrint(backendMap) utils.BeautifulPrint(frontendMap) // save map to file backendMapFile := OfflineImageGzipFolderPrefix + projectName + "-backend-app.json" frontendMapFile := OfflineImageGzipFolderPrefix + projectName + "-frontend-app.json" _ = os.Remove(backendMapFile) _ = os.Remove(frontendMapFile) executor.BasicAppendContentToFile( utils.BeautifulPrintToString(backendMap), backendMapFile, ) executor.BasicAppendContentToFile( utils.BeautifulPrintToString(frontendMap), frontendMapFile, ) // download image ImagePullFromCmiiHarborByMap(backendMap, true) ImagePullFromCmiiHarborByMap(frontendMap, true) // compress image if gzipSplit { for image, tag := range backendMap { ImageSaveToTarGZ(image+":"+tag, OfflineImageGzipFolderPrefix+projectName+"/app/") } for image, tag := range frontendMap { ImageSaveToTarGZ(image+":"+tag, OfflineImageGzipFolderPrefix+projectName+"/app/") } } // upload to harbor // clean up images return false } func FetchDependencyRepos(gzipSplit bool) { err := os.Mkdir(OfflineImageGzipFolderPrefix, os.ModeDir) if err != nil { if !errors.Is(err, os.ErrExist) { log.ErrorF("[FetchDependencyRepos] - create folder of %s error %s", OfflineImageGzipFolderPrefix, err.Error()) } } ImagePullFromListAndCompressSplit(MiddlewareAmd64, OfflineImageGzipFolderPrefix+"middle/") ImagePullFromListAndCompressSplit(Rancher1204Amd64, OfflineImageGzipFolderPrefix+"rke/") }