github.com/gophercloud/gophercloud@v1.11.0/internal/acceptance/openstack/networking/v2/extensions/lbaas/pools_test.go (about) 1 //go:build acceptance || networking || lbaas || pool 2 // +build acceptance networking lbaas pool 3 4 package lbaas 5 6 import ( 7 "testing" 8 9 "github.com/gophercloud/gophercloud/internal/acceptance/clients" 10 networking "github.com/gophercloud/gophercloud/internal/acceptance/openstack/networking/v2" 11 "github.com/gophercloud/gophercloud/internal/acceptance/tools" 12 "github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas/pools" 13 ) 14 15 func TestPoolsList(t *testing.T) { 16 t.Skip("Neutron LBaaS was replaced by Octavia and the API will be removed in a future release") 17 client, err := clients.NewNetworkV2Client() 18 if err != nil { 19 t.Fatalf("Unable to create a network client: %v", err) 20 } 21 22 allPages, err := pools.List(client, pools.ListOpts{}).AllPages() 23 if err != nil { 24 t.Fatalf("Unable to list pools: %v", err) 25 } 26 27 allPools, err := pools.ExtractPools(allPages) 28 if err != nil { 29 t.Fatalf("Unable to extract pools: %v", err) 30 } 31 32 for _, pool := range allPools { 33 tools.PrintResource(t, pool) 34 } 35 } 36 37 func TestPoolsCRUD(t *testing.T) { 38 t.Skip("Neutron LBaaS was replaced by Octavia and the API will be removed in a future release") 39 client, err := clients.NewNetworkV2Client() 40 if err != nil { 41 t.Fatalf("Unable to create a network client: %v", err) 42 } 43 44 network, err := networking.CreateNetwork(t, client) 45 if err != nil { 46 t.Fatalf("Unable to create network: %v", err) 47 } 48 defer networking.DeleteNetwork(t, client, network.ID) 49 50 subnet, err := networking.CreateSubnet(t, client, network.ID) 51 if err != nil { 52 t.Fatalf("Unable to create subnet: %v", err) 53 } 54 defer networking.DeleteSubnet(t, client, subnet.ID) 55 56 pool, err := CreatePool(t, client, subnet.ID) 57 if err != nil { 58 t.Fatalf("Unable to create pool: %v", err) 59 } 60 defer DeletePool(t, client, pool.ID) 61 62 tools.PrintResource(t, pool) 63 64 updateOpts := pools.UpdateOpts{ 65 LBMethod: pools.LBMethodLeastConnections, 66 } 67 68 _, err = pools.Update(client, pool.ID, updateOpts).Extract() 69 if err != nil { 70 t.Fatalf("Unable to update pool: %v", err) 71 } 72 73 newPool, err := pools.Get(client, pool.ID).Extract() 74 if err != nil { 75 t.Fatalf("Unable to get pool: %v", err) 76 } 77 78 tools.PrintResource(t, newPool) 79 } 80 81 func TestPoolsMonitors(t *testing.T) { 82 t.Skip("Neutron LBaaS was replaced by Octavia and the API will be removed in a future release") 83 client, err := clients.NewNetworkV2Client() 84 if err != nil { 85 t.Fatalf("Unable to create a network client: %v", err) 86 } 87 88 network, err := networking.CreateNetwork(t, client) 89 if err != nil { 90 t.Fatalf("Unable to create network: %v", err) 91 } 92 defer networking.DeleteNetwork(t, client, network.ID) 93 94 subnet, err := networking.CreateSubnet(t, client, network.ID) 95 if err != nil { 96 t.Fatalf("Unable to create subnet: %v", err) 97 } 98 defer networking.DeleteSubnet(t, client, subnet.ID) 99 100 pool, err := CreatePool(t, client, subnet.ID) 101 if err != nil { 102 t.Fatalf("Unable to create pool: %v", err) 103 } 104 defer DeletePool(t, client, pool.ID) 105 106 monitor, err := CreateMonitor(t, client) 107 if err != nil { 108 t.Fatalf("Unable to create monitor: %v", err) 109 } 110 defer DeleteMonitor(t, client, monitor.ID) 111 112 t.Logf("Associating monitor %s with pool %s", monitor.ID, pool.ID) 113 if res := pools.AssociateMonitor(client, pool.ID, monitor.ID); res.Err != nil { 114 t.Fatalf("Unable to associate monitor to pool") 115 } 116 117 t.Logf("Disassociating monitor %s with pool %s", monitor.ID, pool.ID) 118 if res := pools.DisassociateMonitor(client, pool.ID, monitor.ID); res.Err != nil { 119 t.Fatalf("Unable to disassociate monitor from pool") 120 } 121 122 }