[agent-operator]-无聊的更新内容
This commit is contained in:
302
agent-operator/image/ImageOperator_test.go
Normal file
302
agent-operator/image/ImageOperator_test.go
Normal file
@@ -0,0 +1,302 @@
|
||||
package image
|
||||
|
||||
import (
|
||||
"bufio"
|
||||
"fmt"
|
||||
"strings"
|
||||
"testing"
|
||||
"wdd.io/agent-common/assert"
|
||||
"wdd.io/agent-common/image"
|
||||
"wdd.io/agent-common/utils"
|
||||
"wdd.io/agent-deploy/d_app"
|
||||
)
|
||||
|
||||
func TestGetRunningContainer(t *testing.T) {
|
||||
|
||||
allContainer := GetRunningContainer()
|
||||
|
||||
for _, container := range allContainer {
|
||||
utils.BeautifulPrint(container)
|
||||
}
|
||||
|
||||
}
|
||||
func TestGetAllContainer(t *testing.T) {
|
||||
|
||||
allContainer := GetAllContainer()
|
||||
|
||||
for _, container := range allContainer {
|
||||
utils.BeautifulPrint(container)
|
||||
}
|
||||
}
|
||||
|
||||
func TestImageGetAll(t *testing.T) {
|
||||
imageGetAll := GetAll()
|
||||
|
||||
for _, summary := range imageGetAll {
|
||||
utils.BeautifulPrint(summary)
|
||||
}
|
||||
}
|
||||
|
||||
func TestImageGetByName(t *testing.T) {
|
||||
image := "harbor.cdcyy.com.cn/cmii/cmii-uav-gateway:4.1.6-beta"
|
||||
imageGetByName := GetByName(image)
|
||||
|
||||
utils.BeautifulPrint(imageGetByName)
|
||||
}
|
||||
|
||||
func TestImageDelete(t *testing.T) {
|
||||
image := "harbor.cdcyy.com.cn/cmii/cmii-uav-gateway:4.1.6-beta"
|
||||
imageDelete := Delete(image)
|
||||
|
||||
for _, item := range imageDelete {
|
||||
utils.BeautifulPrint(item)
|
||||
}
|
||||
}
|
||||
|
||||
func TestImagePullFromCmiiHarbor(t *testing.T) {
|
||||
image := "harbor.cdcyy.com.cn/cmii/cmii-uav-gateway:4.1.6-beta"
|
||||
|
||||
pullFromCmiiHarbor := PullFromCmiiHarbor(image)
|
||||
defer pullFromCmiiHarbor.Close()
|
||||
|
||||
scanner := bufio.NewScanner(pullFromCmiiHarbor)
|
||||
|
||||
for scanner.Scan() {
|
||||
line := scanner.Text()
|
||||
|
||||
if strings.Contains(line, "\"status\":\"Pulling from") {
|
||||
fmt.Println(line)
|
||||
}
|
||||
if strings.Contains(line, "Status: Image is up to date for") {
|
||||
fmt.Println(line)
|
||||
}
|
||||
}
|
||||
|
||||
//var fs uintptr
|
||||
//
|
||||
//tools.DisplayJSONMessagesStream(pullFromCmiiHarbor, os.Stdout, fs, true, func(message tools.JSONMessage) {
|
||||
//
|
||||
//})
|
||||
}
|
||||
|
||||
func TestImagePushToOctopusKindHarbor(t *testing.T) {
|
||||
|
||||
// re-tag
|
||||
image := "harbor.cdcyy.com.cn/cmii/cmii-uav-gateway:4.1.6-beta"
|
||||
newTag := "10.250.0.100:8033/cmii/cmii-uav-gateway:4.1.6-beta"
|
||||
target := TagFromSourceToTarget(image, newTag)
|
||||
assert.Equal(t, target, true, "image re-tag error !")
|
||||
|
||||
// push
|
||||
pushResult := UploadToOctopusKindHarbor(newTag)
|
||||
defer pushResult.Close()
|
||||
|
||||
scanner := bufio.NewScanner(pushResult)
|
||||
for scanner.Scan() {
|
||||
|
||||
}
|
||||
|
||||
fmt.Println("image push success!")
|
||||
}
|
||||
|
||||
func TestImageLoadFromFile(t *testing.T) {
|
||||
|
||||
loadFromFile := LoadFromGzipFilePath("/root/cmlc=cmii=srs=v5.0.195.tar.gz")
|
||||
|
||||
assert.Equal(t, loadFromFile, true, "image load error !")
|
||||
}
|
||||
|
||||
func TestImageSaveToTarGZ(t *testing.T) {
|
||||
image := "harbor.cdcyy.com.cn/cmii/cmii-uav-gateway:4.1.6-beta"
|
||||
|
||||
imageSaveToTarGZ, _ := SaveToGzipFile(image, "/home/wdd/IdeaProjects/ProjectOctopus/cmii_operator/log")
|
||||
|
||||
assert.Equal(t, imageSaveToTarGZ, true, "image save to tar gz file error !")
|
||||
}
|
||||
|
||||
func TestImageFullNameToGzipFileName(t *testing.T) {
|
||||
|
||||
test := []string{
|
||||
"bitnami/redis:6.2.6-debian-10-r0",
|
||||
"simonrupf/chronyd:0.4.3",
|
||||
"harbor.cdcyy.com.cn/cmii/cmii-rtsp-operator:v4.1.0",
|
||||
"harbor.cdcyy.com.cn/cmii/ossrs/srs:v4.0.136",
|
||||
"ossrs/srs:v4.0.136",
|
||||
"mongo:5.0",
|
||||
"bitnami/minio:2023.5.4",
|
||||
"busybox:latest",
|
||||
"busybox",
|
||||
}
|
||||
|
||||
test = append(test, d_app.MiddlewareAmd64...)
|
||||
|
||||
for _, s := range test {
|
||||
gzipFileName := image.ImageFullNameToGzipFileName(s)
|
||||
fmt.Println(gzipFileName)
|
||||
}
|
||||
}
|
||||
|
||||
func TestImagePruneAllCmiiImages(t *testing.T) {
|
||||
|
||||
errorRemoveImageNameList := PruneAllCmiiImages()
|
||||
|
||||
utils.BeautifulPrintListWithTitle(errorRemoveImageNameList, "CMII Image Prune Error")
|
||||
}
|
||||
|
||||
func TestImageTagFromSourceToTarget(t *testing.T) {
|
||||
|
||||
sourceImageName := "ossrs/srs:v5.0.195"
|
||||
targetImageName := "harbor.wdd.io:8033/cmii/srs:v5.0.195"
|
||||
|
||||
if TagFromSourceToTarget(sourceImageName, targetImageName) {
|
||||
pushResult := UploadToOctopusKindHarbor(targetImageName)
|
||||
defer pushResult.Close()
|
||||
|
||||
scanner := bufio.NewScanner(pushResult)
|
||||
for scanner.Scan() {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
func TestSaveSpecificImageToGzipFile(t *testing.T) {
|
||||
|
||||
imageGzipFilePathPrefix := "/root/ai_image/"
|
||||
|
||||
imageFullNameList := []string{
|
||||
"harbor.cdcyy.com.cn/cmii/cmlc-ai/cmlc-ai-operator:v5.2.0-t4-no-dino",
|
||||
}
|
||||
|
||||
for _, imageFullName := range imageFullNameList {
|
||||
result := PullFromCmiiHarbor(imageFullName)
|
||||
if result == nil {
|
||||
log.ErrorF("image pull error ! => %s", imageFullName)
|
||||
return
|
||||
}
|
||||
scc := bufio.NewScanner(result)
|
||||
for scc.Scan() {
|
||||
line := scc.Text()
|
||||
if strings.Contains(line, "\"status\":\"Pulling from") {
|
||||
fmt.Println(line)
|
||||
}
|
||||
if strings.Contains(line, "Status: Image is up to date for") {
|
||||
fmt.Println(line)
|
||||
}
|
||||
}
|
||||
|
||||
// image pull success
|
||||
log.InfoF("image should have pulled successful ! => %s", imageFullName)
|
||||
ok, _ := SaveToGzipFile(imageFullName, imageGzipFilePathPrefix)
|
||||
if !ok {
|
||||
log.ErrorF("image save to gzip file error ! => %s", imageFullName)
|
||||
return
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
func TestConvertCmiiImageMapFromGzipFolder(t *testing.T) {
|
||||
|
||||
versionMap := CmiiImageMapFromGzipFolder(OfflineImageGzipFolderPrefix)
|
||||
|
||||
utils.BeautifulPrint(versionMap)
|
||||
}
|
||||
|
||||
func TestImageNameToTargetImageFullName(t *testing.T) {
|
||||
|
||||
AllCmiiImageTagList := []string{
|
||||
"harbor.cdcyy.com.cn/cmii/cmii-uav-cloud-live:5.4.0",
|
||||
"harbor.cdcyy.com.cn/cmii/cmii-uav-data-post-process:5.4.0",
|
||||
"harbor.cdcyy.com.cn/cmii/cmii-uav-depotautoreturn:5.4.0",
|
||||
"harbor.cdcyy.com.cn/cmii/cmii-uav-logger:5.4.0",
|
||||
"harbor.cdcyy.com.cn/cmii/cmii-uav-mqtthandler:5.4.0",
|
||||
"harbor.cdcyy.com.cn/cmii/cmii-uav-notice:5.4.0",
|
||||
"harbor.cdcyy.com.cn/cmii/cmii-admin-gateway:5.4.0",
|
||||
"harbor.cdcyy.com.cn/cmii/cmii-uav-cms:5.4.0",
|
||||
"harbor.cdcyy.com.cn/cmii/cmii-uav-material-warehouse:5.4.0",
|
||||
"harbor.cdcyy.com.cn/cmii/cmii-uav-process:5.4.0",
|
||||
"harbor.cdcyy.com.cn/cmii/cmii-uav-autowaypoint:5.4.0",
|
||||
"harbor.cdcyy.com.cn/cmii/cmii-uav-brain:5.4.0",
|
||||
"harbor.cdcyy.com.cn/cmii/cmii-uav-mission:5.4.0",
|
||||
"harbor.cdcyy.com.cn/cmii/cmii-uav-oauth:5.4.0",
|
||||
"harbor.cdcyy.com.cn/cmii/cmii-uav-airspace:5.4.0",
|
||||
"harbor.cdcyy.com.cn/cmii/cmii-suav-supervision:5.4.0",
|
||||
"harbor.cdcyy.com.cn/cmii/cmii-uav-user:5.4.0",
|
||||
"harbor.cdcyy.com.cn/cmii/cmii-admin-user:5.4.0",
|
||||
"harbor.cdcyy.com.cn/cmii/cmii-uav-emergency:5.4.0",
|
||||
"harbor.cdcyy.com.cn/cmii/cmii-uav-kpi-monitor:5.4.0",
|
||||
"harbor.cdcyy.com.cn/cmii/cmii-uav-waypoint:5.4.0",
|
||||
"harbor.cdcyy.com.cn/cmii/cmii-uav-device:5.4.0",
|
||||
"harbor.cdcyy.com.cn/cmii/cmii-uav-alarm:5.4.0",
|
||||
"harbor.cdcyy.com.cn/cmii/cmii-uav-clusters:5.4.0",
|
||||
"harbor.cdcyy.com.cn/cmii/cmii-uav-surveillance:5.4.0",
|
||||
"harbor.cdcyy.com.cn/cmii/cmii-uav-threedsimulation:5.4.0",
|
||||
"harbor.cdcyy.com.cn/cmii/cmii-open-gateway:5.4.0",
|
||||
"harbor.cdcyy.com.cn/cmii/cmii-uav-industrial-portfolio:5.4.0",
|
||||
"harbor.cdcyy.com.cn/cmii/cmii-uav-tower:5.4.0",
|
||||
"harbor.cdcyy.com.cn/cmii/cmii-uav-developer:5.4.0",
|
||||
"harbor.cdcyy.com.cn/cmii/cmii-app-release:5.4.0",
|
||||
"harbor.cdcyy.com.cn/cmii/cmii-uav-gateway:5.4.0",
|
||||
"harbor.cdcyy.com.cn/cmii/cmii-uav-integration:5.4.0",
|
||||
"harbor.cdcyy.com.cn/cmii/cmii-admin-data:5.4.0",
|
||||
"harbor.cdcyy.com.cn/cmii/cmii-uav-platform-armypeople:5.4.0",
|
||||
"harbor.cdcyy.com.cn/cmii/cmii-uav-platform-base:5.4.0",
|
||||
"harbor.cdcyy.com.cn/cmii/cmii-uav-platform-logistics:5.4.0",
|
||||
"harbor.cdcyy.com.cn/cmii/cmii-uav-platform:5.4.0",
|
||||
"harbor.cdcyy.com.cn/cmii/cmii-uav-platform-seniclive:5.4.0",
|
||||
"harbor.cdcyy.com.cn/cmii/cmii-uav-platform-visualization:5.4.0",
|
||||
"harbor.cdcyy.com.cn/cmii/cmii-uav-platform-cms-portal:5.4.0",
|
||||
"harbor.cdcyy.com.cn/cmii/cmii-uav-platform-multiterminal:5.4.0",
|
||||
"harbor.cdcyy.com.cn/cmii/cmii-uav-platform-security:5.4.0",
|
||||
"harbor.cdcyy.com.cn/cmii/cmii-uav-platform-media:5.4.0",
|
||||
"harbor.cdcyy.com.cn/cmii/cmii-uav-platform-oms:5.4.0",
|
||||
"harbor.cdcyy.com.cn/cmii/cmii-uav-platform-securityh5:5.4.0",
|
||||
"harbor.cdcyy.com.cn/cmii/cmii-uav-platform-share:5.4.0",
|
||||
"harbor.cdcyy.com.cn/cmii/cmii-suav-platform-supervision:5.4.0",
|
||||
"harbor.cdcyy.com.cn/cmii/cmii-uav-platform-ai-brain:5.4.0",
|
||||
"harbor.cdcyy.com.cn/cmii/cmii-uav-platform-emergency-rescue:5.4.0",
|
||||
"harbor.cdcyy.com.cn/cmii/cmii-uav-platform-splice:5.4.0",
|
||||
"harbor.cdcyy.com.cn/cmii/cmii-uav-platform-jiangsuwenlv:5.4.0",
|
||||
"harbor.cdcyy.com.cn/cmii/cmii-uav-platform-open:5.4.0",
|
||||
"harbor.cdcyy.com.cn/cmii/cmii-uav-platform-qinghaitourism:5.4.0",
|
||||
"harbor.cdcyy.com.cn/cmii/cmii-uav-platform-qingdao:5.4.0",
|
||||
"harbor.cdcyy.com.cn/cmii/cmii-uav-platform-mws:5.4.0",
|
||||
"harbor.cdcyy.com.cn/cmii/cmii-uav-platform-threedsimulation:5.4.0",
|
||||
"harbor.cdcyy.com.cn/cmii/cmii-suav-platform-supervisionh5:5.4.0",
|
||||
"harbor.cdcyy.com.cn/cmii/cmii-uav-platform-detection:5.4.0",
|
||||
"harbor.cdcyy.com.cn/cmii/cmii-uav-platform-hljtt:5.4.0",
|
||||
"harbor.cdcyy.com.cn/cmii/cmii-live-operator:5.2.0",
|
||||
"ossrs/srs:v5.0.195",
|
||||
"harbor.cdcyy.com.cn/cmii/cmii-srs-oss-adaptor:2023-SA",
|
||||
}
|
||||
|
||||
AllCmiiImageTagList = append(AllCmiiImageTagList, d_app.Rancher1204Amd64...)
|
||||
AllCmiiImageTagList = append(AllCmiiImageTagList, d_app.MiddlewareAmd64...)
|
||||
|
||||
var result []string
|
||||
for _, imageName := range AllCmiiImageTagList {
|
||||
targetImageFullName := image.ImageNameToTargetImageFullName(imageName, "cq.com")
|
||||
result = append(result, targetImageFullName)
|
||||
}
|
||||
|
||||
utils.BeautifulPrint(result)
|
||||
}
|
||||
|
||||
func TestSaveImageListToGzipFile(t *testing.T) {
|
||||
|
||||
allImageList := []string{
|
||||
"harbor.cdcyy.com.cn/cmii/cmii-uav-oauth:5.7.0",
|
||||
"harbor.cdcyy.com.cn/cmii/cmii-iam-gateway:5.6.0",
|
||||
"harbor.cdcyy.com.cn/cmii/cmii-uav-kpi-monitor:5.5.0",
|
||||
}
|
||||
|
||||
gzipOK, gzipFileFullPath, errorGzipImageList := SaveImageListToGzipFile(allImageList, "/home/wdd/IdeaProjects/ProjectOctopus/agent-operator/image", "test.tar.gz")
|
||||
|
||||
assert.Equal(t, gzipOK, true, "gzip image list to single file failed !")
|
||||
|
||||
log.Info("gzip file is " + gzipFileFullPath)
|
||||
|
||||
utils.BeautifulPrint(errorGzipImageList)
|
||||
}
|
||||
Reference in New Issue
Block a user