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  }