github.com/opentelekomcloud/gophertelekomcloud@v0.9.3/acceptance/openstack/elb/v3/members_test.go (about) 1 package v3 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/common/pointerto" 10 "github.com/opentelekomcloud/gophertelekomcloud/openstack/elb/v3/members" 11 "github.com/opentelekomcloud/gophertelekomcloud/openstack/elb/v3/pools" 12 th "github.com/opentelekomcloud/gophertelekomcloud/testhelper" 13 ) 14 15 func iInt(v int) *int { 16 return &v 17 } 18 19 func TestMemberLifecycle(t *testing.T) { 20 client, err := clients.NewElbV3Client() 21 th.AssertNoErr(t, err) 22 23 loadbalancerID := createLoadBalancer(t, client) 24 defer deleteLoadbalancer(t, client, loadbalancerID) 25 26 poolID := createPool(t, client, loadbalancerID) 27 defer deletePool(t, client, poolID) 28 29 t.Logf("Attempting to create ELBv3 Member") 30 memberName := tools.RandomString("create-member-", 3) 31 32 createOpts := members.CreateOpts{ 33 Address: openstack.ValidIP(t, clients.EnvOS.GetEnv("NETWORK_ID")), 34 ProtocolPort: 89, 35 Name: memberName, 36 Weight: iInt(1), 37 } 38 39 member, err := members.Create(client, poolID, createOpts).Extract() 40 th.AssertNoErr(t, err) 41 defer func() { 42 t.Logf("Attempting to delete ELBv3 Member: %s", member.ID) 43 err := members.Delete(client, poolID, member.ID).ExtractErr() 44 th.AssertNoErr(t, err) 45 t.Logf("Deleted ELBv3 Member: %s", member.ID) 46 }() 47 th.AssertEquals(t, createOpts.Name, member.Name) 48 th.AssertEquals(t, createOpts.ProtocolPort, member.ProtocolPort) 49 th.AssertEquals(t, createOpts.Address, member.Address) 50 th.AssertEquals(t, *createOpts.Weight, member.Weight) 51 t.Logf("Created ELBv3 Member: %s", member.ID) 52 53 t.Logf("Attempting to update ELBv3 Member: %s", member.ID) 54 memberName = "" 55 updateOpts := members.UpdateOpts{ 56 Name: &memberName, 57 Weight: iInt(0), 58 } 59 _, err = members.Update(client, poolID, member.ID, updateOpts).Extract() 60 th.AssertNoErr(t, err) 61 t.Logf("Updated ELBv3 Member: %s", member.ID) 62 63 newMember, err := members.Get(client, poolID, member.ID).Extract() 64 th.AssertNoErr(t, err) 65 th.AssertEquals(t, *updateOpts.Name, newMember.Name) 66 th.AssertEquals(t, *updateOpts.Weight, newMember.Weight) 67 68 updateOptsPool := pools.UpdateOpts{ 69 DeletionProtectionEnable: pointerto.Bool(false), 70 } 71 _, err = pools.Update(client, poolID, updateOptsPool).Extract() 72 th.AssertNoErr(t, err) 73 t.Logf("Updated ELBv3 Pool: %s", poolID) 74 }