1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 """Identity API v2 Test (Roles/Projects/Users)"""
18
19
20 import hashlib
21 import os
22 import sys
23 import tempfile
24 from yakumo.smoketest import *
25 from yakumo import utils
26
27
29
30
31 if c._session.config[u'identity_api_version'] != '2.0':
32 return
33
34 LOG.info("Create Role #1")
35 name = get_random_str('role')
36 with c.role.create(name=name, description='role 1') as r:
37
38 test("Role #1: name is %s" % name, r.name == name)
39 test("Role #1: description is 'role 1'", r.description == 'role 1')
40
41 LOG.info("Create a project")
42 name = get_random_str('project')
43 with c.project.create(name=name,
44 description='project 1',
45 is_enabled=False) as p:
46
47 test("Project #1: name is %s" % name, p.name == name)
48 test("Project #1: description is 'project 1'",
49 p.description == 'project 1')
50 test("Project #1: is disabled", not p.is_enabled)
51
52 LOG.info("Update project properties")
53
54 name = get_random_str('project')
55 p.update(name=name, description='project 1-1', is_enabled=True)
56
57 test("Project #1: name is %s" % name, p.name == name)
58 test("Project #1: description is 'project 1-1'",
59 p.description == 'project 1-1')
60 test("Project #1: is enabled", p.is_enabled)
61
62 LOG.info("Create a user")
63 name = get_random_str('user')
64 password = get_random_str('pass')
65 with c.user.create(name=name,
66 username='user 1',
67 password=password,
68 project=p,
69 is_enabled=False) as u:
70
71 test("User #1: name is %s" % name, u.name == name)
72 test("User #1: username is 'user 1'", u.username == 'user 1')
73 test("User #1: is disabled", not u.is_enabled)
74 test("User #1: is in project", not u.is_enabled)
75
76 LOG.info("Update user properties")
77
78 name = get_random_str('user')
79 password = get_random_str('pass')
80 u.update(name=name,
81 username='user 1-1',
82 password=password,
83 is_enabled=True)
84
85 test("User #1: name is %s" % name, u.name == name)
86 test("User #1: username is 'user 1-1'",
87 u.username == 'user 1-1')
88 test("User #1: is enabled", u.is_enabled)
89
90 LOG.info("Grant Role #1 to User #1 for Project #1")
91 p.grant_roles(users=u, roles=r)
92
93 LOG.info("Revoke Role #1 from User #1 for Project #1")
94 p.revoke_roles(users=u, roles=r)
95
96
97 if __name__ == '__main__':
98 c = utils.get_client()
99 if c._session.config[u'identity_api_version'] != '2.0':
100 sys.exit(0)
101
102 LOG.debug("list roles: %s", [_.name for _ in c.role.list()])
103 LOG.debug("list projects: %s", [_.name for _ in c.project.list()])
104 LOG.debug("list users: %s", [_.name for _ in c.user.list()])
105 main(c)
106 LOG.debug("list roles: %s", [_.name for _ in c.role.list()])
107 LOG.debug("list projects: %s", [_.name for _ in c.project.list()])
108 LOG.debug("list users: %s", [_.name for _ in c.user.list()])
109
110 show_test_summary()
111