blob: 31129a33b29af883da87e3e7c71f0afb7dc1e608 [file] [log] [blame]
Jamie Hannafordcebff1b2014-10-30 14:31:44 +01001// +build acceptance identity roles
2
3package v2
4
5import (
6 "testing"
7
Krzysztof Szukiełojć24a29ce2017-05-07 14:24:02 +02008 "gerrit.mcp.mirantis.net/debian/gophercloud.git/acceptance/clients"
9 "gerrit.mcp.mirantis.net/debian/gophercloud.git/acceptance/tools"
10 "gerrit.mcp.mirantis.net/debian/gophercloud.git/openstack/identity/v2/extensions/admin/roles"
11 "gerrit.mcp.mirantis.net/debian/gophercloud.git/openstack/identity/v2/users"
Jamie Hannafordcebff1b2014-10-30 14:31:44 +010012)
13
Joe Topjian918f5732016-08-15 08:47:08 -060014func TestRolesAddToUser(t *testing.T) {
15 client, err := clients.NewIdentityV2AdminClient()
16 if err != nil {
17 t.Fatalf("Unable to obtain an identity client: %v", err)
18 }
Jamie Hannafordcebff1b2014-10-30 14:31:44 +010019
Joe Topjian918f5732016-08-15 08:47:08 -060020 tenant, err := FindTenant(t, client)
21 if err != nil {
22 t.Fatalf("Unable to get a tenant: %v", err)
23 }
Jamie Hannafordcebff1b2014-10-30 14:31:44 +010024
Joe Topjian918f5732016-08-15 08:47:08 -060025 role, err := FindRole(t, client)
26 if err != nil {
27 t.Fatalf("Unable to get a role: %v", err)
28 }
Jamie Hannafordcebff1b2014-10-30 14:31:44 +010029
Joe Topjian918f5732016-08-15 08:47:08 -060030 user, err := CreateUser(t, client, tenant)
31 if err != nil {
32 t.Fatalf("Unable to create a user: %v", err)
33 }
34 defer DeleteUser(t, client, user)
Jamie Hannafordcebff1b2014-10-30 14:31:44 +010035
Joe Topjian918f5732016-08-15 08:47:08 -060036 err = AddUserRole(t, client, tenant, user, role)
37 if err != nil {
38 t.Fatalf("Unable to add role to user: %v", err)
39 }
40 defer DeleteUserRole(t, client, tenant, user, role)
41
42 allPages, err := users.ListRoles(client, tenant.ID, user.ID).AllPages()
43 if err != nil {
44 t.Fatalf("Unable to obtain roles for user: %v", err)
45 }
46
47 allRoles, err := users.ExtractRoles(allPages)
48 if err != nil {
49 t.Fatalf("Unable to extract roles: %v", err)
50 }
51
52 t.Logf("Roles of user %s:", user.Name)
53 for _, role := range allRoles {
Joe Topjian66a046c2017-01-19 22:07:26 -070054 tools.PrintResource(t, role)
Joe Topjian918f5732016-08-15 08:47:08 -060055 }
Jamie Hannafordcebff1b2014-10-30 14:31:44 +010056}
57
Joe Topjian918f5732016-08-15 08:47:08 -060058func TestRolesList(t *testing.T) {
59 client, err := clients.NewIdentityV2AdminClient()
60 if err != nil {
61 t.Fatalf("Unable to create an identity client: %v", err)
62 }
Jamie Hannafordcebff1b2014-10-30 14:31:44 +010063
Joe Topjian918f5732016-08-15 08:47:08 -060064 allPages, err := roles.List(client).AllPages()
65 if err != nil {
66 t.Fatalf("Unable to list all roles: %v", err)
67 }
Jamie Hannafordcebff1b2014-10-30 14:31:44 +010068
Joe Topjian918f5732016-08-15 08:47:08 -060069 allRoles, err := roles.ExtractRoles(allPages)
70 if err != nil {
71 t.Fatalf("Unable to extract roles: %v", err)
72 }
Jamie Hannafordcebff1b2014-10-30 14:31:44 +010073
Joe Topjian918f5732016-08-15 08:47:08 -060074 for _, r := range allRoles {
Joe Topjian66a046c2017-01-19 22:07:26 -070075 tools.PrintResource(t, r)
Joe Topjian918f5732016-08-15 08:47:08 -060076 }
Jamie Hannafordcebff1b2014-10-30 14:31:44 +010077}