github.com/opentelekomcloud/gophertelekomcloud@v0.9.3/acceptance/openstack/networking/v2/extensions/lbaas_v2/monitors_test.go (about) 1 package lbaas_v2 2 3 import ( 4 "testing" 5 6 golangsdk "github.com/opentelekomcloud/gophertelekomcloud" 7 "github.com/opentelekomcloud/gophertelekomcloud/acceptance/clients" 8 "github.com/opentelekomcloud/gophertelekomcloud/acceptance/tools" 9 "github.com/opentelekomcloud/gophertelekomcloud/openstack/networking/v2/extensions/lbaas_v2/monitors" 10 th "github.com/opentelekomcloud/gophertelekomcloud/testhelper" 11 ) 12 13 func TestLbaasV2MonitorsList(t *testing.T) { 14 client, err := clients.NewElbV2Client() 15 th.AssertNoErr(t, err) 16 17 listOpts := monitors.ListOpts{} 18 allPages, err := monitors.List(client, listOpts).AllPages() 19 th.AssertNoErr(t, err) 20 21 lbaasMonitors, err := monitors.ExtractMonitors(allPages) 22 th.AssertNoErr(t, err) 23 24 for _, monitor := range lbaasMonitors { 25 tools.PrintResource(t, monitor) 26 } 27 } 28 29 func TestLbaasV2MonitorLifeCycle(t *testing.T) { 30 client, err := clients.NewElbV2Client() 31 th.AssertNoErr(t, err) 32 33 // Create lbaasV2 Load Balancer 34 loadBalancer, err := createLbaasLoadBalancer(t, client) 35 th.AssertNoErr(t, err) 36 defer deleteLbaasLoadBalancer(t, client, loadBalancer.ID) 37 38 // Create lbaasV2 pool 39 loadBalancerPool, err := createLbaasPool(t, client, loadBalancer.ID) 40 th.AssertNoErr(t, err) 41 defer deleteLbaasPool(t, client, loadBalancerPool.ID) 42 43 // Create lbaasV2 monitor 44 monitorName := tools.RandomString("create-monitor-", 3) 45 t.Logf("Attempting to create LbaasV2 monitor") 46 47 adminStateUp := false 48 createOpts := monitors.CreateOpts{ 49 PoolID: loadBalancerPool.ID, 50 Type: "HTTP", 51 Delay: 15, 52 Timeout: 10, 53 MaxRetries: 10, 54 Name: monitorName, 55 URLPath: "/status.php", 56 ExpectedCodes: "200", 57 AdminStateUp: &adminStateUp, 58 } 59 lbaasMonitor, err := monitors.Create(client, createOpts).Extract() 60 th.AssertNoErr(t, err) 61 62 t.Logf("Created LbaasV2 monitor: %s", lbaasMonitor.ID) 63 64 defer deleteLbaasMonitor(t, client, lbaasMonitor.ID) 65 th.AssertEquals(t, false, lbaasMonitor.AdminStateUp) 66 th.AssertEquals(t, "", lbaasMonitor.DomainName) 67 68 tools.PrintResource(t, lbaasMonitor) 69 70 t.Logf("Attempting to update LbaasV2 monitor") 71 72 monitorNewName := tools.RandomString("update-monitor-", 3) 73 adminStateUp = true 74 75 updateOpts := monitors.UpdateOpts{ 76 Name: monitorNewName, 77 AdminStateUp: &adminStateUp, 78 DomainName: "www.test.com", 79 } 80 81 _, err = monitors.Update(client, lbaasMonitor.ID, updateOpts).Extract() 82 th.AssertNoErr(t, err) 83 84 t.Logf("LbaasV2 monitor successfully updated: %s", lbaasMonitor.ID) 85 86 newLbaasMonitor, err := monitors.Get(client, lbaasMonitor.ID).Extract() 87 th.AssertNoErr(t, err) 88 th.AssertEquals(t, true, newLbaasMonitor.AdminStateUp) 89 th.AssertEquals(t, "www.test.com", newLbaasMonitor.DomainName) 90 tools.PrintResource(t, newLbaasMonitor) 91 } 92 93 func deleteLbaasMonitor(t *testing.T, client *golangsdk.ServiceClient, lbaasMonitorID string) { 94 t.Logf("Attempting to delete LbaasV2 monitor: %s", lbaasMonitorID) 95 96 err := monitors.Delete(client, lbaasMonitorID).ExtractErr() 97 th.AssertNoErr(t, err) 98 99 t.Logf("LbaasV2 monitor is deleted: %s", lbaasMonitorID) 100 }