github.com/opentelekomcloud/gophertelekomcloud@v0.9.3/acceptance/openstack/ims/create_image_from_ECS_test.go (about) 1 package ims 2 3 import ( 4 "testing" 5 6 "github.com/opentelekomcloud/gophertelekomcloud/acceptance/clients" 7 "github.com/opentelekomcloud/gophertelekomcloud/acceptance/openstack" 8 "github.com/opentelekomcloud/gophertelekomcloud/acceptance/tools" 9 image1 "github.com/opentelekomcloud/gophertelekomcloud/openstack/ims/v1/images" 10 "github.com/opentelekomcloud/gophertelekomcloud/openstack/ims/v1/others" 11 "github.com/opentelekomcloud/gophertelekomcloud/openstack/ims/v2/images" 12 "github.com/opentelekomcloud/gophertelekomcloud/openstack/obs" 13 th "github.com/opentelekomcloud/gophertelekomcloud/testhelper" 14 ) 15 16 func TestCreateImageFromECS(t *testing.T) { 17 t.Skip("long run test only for manual purpose") 18 client1, client2 := getClient(t) 19 20 computeClient, err := clients.NewComputeV1Client() 21 th.AssertNoErr(t, err) 22 23 ecs := openstack.CreateCloudServer(t, computeClient, openstack.GetCloudServerCreateOpts(t)) 24 t.Cleanup(func() { openstack.DeleteCloudServer(t, computeClient, ecs.ID) }) 25 26 fromDisk, err := images.CreateImageFromDisk(client2, images.CreateImageFromDiskOpts{ 27 Name: tools.RandomString("ims-test-", 3), 28 VolumeId: ecs.VolumeAttached[0].ID, 29 OsVersion: "Debian GNU/Linux 10.0.0 64bit", 30 }) 31 th.AssertNoErr(t, err) 32 jobEntities(t, client1, client2, fromDisk) 33 34 fromECS, err := images.CreateImageFromECS(client2, images.CreateImageFromECSOpts{ 35 Name: tools.RandomString("ims-test-", 3), 36 InstanceId: ecs.ID, 37 }) 38 th.AssertNoErr(t, err) 39 40 image := jobEntities(t, client1, client2, fromECS) 41 42 obsClient, bucketName := newBucket(t) 43 44 export, err := image1.ExportImage(client1, image1.ExportImageOpts{ 45 ImageId: image.ImageId, 46 BucketUrl: bucketName + ":" + image.ImageName, 47 FileFormat: "zvhd", 48 }) 49 t.Cleanup(func() { 50 _, err = obsClient.DeleteObject(&obs.DeleteObjectInput{ 51 Bucket: bucketName, 52 Key: image.ImageName, 53 }) 54 th.AssertNoErr(t, err) 55 }) 56 th.AssertNoErr(t, err) 57 58 err = others.WaitForJob(client1, *export, 1000) 59 th.AssertNoErr(t, err) 60 61 // quick, err := images.ImportImageQuick(client2, images.ImportImageQuickOpts{ 62 // Name: tools.RandomString("ims-test-", 3), 63 // OsVersion: "Debian GNU/Linux 10.0.0 64bit", 64 // ImageUrl: bucketName + ":" + image.ImageName, 65 // MinDisk: 100, 66 // }) 67 // th.AssertNoErr(t, err) 68 // jobEntities(t, client1, client2, quick) 69 }