func getLoadbalancerByName(client *gophercloud.ServiceClient, name string) (*loadbalancers.LoadBalancer, error) { opts := loadbalancers.ListOpts{ Name: name, } pager := loadbalancers.List(client, opts) loadbalancerList := make([]loadbalancers.LoadBalancer, 0, 1) err := pager.EachPage(func(page pagination.Page) (bool, error) { v, err := loadbalancers.ExtractLoadbalancers(page) if err != nil { return false, err } loadbalancerList = append(loadbalancerList, v...) if len(loadbalancerList) > 1 { return false, ErrMultipleResults } return true, nil }) if err != nil { if isNotFound(err) { return nil, ErrNotFound } return nil, err } if len(loadbalancerList) == 0 { return nil, ErrNotFound } else if len(loadbalancerList) > 1 { return nil, ErrMultipleResults } return &loadbalancerList[0], nil }
func listLoadbalancers(t *testing.T) { err := loadbalancers.List(base.Client, loadbalancers.ListOpts{}).EachPage(func(page pagination.Page) (bool, error) { loadbalancerList, err := loadbalancers.ExtractLoadbalancers(page) if err != nil { t.Errorf("Failed to extract Loadbalancers: %v", err) return false, err } for _, loadbalancer := range loadbalancerList { t.Logf("Listing Loadbalancer: ID [%s] Name [%s] Address [%s]", loadbalancer.ID, loadbalancer.Name, loadbalancer.VipAddress) } return true, nil }) th.AssertNoErr(t, err) }