Merge "Keystone: do not allow specifying service names"

This commit is contained in:
Jenkins
2015-07-15 07:31:38 +00:00
committed by Gerrit Code Review
9 changed files with 35 additions and 35 deletions

View File

@@ -77,6 +77,9 @@ class SeekAndDestroy(object):
"resource": resource._resource
}
LOG.debug("Deleting %(service)s %(resource)s object %(uuid)s" %
msg_kw)
try:
rutils.retry(resource._max_attempts, resource.delete)
except Exception as e:
@@ -272,4 +275,7 @@ def cleanup(names=None, admin_required=None, admin=None, users=None):
}
"""
for manager in find_resource_managers(names, admin_required):
LOG.debug("Cleaning up %(service)s %(resource)s objects" %
{"service": manager._service,
"resource": manager._resource})
SeekAndDestroy(manager, admin, users).exterminate()

View File

@@ -13,6 +13,7 @@
# License for the specific language governing permissions and limitations
# under the License.
from rally.common import utils
from rally.plugins.openstack.scenarios.keystone import utils as kutils
from rally.task.scenarios import base
from rally.task import validation
@@ -155,16 +156,18 @@ class KeystoneBasic(kutils.KeystoneScenario):
self._get_service(service.id)
@validation.required_openstack(admin=True)
@utils.log_deprecated_args(
"The 'name' argument to create_and_delete_service will be ignored",
"0.0.5", ["name"])
@base.scenario(context={"admin_cleanup": ["keystone"]})
def create_and_delete_service(self, name=None, service_type=None,
description=None):
"""Create and delete service.
:param name: name of the service
:param service_type: type of the service
:param description: description of the service
"""
service = self._service_create(name, service_type, description)
service = self._service_create(service_type, description)
self._delete_service(service.id)
@validation.number("name_length", minval=10)
@@ -195,16 +198,18 @@ class KeystoneBasic(kutils.KeystoneScenario):
self._update_user_password(user.id, password)
@validation.required_openstack(admin=True)
@utils.log_deprecated_args(
"The 'name' argument to create_and_list_services will be ignored",
"0.0.5", ["name"])
@base.scenario(context={"admin_cleanup": ["keystone"]})
def create_and_list_services(self, name=None, service_type=None,
description=None):
"""Create and list services.
:param name: name of the service
:param service_type: type of the service
:param description: description of the service
"""
self._service_create(name, service_type, description)
self._service_create(service_type, description)
self._list_services()
@validation.required_openstack(users=True)

View File

@@ -63,7 +63,7 @@ class KeystoneScenario(base.Scenario):
return self.admin_clients("keystone").tenants.create(name, **kwargs)
@base.atomic_action_timer("keystone.create_service")
def _service_create(self, name=None, service_type="rally_test_type",
def _service_create(self, service_type="rally_test_type",
description=None):
"""Creates keystone service with random name.
@@ -72,12 +72,11 @@ class KeystoneScenario(base.Scenario):
:param description: description of the service
:returns: keystone service instance
"""
name = name or self._generate_random_name(prefix="rally_test_service_")
description = description or self._generate_random_name(
prefix="rally_test_service_description_")
return self.admin_clients("keystone").services.create(name,
service_type,
description)
return self.admin_clients("keystone").services.create(
self._generate_random_name(),
service_type, description)
@base.atomic_action_timer("keystone.create_users")
def _users_create(self, tenant, users_per_tenant, name_length=10):

View File

@@ -2,8 +2,7 @@
"KeystoneBasic.create_and_delete_service": [
{
"args": {
"name": "Rally_test_service",
"service_type": "Really_test_type",
"service_type": "Rally_test_type",
"description": "test_description"
},
"runner": {

View File

@@ -2,8 +2,7 @@
KeystoneBasic.create_and_delete_service:
-
args:
name: "Rally_test_service"
service_type: "Really_test_type"
service_type: "Rally_test_type"
description: "test_description"
runner:
type: "constant"

View File

@@ -2,8 +2,7 @@
"KeystoneBasic.create_and_list_services": [
{
"args": {
"name": "Rally_test_service",
"service_type": "Really_test_type",
"service_type": "Rally_test_type",
"description": "test_description"
},
"runner": {

View File

@@ -2,8 +2,7 @@
KeystoneBasic.create_and_list_services:
-
args:
name: "Rally_test_service"
service_type: "Really_test_type"
service_type: "Rally_test_type"
description: "test_description"
runner:
type: "constant"

View File

@@ -197,17 +197,14 @@ class KeystoneBasicTestCase(test.TestCase):
def test_create_and_delete_service(self):
scenario = basic.KeystoneBasic()
name = "Rally_test_service"
service_type = "rally_test_type"
service_type = "test_service_type"
description = "test_description"
fake_service = mock.MagicMock()
scenario._service_create = mock.MagicMock(return_value=fake_service)
scenario._delete_service = mock.MagicMock()
scenario.create_and_delete_service(name=name,
service_type=service_type,
scenario.create_and_delete_service(service_type=service_type,
description=description)
scenario._service_create.assert_called_once_with(name,
service_type,
scenario._service_create.assert_called_once_with(service_type,
description)
scenario._delete_service.assert_called_once_with(fake_service.id)
@@ -238,17 +235,14 @@ class KeystoneBasicTestCase(test.TestCase):
def test_create_and_list_services(self):
scenario = basic.KeystoneBasic()
name = "Rally_test_service"
service_type = "rally_test_type"
service_type = "test_service_type"
description = "test_description"
fake_service = mock.MagicMock()
scenario._service_create = mock.MagicMock(return_value=fake_service)
scenario._list_services = mock.MagicMock()
scenario.create_and_list_services(name=name,
service_type=service_type,
scenario.create_and_list_services(service_type=service_type,
description=description)
scenario._service_create.assert_called_once_with(name,
service_type,
scenario._service_create.assert_called_once_with(service_type,
description)
scenario._list_services.assert_called_once_with()

View File

@@ -142,21 +142,21 @@ class KeystoneScenarioTestCase(test.ScenarioTestCase):
"keystone.create_tenant")
def test_service_create(self):
name = "abc"
service_type = name + "_service_type"
description = name + "_description"
service_type = "service_type"
description = "_description"
scenario = utils.KeystoneScenario()
scenario._generate_random_name = mock.Mock()
result = scenario._service_create(name=name,
service_type=service_type,
result = scenario._service_create(service_type=service_type,
description=description)
self.assertEqual(
self.admin_clients("keystone").services.create.return_value,
result)
self.admin_clients("keystone").services.create.assert_called_once_with(
name, service_type, description)
scenario._generate_random_name.return_value,
service_type, description)
self._test_atomic_action_timer(scenario.atomic_actions(),
"keystone.create_service")