github.com/opentelekomcloud/gophertelekomcloud@v0.9.3/acceptance/openstack/elb/v3/monitors_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/tools" 8 "github.com/opentelekomcloud/gophertelekomcloud/openstack/elb/v3/monitors" 9 th "github.com/opentelekomcloud/gophertelekomcloud/testhelper" 10 ) 11 12 func TestMonitorList(t *testing.T) { 13 client, err := clients.NewElbV3Client() 14 th.AssertNoErr(t, err) 15 16 listOpts := monitors.ListOpts{} 17 monitorPages, err := monitors.List(client, listOpts).AllPages() 18 th.AssertNoErr(t, err) 19 20 monitorList, err := monitors.ExtractMonitors(monitorPages) 21 th.AssertNoErr(t, err) 22 23 for _, monitor := range monitorList { 24 tools.PrintResource(t, monitor) 25 } 26 } 27 28 func TestMonitorLifecycle(t *testing.T) { 29 client, err := clients.NewElbV3Client() 30 th.AssertNoErr(t, err) 31 32 loadbalancerID := createLoadBalancer(t, client) 33 defer deleteLoadbalancer(t, client, loadbalancerID) 34 35 poolID := createPool(t, client, loadbalancerID) 36 defer deletePool(t, client, poolID) 37 38 t.Logf("Attempting to Create ELBv3 Monitor") 39 monitorName := tools.RandomString("create-monitor-", 3) 40 createOpts := monitors.CreateOpts{ 41 PoolID: poolID, 42 Type: monitors.TypeHTTP, 43 Delay: 1, 44 Timeout: 30, 45 MaxRetries: 3, 46 HTTPMethod: "OPTIONS", 47 ExpectedCodes: "200-299", 48 Name: monitorName, 49 } 50 monitor, err := monitors.Create(client, createOpts).Extract() 51 th.AssertNoErr(t, err) 52 defer func() { 53 t.Logf("Attempting to Delete ELBv3 Monitor: %s", monitor.ID) 54 err := monitors.Delete(client, monitor.ID).ExtractErr() 55 th.AssertNoErr(t, err) 56 t.Logf("Deleted ELBv3 Monitor: %s", monitor.ID) 57 }() 58 59 th.AssertEquals(t, createOpts.Name, monitor.Name) 60 th.AssertEquals(t, createOpts.Type, monitor.Type) 61 th.AssertEquals(t, createOpts.MaxRetries, monitor.MaxRetries) 62 t.Logf("Created ELBv3 Monitor: %s", monitor.ID) 63 64 t.Logf("Attempting to Update ELBv3 Monitor") 65 monitorName = tools.RandomString("update-monitor-", 3) 66 updateOpts := monitors.UpdateOpts{ 67 Delay: 3, 68 Timeout: 35, 69 MaxRetries: 5, 70 MaxRetriesDown: 3, 71 Name: monitorName, 72 } 73 _, err = monitors.Update(client, monitor.ID, updateOpts).Extract() 74 th.AssertNoErr(t, err) 75 t.Logf("Updated ELBv3 Monitor: %s", monitor.ID) 76 77 newMonitor, err := monitors.Get(client, monitor.ID).Extract() 78 th.AssertNoErr(t, err) 79 th.AssertEquals(t, updateOpts.Name, newMonitor.Name) 80 th.AssertEquals(t, updateOpts.Timeout, newMonitor.Timeout) 81 th.AssertEquals(t, updateOpts.Delay, newMonitor.Delay) 82 th.AssertEquals(t, updateOpts.MaxRetries, newMonitor.MaxRetries) 83 th.AssertEquals(t, createOpts.HTTPMethod, newMonitor.HTTPMethod) 84 }