github.com/opentelekomcloud/gophertelekomcloud@v0.9.3/acceptance/openstack/sdrs/v1/protectedinstances_test.go (about) 1 package v1 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 "github.com/opentelekomcloud/gophertelekomcloud/openstack/sdrs/v1/domains" 10 "github.com/opentelekomcloud/gophertelekomcloud/openstack/sdrs/v1/protectedinstances" 11 th "github.com/opentelekomcloud/gophertelekomcloud/testhelper" 12 ) 13 14 func TestSDRSInstanceList(t *testing.T) { 15 client, err := clients.NewSDRSV1() 16 th.AssertNoErr(t, err) 17 18 listOpts := protectedinstances.ListOpts{} 19 allPages, err := protectedinstances.List(client, listOpts).AllPages() 20 th.AssertNoErr(t, err) 21 22 sdrsInstances, err := protectedinstances.ExtractInstances(allPages) 23 th.AssertNoErr(t, err) 24 25 for _, instance := range sdrsInstances { 26 tools.PrintResource(t, instance) 27 } 28 } 29 30 func TestSDRSInstanceLifecycle(t *testing.T) { 31 client, err := clients.NewSDRSV1() 32 th.AssertNoErr(t, err) 33 34 computeClient, err := clients.NewComputeV1Client() 35 th.AssertNoErr(t, err) 36 37 domainList, err := domains.Get(client).Extract() 38 th.AssertNoErr(t, err) 39 if len(domainList.Domains) == 0 { 40 t.Skipf("you don't have any active-active domain, but SDRS test requires") 41 } 42 43 group := createSDRSGroup(t, client, domainList.Domains[0].Id) 44 defer deleteSDRSGroup(t, client, group.Id) 45 46 ecs := openstack.CreateCloudServer(t, computeClient, openstack.GetCloudServerCreateOpts(t)) 47 defer func() { 48 openstack.DeleteCloudServer(t, computeClient, ecs.ID) 49 }() 50 51 t.Logf("Attempting to create SDRS protected instance") 52 createName := tools.RandomString("sdrs-instance-", 3) 53 createDescription := "some description" 54 createOpts := protectedinstances.CreateOpts{ 55 GroupID: group.Id, 56 ServerID: ecs.ID, 57 Name: createName, 58 Description: createDescription, 59 } 60 61 jobCreate, err := protectedinstances.Create(client, createOpts).ExtractJobResponse() 62 th.AssertNoErr(t, err) 63 err = protectedinstances.WaitForJobSuccess(client, 600, jobCreate.JobID) 64 th.AssertNoErr(t, err) 65 66 jobEntity, err := protectedinstances.GetJobEntity(client, jobCreate.JobID, "protected_instance_id") 67 th.AssertNoErr(t, err) 68 69 instance, err := protectedinstances.Get(client, jobEntity.(string)).Extract() 70 th.AssertNoErr(t, err) 71 defer func() { 72 t.Logf("Attempting to delete SDRS protected instance: %s", instance.ID) 73 deleteServer := false 74 deleteOpts := protectedinstances.DeleteOpts{ 75 DeleteTargetServer: &deleteServer, 76 } 77 78 jobDelete, err := protectedinstances.Delete(client, instance.ID, deleteOpts).ExtractJobResponse() 79 th.AssertNoErr(t, err) 80 81 err = protectedinstances.WaitForJobSuccess(client, 600, jobDelete.JobID) 82 th.AssertNoErr(t, err) 83 84 t.Logf("Deleted SDRS protected instance: %s", instance.ID) 85 }() 86 th.AssertEquals(t, createName, instance.Name) 87 th.AssertEquals(t, createDescription, instance.Description) 88 89 t.Logf("Created SDRS protected instance: %s", instance.ID) 90 }