github.com/alibaba/sealer@v0.8.6-0.20220430115802-37a2bdaa8173/test/sealer_images_test.go (about) 1 // Copyright © 2021 Alibaba Group Holding Ltd. 2 // 3 // Licensed under the Apache License, Version 2.0 (the "License"); 4 // you may not use this file except in compliance with the License. 5 // You may obtain a copy of the License at 6 // 7 // http://www.apache.org/licenses/LICENSE-2.0 8 // 9 // Unless required by applicable law or agreed to in writing, software 10 // distributed under the License is distributed on an "AS IS" BASIS, 11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 // See the License for the specific language governing permissions and 13 // limitations under the License. 14 15 package test 16 17 import ( 18 "fmt" 19 20 . "github.com/onsi/ginkgo" 21 22 "github.com/alibaba/sealer/test/suites/build" 23 "github.com/alibaba/sealer/test/suites/image" 24 "github.com/alibaba/sealer/test/suites/registry" 25 "github.com/alibaba/sealer/test/testhelper" 26 "github.com/alibaba/sealer/test/testhelper/settings" 27 ) 28 29 var _ = Describe("sealer image", func() { 30 Context("pull image", func() { 31 32 It(fmt.Sprintf("pull image %s", settings.TestImageName), func() { 33 image.DoImageOps(settings.SubCmdListOfSealer, settings.TestImageName) 34 image.DoImageOps(settings.SubCmdPullOfSealer, settings.TestImageName) 35 testhelper.CheckBeTrue(build.CheckIsImageExist(settings.TestImageName)) 36 By("show image metadata", func() { 37 testhelper.RunCmdAndCheckResult(fmt.Sprintf("%s inspect %s", settings.DefaultSealerBin, image.GetImageID(settings.TestImageName)), 0) 38 }) 39 40 tagImageNames := []string{ 41 "e2eimage_test:latest", 42 "e2eimage_test:v0.0.1", 43 "sealer-io/e2eimage_test:v0.0.2", 44 "registry.cn-qingdao.aliyuncs.com/sealer-io/e2eimage_test:v0.0.3", 45 } 46 By("tag by image name", func() { 47 image.TagImageList(settings.TestImageName, tagImageNames) 48 image.DoImageOps(settings.SubCmdListOfSealer, "") 49 image.RemoveImageList(tagImageNames) 50 }) 51 52 By("tag by image id", func() { 53 imageID := image.GetImageID(settings.TestImageName) 54 image.TagImageList(imageID, tagImageNames) 55 image.DoImageOps(settings.SubCmdListOfSealer, "") 56 image.RemoveImageList(tagImageNames) 57 }) 58 59 By("remove tag image", func() { 60 tagImageName := "e2e_images_test:v0.3" 61 image.DoImageOps(settings.SubCmdPullOfSealer, settings.TestImageName) 62 image.TagImages(settings.TestImageName, tagImageName) 63 testhelper.CheckBeTrue(build.CheckIsImageExist(tagImageName)) 64 image.DoImageOps(settings.SubCmdRmiOfSealer, tagImageName) 65 testhelper.CheckNotBeTrue(build.CheckIsImageExist(tagImageName)) 66 }) 67 68 /* // not support 69 By("force remove image", func() { 70 testhelper.CheckBeTrue(build.CheckIsImageExist(settings.TestImageName)) 71 testImageName := "image_test:v0.0" 72 for i := 1; i <= 5; i++ { 73 image.TagImages(settings.TestImageName, testImageName+strconv.Itoa(i)) 74 image.DoImageOps(settings.SubCmdListOfSealer, settings.TestImageName) 75 testhelper.CheckBeTrue(build.CheckIsImageExist(testImageName + strconv.Itoa(i))) 76 } 77 image.DoImageOps(settings.SubCmdForceRmiOfSealer, settings.TestImageName) 78 testhelper.CheckNotBeTrue(build.CheckIsImageExist(settings.TestImageName)) 79 testhelper.CheckNotBeTrue(build.CheckIsImageExist(testImageName)) 80 })*/ 81 }) 82 83 faultImageNames := []string{ 84 fmt.Sprintf("%s/%s:latest", settings.DefaultImageName, settings.DefaultImageRepo), 85 fmt.Sprintf("%s:latest", settings.DefaultImageDomain), 86 fmt.Sprintf("%s:latest", settings.DefaultImageRepo), 87 } 88 89 for _, faultImageName := range faultImageNames { 90 faultImageName := faultImageName 91 It(fmt.Sprintf("pull fault image %s", faultImageName), func() { 92 sess, err := testhelper.Start(fmt.Sprintf("%s %s %s", settings.DefaultSealerBin, settings.SubCmdPullOfSealer, faultImageName)) 93 testhelper.CheckErr(err) 94 testhelper.CheckNotExit0(sess, settings.DefaultWaiteTime) 95 testhelper.CheckNotBeTrue(build.CheckIsImageExist(faultImageName)) 96 }) 97 } 98 99 }) 100 101 Context("remove image", func() { 102 It(fmt.Sprintf("remove image %s", settings.TestImageName), func() { 103 image.DoImageOps(settings.SubCmdListOfSealer, "") 104 image.DoImageOps(settings.SubCmdPullOfSealer, settings.TestImageName) 105 testhelper.CheckBeTrue(build.CheckIsImageExist(settings.TestImageName)) 106 image.DoImageOps(settings.SubCmdRmiOfSealer, settings.TestImageName) 107 testhelper.CheckNotBeTrue(build.CheckIsImageExist(settings.TestImageName)) 108 }) 109 110 }) 111 112 Context("push image", func() { 113 BeforeEach(func() { 114 registry.Login() 115 image.DoImageOps(settings.SubCmdPullOfSealer, settings.TestImageName) 116 }) 117 AfterEach(func() { 118 registry.Logout() 119 }) 120 It("push image", func() { 121 pushImageName := "registry.cn-qingdao.aliyuncs.com/sealer-io/e2e_image_test:v0.01" 122 image.TagImages(settings.TestImageName, pushImageName) 123 image.DoImageOps(settings.SubCmdPushOfSealer, pushImageName) 124 }) 125 }) 126 })