blob: 83fbd318fa03ead4a2f00931051e5124568c0413 [file] [log] [blame]
// +build acceptance identity roles
package v2
import (
"testing"
"github.com/gophercloud/gophercloud/acceptance/clients"
"github.com/gophercloud/gophercloud/acceptance/tools"
"github.com/gophercloud/gophercloud/openstack/identity/v2/extensions/admin/roles"
"github.com/gophercloud/gophercloud/openstack/identity/v2/users"
)
func TestRolesAddToUser(t *testing.T) {
client, err := clients.NewIdentityV2AdminClient()
if err != nil {
t.Fatalf("Unable to obtain an identity client: %v", err)
}
tenant, err := FindTenant(t, client)
if err != nil {
t.Fatalf("Unable to get a tenant: %v", err)
}
role, err := FindRole(t, client)
if err != nil {
t.Fatalf("Unable to get a role: %v", err)
}
user, err := CreateUser(t, client, tenant)
if err != nil {
t.Fatalf("Unable to create a user: %v", err)
}
defer DeleteUser(t, client, user)
err = AddUserRole(t, client, tenant, user, role)
if err != nil {
t.Fatalf("Unable to add role to user: %v", err)
}
defer DeleteUserRole(t, client, tenant, user, role)
allPages, err := users.ListRoles(client, tenant.ID, user.ID).AllPages()
if err != nil {
t.Fatalf("Unable to obtain roles for user: %v", err)
}
allRoles, err := users.ExtractRoles(allPages)
if err != nil {
t.Fatalf("Unable to extract roles: %v", err)
}
t.Logf("Roles of user %s:", user.Name)
for _, role := range allRoles {
tools.PrintResource(t, role)
}
}
func TestRolesList(t *testing.T) {
client, err := clients.NewIdentityV2AdminClient()
if err != nil {
t.Fatalf("Unable to create an identity client: %v", err)
}
allPages, err := roles.List(client).AllPages()
if err != nil {
t.Fatalf("Unable to list all roles: %v", err)
}
allRoles, err := roles.ExtractRoles(allPages)
if err != nil {
t.Fatalf("Unable to extract roles: %v", err)
}
for _, r := range allRoles {
tools.PrintResource(t, r)
}
}