github.com/opentelekomcloud/gophertelekomcloud@v0.9.3/acceptance/openstack/autoscaling/v1/groups_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/openstack/autoscaling"
     9  	"github.com/opentelekomcloud/gophertelekomcloud/acceptance/tools"
    10  	"github.com/opentelekomcloud/gophertelekomcloud/openstack/autoscaling/v1/groups"
    11  	"github.com/opentelekomcloud/gophertelekomcloud/openstack/common/pointerto"
    12  	th "github.com/opentelekomcloud/gophertelekomcloud/testhelper"
    13  )
    14  
    15  func TestGroupsList(t *testing.T) {
    16  	client, err := clients.NewAutoscalingV1Client()
    17  	th.AssertNoErr(t, err)
    18  
    19  	listOpts := groups.ListOpts{}
    20  
    21  	asGroups, err := groups.List(client, listOpts)
    22  	th.AssertNoErr(t, err)
    23  
    24  	for _, group := range asGroups.ScalingGroups {
    25  		tools.PrintResource(t, group)
    26  	}
    27  }
    28  
    29  func TestGroupLifecycle(t *testing.T) {
    30  	client, err := clients.NewAutoscalingV1Client()
    31  	th.AssertNoErr(t, err)
    32  
    33  	asGroupCreateName := tools.RandomString("as-group-create-", 3)
    34  	networkID := clients.EnvOS.GetEnv("NETWORK_ID")
    35  	vpcID := clients.EnvOS.GetEnv("VPC_ID")
    36  	if networkID == "" {
    37  		t.Skip("OS_NETWORK_ID or OS_VPC_ID env vars are missing but AS Group test requires")
    38  	}
    39  
    40  	secGroupID := openstack.CreateSecurityGroup(t)
    41  	t.Cleanup(func() {
    42  		openstack.DeleteSecurityGroup(t, secGroupID)
    43  	})
    44  
    45  	groupID := autoscaling.CreateAutoScalingGroup(t, client, networkID, vpcID, asGroupCreateName)
    46  	t.Cleanup(func() {
    47  		autoscaling.DeleteAutoScalingGroup(t, client, groupID)
    48  	})
    49  
    50  	group, err := groups.Get(client, groupID)
    51  	th.AssertNoErr(t, err)
    52  	tools.PrintResource(t, group)
    53  	th.AssertEquals(t, asGroupCreateName, group.Name)
    54  	th.AssertEquals(t, 1, len(group.SecurityGroups))
    55  	th.AssertEquals(t, true, group.DeletePublicIP)
    56  
    57  	t.Logf("Attempting to update AutoScaling Group")
    58  	asGroupUpdateName := tools.RandomString("as-group-update-", 3)
    59  
    60  	groupID, err = groups.Update(client, group.ID, groups.UpdateOpts{
    61  		Name: asGroupUpdateName,
    62  		SecurityGroup: []groups.ID{
    63  			{
    64  				ID: secGroupID,
    65  			},
    66  		},
    67  		IsDeletePublicip:     pointerto.Bool(false),
    68  		DesireInstanceNumber: 0,
    69  		MinInstanceNumber:    0,
    70  	})
    71  	th.AssertNoErr(t, err)
    72  	t.Logf("Updated AutoScaling Group")
    73  
    74  	group, err = groups.Get(client, groupID)
    75  	th.AssertNoErr(t, err)
    76  	tools.PrintResource(t, group)
    77  	th.AssertEquals(t, asGroupUpdateName, group.Name)
    78  	th.AssertEquals(t, secGroupID, group.SecurityGroups[0].ID)
    79  	th.AssertEquals(t, false, group.DeletePublicIP)
    80  }