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  }