Identity.php
3.21 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
<?php
namespace OpenCloud\Smoke\Unit;
class Identity extends AbstractUnit implements UnitInterface
{
public function setupService()
{
return $this->getConnection()->identityService();
}
public function main()
{
//$this->executeUsers();
//$this->executeRoles();
$this->executeTokens();
$this->executeTenants();
}
public function executeUsers()
{
$step1 = $this->step('List users');
$users = $this->service->getUsers();
foreach ($users as $_user) {
$this->stepInfo('User: %s [%s]', $_user->getUsername(), $_user->getId());
}
// get user
$this->step('Get user');
$user = $this->service->getUser('jamiehannaford1', 'name');
$this->stepInfo('Username: %s', $user->getUsername());
$this->stepInfo('ID: %s', $user->getId());
$this->stepInfo('Email: %s', $user->getEmail());
$this->stepInfo('Default region: %s', $user->getDefaultRegion());
// create user
$this->step('Create user');
$user = $this->service->createUser(array(
'username' => 'SMOKETEST_user_' . time(),
'email' => sprintf('foo_%s@example.com', time()),
'enabled' => true
));
// update user
$this->step('Update user');
$user->update(array(
'enabled' => false
));
// list users
$step1 = $this->step('List users');
$users = $this->service->getUsers();
foreach ($users as $_user) {
$this->stepInfo(sprintf('User: %s [%s]', $_user->getUserName(), $_user->getId()));
}
// reset API key
$this->step('(Re)set API key');
$this->stepInfo($user->resetApiKey());
// get API key
$this->step('Get API key');
$this->stepInfo($user->getApiKey());
// list roles
$step = $this->step('List user roles');
$roles = $user->getRoles();
foreach ($roles as $role) {
$this->stepInfo($role->getName());
}
// delete user
$this->step('Delete user');
$user->delete();
}
public function executeRoles()
{
// list roles
$this->step('List roles');
$roles = $this->service->getRoles();
foreach ($roles as $role) {
$this->stepInfo('Role: %s [%s]', $role->getName(), $role->getId());
$roleId = $role->getId();
}
// DOES NOT WORK
// get role
$this->step('Get role');
//$role = $this->service->getRole($roleId);
//$this->stepInfo('Role: %s, %s, %s', $roleId, $role->getName(), $role->getDescription());
}
public function executeTokens()
{
// revoke
$this->step('Revoke token');
$this->service->revokeToken($this->getConnection()->getToken());
$this->getConnection()->authenticate();
}
public function executeTenants()
{
// list tenants
$this->step('List tenants');
$tenants = $this->service->getTenants();
foreach ($tenants as $tenant) {
$this->stepInfo('Tenant: %s [%s]', $tenant->getName(), $tenant->getId());
}
}
public function teardown()
{
}
}