func getPoolByName(client *gophercloud.ServiceClient, name string) (*pools.Pool, error) { opts := pools.ListOpts{ Name: name, } pager := pools.List(client, opts) poolList := make([]pools.Pool, 0, 1) err := pager.EachPage(func(page pagination.Page) (bool, error) { p, err := pools.ExtractPools(page) if err != nil { return false, err } poolList = append(poolList, p...) if len(poolList) > 1 { return false, ErrMultipleResults } return true, nil }) if err != nil { if isNotFound(err) { return nil, ErrNotFound } return nil, err } if len(poolList) == 0 { return nil, ErrNotFound } else if len(poolList) > 1 { return nil, ErrMultipleResults } return &poolList[0], nil }
func listPools(t *testing.T) { err := pools.List(base.Client, pools.ListOpts{}).EachPage(func(page pagination.Page) (bool, error) { poolList, err := pools.ExtractPools(page) if err != nil { t.Errorf("Failed to extract pools: %v", err) return false, err } for _, p := range poolList { t.Logf("Listing pool: ID [%s] Name [%s] Status [%s] LB algorithm [%s]", p.ID, p.Name, p.Status, p.LBMethod) } return true, nil }) th.AssertNoErr(t, err) }