blob: 2bf5ce6b85420114f7c0dd8a11d24f3028457fea [file] [log] [blame]
// +build acceptance compute limits
package v2
import (
"strings"
"testing"
"github.com/gophercloud/gophercloud/acceptance/clients"
"github.com/gophercloud/gophercloud/openstack/compute/v2/extensions/limits"
)
func TestLimits(t *testing.T) {
client, err := clients.NewComputeV2Client()
if err != nil {
t.Fatalf("Unable to create a compute client: %v", err)
}
limits, err := limits.Get(client, nil).Extract()
if err != nil {
t.Fatalf("Unable to get limits: %v", err)
}
t.Logf("Limits for scoped user:")
t.Logf("%#v", limits)
}
func TestLimitsForTenant(t *testing.T) {
client, err := clients.NewComputeV2Client()
if err != nil {
t.Fatalf("Unable to create a compute client: %v", err)
}
// I think this is the easiest way to get the tenant ID while being
// agnostic to Identity v2 and v3.
// Technically we're just returning the limits for ourselves, but it's
// the fact that we're specifying a tenant ID that is important here.
endpointParts := strings.Split(client.Endpoint, "/")
tenantID := endpointParts[4]
getOpts := limits.GetOpts{
TenantID: tenantID,
}
limits, err := limits.Get(client, getOpts).Extract()
if err != nil {
t.Fatalf("Unable to get absolute limits: %v", err)
}
t.Logf("Limits for tenant %s:", tenantID)
t.Logf("%#v", limits)
}