blob: 85ac931b9ca6fce4a404a914656b1a449f915105 [file] [log] [blame]
// +build acceptance
package v3
import (
"fmt"
"testing"
"github.com/rackspace/gophercloud"
"github.com/rackspace/gophercloud/rackspace/rackconnect/v3/lbpools"
th "github.com/rackspace/gophercloud/testhelper"
)
func TestLBPools(t *testing.T) {
c := newClient(t)
pID := testListPools(t, c)
testGetPools(t, c, pID)
nID := testListNodes(t, c, pID)
testListNodeDetails(t, c, pID)
testGetNode(t, c, pID, nID)
testGetNodeDetails(t, c, pID, nID)
}
func testListPools(t *testing.T, c *gophercloud.ServiceClient) string {
allPages, err := lbpools.List(c).AllPages()
th.AssertNoErr(t, err)
allp, err := lbpools.ExtractPools(allPages)
fmt.Printf("Listing all LB pools: %+v\n\n", allp)
var pID string
if len(allp) > 0 {
pID = allp[0].ID
}
return pID
}
func testGetPools(t *testing.T, c *gophercloud.ServiceClient, pID string) {
p, err := lbpools.Get(c, pID).Extract()
th.AssertNoErr(t, err)
fmt.Printf("Retrieved LB pool: %+v\n\n", p)
}
func testListNodes(t *testing.T, c *gophercloud.ServiceClient, pID string) string {
allPages, err := lbpools.ListNodes(c, pID).AllPages()
th.AssertNoErr(t, err)
alln, err := lbpools.ExtractNodes(allPages)
fmt.Printf("Listing all LB pool nodes for pool (%s): %+v\n\n", pID, alln)
var nID string
if len(alln) > 0 {
nID = alln[0].ID
}
return nID
}
func testListNodeDetails(t *testing.T, c *gophercloud.ServiceClient, pID string) {
allPages, err := lbpools.ListNodesDetails(c, pID).AllPages()
th.AssertNoErr(t, err)
alln, err := lbpools.ExtractNodesDetails(allPages)
fmt.Printf("Listing all LB pool nodes details for pool (%s): %+v\n\n", pID, alln)
}
func testGetNode(t *testing.T, c *gophercloud.ServiceClient, pID, nID string) {
n, err := lbpools.GetNode(c, pID, nID).Extract()
th.AssertNoErr(t, err)
fmt.Printf("Retrieved LB node: %+v\n\n", n)
}
func testGetNodeDetails(t *testing.T, c *gophercloud.ServiceClient, pID, nID string) {
n, err := lbpools.GetNodeDetails(c, pID, nID).Extract()
th.AssertNoErr(t, err)
fmt.Printf("Retrieved LB node details: %+v\n\n", n)
}