blob: 1cc12356cafed410139af40b5814aad886bccb5c [file] [log] [blame]
// +build acceptance lbs
package v1
import (
"testing"
"github.com/rackspace/gophercloud"
"github.com/rackspace/gophercloud/rackspace/lb/v1/throttle"
th "github.com/rackspace/gophercloud/testhelper"
)
func TestThrottle(t *testing.T) {
client := setup(t)
ids := createLB(t, client, 1)
lbID := ids[0]
getThrottleConfig(t, client, lbID)
createThrottleConfig(t, client, lbID)
waitForLB(client, lbID, "ACTIVE")
deleteThrottleConfig(t, client, lbID)
waitForLB(client, lbID, "ACTIVE")
deleteLB(t, client, lbID)
}
func getThrottleConfig(t *testing.T, client *gophercloud.ServiceClient, lbID int) {
sp, err := throttle.Get(client, lbID).Extract()
th.AssertNoErr(t, err)
t.Logf("Throttle config: MaxConns [%s]", sp.MaxConnections)
}
func createThrottleConfig(t *testing.T, client *gophercloud.ServiceClient, lbID int) {
opts := throttle.CreateOpts{
MaxConnections: 200,
MaxConnectionRate: 100,
MinConnections: 0,
RateInterval: 10,
}
err := throttle.Create(client, lbID, opts).ExtractErr()
th.AssertNoErr(t, err)
t.Logf("Enable throttling for %d", lbID)
}
func deleteThrottleConfig(t *testing.T, client *gophercloud.ServiceClient, lbID int) {
err := throttle.Delete(client, lbID).ExtractErr()
th.AssertNoErr(t, err)
t.Logf("Disable throttling for %d", lbID)
}