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 }