Merge "Add tenants create, with users per tenant benchmark for keystone"
This commit is contained in:
commit
0800a91553
15
doc/samples/tasks/keystone/create-tenant-with-users.json
Normal file
15
doc/samples/tasks/keystone/create-tenant-with-users.json
Normal file
@ -0,0 +1,15 @@
|
||||
{
|
||||
"KeystoneBasic.create_tenant_with_users": [
|
||||
{
|
||||
"args": {
|
||||
"name_length": 10,
|
||||
"users_per_tenant": 10
|
||||
},
|
||||
"runner":{
|
||||
"type": "continuous",
|
||||
"times": 10,
|
||||
"active_users": 10
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
10
doc/samples/tasks/keystone/create-tenant-with-users.yaml
Normal file
10
doc/samples/tasks/keystone/create-tenant-with-users.yaml
Normal file
@ -0,0 +1,10 @@
|
||||
---
|
||||
KeystoneBasic.create_tenant_with_users:
|
||||
-
|
||||
args:
|
||||
name_length: 10
|
||||
users_per_tenant: 10
|
||||
runner:
|
||||
type: "continuous"
|
||||
times: 10
|
||||
active_users: 10
|
@ -34,3 +34,11 @@ class KeystoneBasic(kutils.KeystoneScenario):
|
||||
@context_cleaner.cleanup([])
|
||||
def create_tenant(self, name_length=10, **kwargs):
|
||||
self._tenant_create(name_length=name_length, **kwargs)
|
||||
|
||||
@base.scenario
|
||||
@context_cleaner.cleanup([])
|
||||
def create_tenant_with_users(self, name_length=10,
|
||||
users_per_tenant=10, **kwargs):
|
||||
tenant = self._tenant_create(name_length=name_length, **kwargs)
|
||||
self._users_create(tenant, name_length=name_length,
|
||||
users_per_tenant=users_per_tenant, **kwargs)
|
||||
|
@ -72,3 +72,17 @@ class KeystoneScenario(base.Scenario):
|
||||
"""
|
||||
name = generate_keystone_name(length=name_length)
|
||||
return self.admin_clients("keystone").tenants.create(name, **kwargs)
|
||||
|
||||
@scenario_utils.atomic_action_timer('keystone.create_users')
|
||||
def _users_create(self, tenant, name_length=10, users_per_tenant=10):
|
||||
"""Adds users to a tenant.
|
||||
|
||||
:param name_length: length of generated (random) part of name for user
|
||||
:param users_per_tenant: number of users in per tenant
|
||||
"""
|
||||
for i in range(users_per_tenant):
|
||||
name = generate_keystone_name(length=name_length)
|
||||
password = name
|
||||
email = (name + "@rally.me")
|
||||
self.admin_clients("keystone").users.create(name, password, email,
|
||||
tenant_id=tenant.id)
|
||||
|
@ -18,7 +18,6 @@ import mock
|
||||
from rally.benchmark.scenarios.keystone import basic
|
||||
from tests import test
|
||||
|
||||
|
||||
KEYSTONE_BASE = "rally.benchmark.scenarios.keystone."
|
||||
KEYSTONE_BASIC = KEYSTONE_BASE + "basic.KeystoneBasic."
|
||||
KEYSTONE_UTILS = KEYSTONE_BASE + "utils."
|
||||
@ -60,3 +59,18 @@ class KeystoneBasicTestCase(test.TestCase):
|
||||
scenario.create_tenant(name_length=20, enabled=True)
|
||||
scenario._tenant_create.assert_called_once_with(name_length=20,
|
||||
enabled=True)
|
||||
|
||||
@mock.patch(KEYSTONE_UTILS + "generate_keystone_name")
|
||||
def test_create_tenant_with_users(self, mock_gen_name):
|
||||
scenario = basic.KeystoneBasic()
|
||||
mock_gen_name.return_value = "teeeest"
|
||||
scenario._tenant_create = mock.MagicMock()
|
||||
tenant = scenario.create_tenant(name_length=20, enabled=True)
|
||||
scenario._tenant_create.assert_called_once_with(name_length=20,
|
||||
enabled=True)
|
||||
scenario._users_create = mock.MagicMock()
|
||||
scenario._users_create(tenant, name_length=20, users_per_tenant=1,
|
||||
enabled=True)
|
||||
scenario._users_create.assert_called_once_with(tenant, name_length=20,
|
||||
users_per_tenant=1,
|
||||
enabled=True)
|
||||
|
@ -102,3 +102,23 @@ class KeystoneScenarioTestCase(test.TestCase):
|
||||
fake_keystone.tenants.create.assert_called_once_with(name)
|
||||
self._test_atomic_action_timer(scenario.atomic_actions_time(),
|
||||
'keystone.create_tenant')
|
||||
|
||||
@mock.patch(UTILS + "generate_keystone_name")
|
||||
def test_tenant_create_with_users(self, mock_gen_name):
|
||||
name = "abc"
|
||||
mock_gen_name.return_value = name
|
||||
|
||||
tenant = mock.MagicMock()
|
||||
fake_keystone = fakes.FakeKeystoneClient()
|
||||
fake_keystone.users.create = mock.MagicMock()
|
||||
fake_clients = fakes.FakeClients()
|
||||
fake_clients._keystone = fake_keystone
|
||||
scenario = utils.KeystoneScenario(admin_clients=fake_clients)
|
||||
|
||||
scenario._users_create(tenant, 10, 1)
|
||||
|
||||
fake_keystone.users.create.assert_called_once_with(name, name,
|
||||
name + "@rally.me",
|
||||
tenant_id=tenant.id)
|
||||
self._test_atomic_action_timer(scenario.atomic_actions_time(),
|
||||
'keystone.create_users')
|
||||
|
Loading…
x
Reference in New Issue
Block a user