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  }