Add NovaServerGroups.create_and_delete_server_group
Create a server group, then delete it. Measure the "nova server-group-create" and "nova server-group-delete" command performance. Change-Id: I47cea5651f68dfb3d0b3e8bcb7889700d5087657
This commit is contained in:
@@ -185,8 +185,7 @@
|
|||||||
{% for s in (["affinity"], ["anti-affinity"]) %}
|
{% for s in (["affinity"], ["anti-affinity"]) %}
|
||||||
-
|
-
|
||||||
args:
|
args:
|
||||||
kwargs:
|
policies: {{s}}
|
||||||
policies: {{s}}
|
|
||||||
runner:
|
runner:
|
||||||
type: "constant"
|
type: "constant"
|
||||||
times: 4
|
times: 4
|
||||||
@@ -204,8 +203,7 @@
|
|||||||
{% for s in (["affinity"], ["anti-affinity"]) %}
|
{% for s in (["affinity"], ["anti-affinity"]) %}
|
||||||
-
|
-
|
||||||
args:
|
args:
|
||||||
kwargs:
|
policies: {{s}}
|
||||||
policies: {{s}}
|
|
||||||
all_projects: false
|
all_projects: false
|
||||||
runner:
|
runner:
|
||||||
type: "constant"
|
type: "constant"
|
||||||
@@ -220,6 +218,24 @@
|
|||||||
max: 0
|
max: 0
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
|
||||||
|
NovaServerGroups.create_and_delete_server_group:
|
||||||
|
{% for s in (["affinity"], ["anti-affinity"]) %}
|
||||||
|
-
|
||||||
|
args:
|
||||||
|
policies: {{s}}
|
||||||
|
runner:
|
||||||
|
type: "constant"
|
||||||
|
times: 4
|
||||||
|
concurrency: 2
|
||||||
|
context:
|
||||||
|
users:
|
||||||
|
tenants: 2
|
||||||
|
users_per_tenant: 2
|
||||||
|
sla:
|
||||||
|
failure_rate:
|
||||||
|
max: 0
|
||||||
|
{% endfor %}
|
||||||
|
|
||||||
NovaServers.suspend_and_resume_server:
|
NovaServers.suspend_and_resume_server:
|
||||||
-
|
-
|
||||||
args:
|
args:
|
||||||
|
|||||||
@@ -13,12 +13,16 @@
|
|||||||
# License for the specific language governing permissions and limitations
|
# License for the specific language governing permissions and limitations
|
||||||
# under the License.
|
# under the License.
|
||||||
|
|
||||||
|
from rally.common import logging
|
||||||
from rally import consts
|
from rally import consts
|
||||||
from rally.plugins.openstack import scenario
|
from rally.plugins.openstack import scenario
|
||||||
from rally.plugins.openstack.scenarios.nova import utils
|
from rally.plugins.openstack.scenarios.nova import utils
|
||||||
from rally.task import validation
|
from rally.task import validation
|
||||||
|
|
||||||
|
|
||||||
|
LOG = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|
||||||
"""Scenarios for Nova Group servers."""
|
"""Scenarios for Nova Group servers."""
|
||||||
|
|
||||||
|
|
||||||
@@ -29,17 +33,26 @@ from rally.task import validation
|
|||||||
platform="openstack")
|
platform="openstack")
|
||||||
class CreateAndListServerGroups(utils.NovaScenario):
|
class CreateAndListServerGroups(utils.NovaScenario):
|
||||||
|
|
||||||
def run(self, all_projects=False, kwargs=None):
|
def run(self, policies=None, all_projects=False, kwargs=None):
|
||||||
"""Create a server group, then list all server groups.
|
"""Create a server group, then list all server groups.
|
||||||
|
|
||||||
Measure the "nova server-group-create" and "nova server-group-list"
|
Measure the "nova server-group-create" and "nova server-group-list"
|
||||||
command performance.
|
command performance.
|
||||||
|
|
||||||
|
:param policies: Server group policy
|
||||||
:param all_projects: If True, display server groups from all
|
:param all_projects: If True, display server groups from all
|
||||||
projects(Admin only)
|
projects(Admin only)
|
||||||
:param kwargs: Server group name and policy
|
:param kwargs: The server group specifications to add.
|
||||||
|
DEPRECATED, specify arguments explicitly.
|
||||||
"""
|
"""
|
||||||
kwargs["name"] = self.generate_random_name()
|
if kwargs is None:
|
||||||
|
kwargs = {
|
||||||
|
"policies": policies
|
||||||
|
}
|
||||||
|
else:
|
||||||
|
LOG.warning("The argument `kwargs` is deprecated since"
|
||||||
|
" Rally 0.10.0. Specify all arguments from it"
|
||||||
|
" explicitly.")
|
||||||
server_group = self._create_server_group(**kwargs)
|
server_group = self._create_server_group(**kwargs)
|
||||||
msg = ("Server Groups isn't created")
|
msg = ("Server Groups isn't created")
|
||||||
self.assertTrue(server_group, err_msg=msg)
|
self.assertTrue(server_group, err_msg=msg)
|
||||||
@@ -59,18 +72,59 @@ class CreateAndListServerGroups(utils.NovaScenario):
|
|||||||
platform="openstack")
|
platform="openstack")
|
||||||
class CreateAndGetServerGroup(utils.NovaScenario):
|
class CreateAndGetServerGroup(utils.NovaScenario):
|
||||||
|
|
||||||
def run(self, kwargs=None):
|
def run(self, policies=None, kwargs=None):
|
||||||
"""Create a server group, then get its detailed information.
|
"""Create a server group, then get its detailed information.
|
||||||
|
|
||||||
Measure the "nova server-group-create" and "nova server-group-get"
|
Measure the "nova server-group-create" and "nova server-group-get"
|
||||||
command performance.
|
command performance.
|
||||||
|
|
||||||
:param kwargs: Server group name and policy
|
:param policies: Server group policy
|
||||||
|
:param kwargs: The server group specifications to add.
|
||||||
|
DEPRECATED, specify arguments explicitly.
|
||||||
"""
|
"""
|
||||||
kwargs["name"] = self.generate_random_name()
|
if kwargs is None:
|
||||||
|
kwargs = {
|
||||||
|
"policies": policies
|
||||||
|
}
|
||||||
|
else:
|
||||||
|
LOG.warning("The argument `kwargs` is deprecated since"
|
||||||
|
" Rally 0.10.0. Specify all arguments from it"
|
||||||
|
" explicitly.")
|
||||||
server_group = self._create_server_group(**kwargs)
|
server_group = self._create_server_group(**kwargs)
|
||||||
msg = ("Server Groups isn't created")
|
msg = ("Server Groups isn't created")
|
||||||
self.assertTrue(server_group, err_msg=msg)
|
self.assertTrue(server_group, err_msg=msg)
|
||||||
|
|
||||||
server_group_info = self._get_server_group(server_group.id)
|
server_group_info = self._get_server_group(server_group.id)
|
||||||
self.assertEqual(server_group.id, server_group_info.id)
|
self.assertEqual(server_group.id, server_group_info.id)
|
||||||
|
|
||||||
|
|
||||||
|
@validation.add("required_services", services=[consts.Service.NOVA])
|
||||||
|
@validation.add("required_platform", platform="openstack", users=True)
|
||||||
|
@scenario.configure(context={"cleanup": ["nova"]},
|
||||||
|
name="NovaServerGroups.create_and_delete_server_group",
|
||||||
|
platform="openstack")
|
||||||
|
class CreateAndDeleteServerGroup(utils.NovaScenario):
|
||||||
|
|
||||||
|
def run(self, policies=None, kwargs=None):
|
||||||
|
"""Create a server group, then delete it.
|
||||||
|
|
||||||
|
Measure the "nova server-group-create" and "nova server-group-delete"
|
||||||
|
command performance.
|
||||||
|
|
||||||
|
:param policies: Server group policy
|
||||||
|
:param kwargs: The server group specifications to add.
|
||||||
|
DEPRECATED, specify arguments explicitly.
|
||||||
|
"""
|
||||||
|
if kwargs is None:
|
||||||
|
kwargs = {
|
||||||
|
"policies": policies
|
||||||
|
}
|
||||||
|
else:
|
||||||
|
LOG.warning("The argument `kwargs` is deprecated since"
|
||||||
|
" Rally 0.10.0. Specify all arguments from it"
|
||||||
|
" explicitly.")
|
||||||
|
server_group = self._create_server_group(**kwargs)
|
||||||
|
msg = ("Server Group isn't created")
|
||||||
|
self.assertTrue(server_group, err_msg=msg)
|
||||||
|
|
||||||
|
self._delete_server_group(server_group.id)
|
||||||
|
|||||||
@@ -418,11 +418,13 @@ class NovaScenario(scenario.OpenStackScenario):
|
|||||||
def _create_server_group(self, **kwargs):
|
def _create_server_group(self, **kwargs):
|
||||||
"""Create (allocate) a server group.
|
"""Create (allocate) a server group.
|
||||||
|
|
||||||
:param kwargs: Server group name and policy
|
:param kwargs: Optional additional arguments for Server group creating
|
||||||
|
|
||||||
:returns: Nova server group
|
:returns: Nova server group
|
||||||
"""
|
"""
|
||||||
return self.clients("nova").server_groups.create(**kwargs)
|
group_name = self.generate_random_name()
|
||||||
|
return self.clients("nova").server_groups.create(name=group_name,
|
||||||
|
**kwargs)
|
||||||
|
|
||||||
@atomic.action_timer("nova.get_server_group")
|
@atomic.action_timer("nova.get_server_group")
|
||||||
def _get_server_group(self, id):
|
def _get_server_group(self, id):
|
||||||
@@ -448,6 +450,16 @@ class NovaScenario(scenario.OpenStackScenario):
|
|||||||
else:
|
else:
|
||||||
return self.clients("nova").server_groups.list(all_projects)
|
return self.clients("nova").server_groups.list(all_projects)
|
||||||
|
|
||||||
|
@atomic.action_timer("nova.delete_server_group")
|
||||||
|
def _delete_server_group(self, group_id):
|
||||||
|
"""Delete a specific server group.
|
||||||
|
|
||||||
|
:param id: The ID of the :class:`ServerGroup` to delete
|
||||||
|
|
||||||
|
:returns: An instance of novaclient.base.TupleWithMeta
|
||||||
|
"""
|
||||||
|
return self.clients("nova").server_groups.delete(group_id)
|
||||||
|
|
||||||
@atomic.action_timer("nova.delete_image")
|
@atomic.action_timer("nova.delete_image")
|
||||||
def _delete_image(self, image):
|
def _delete_image(self, image):
|
||||||
"""Delete the given image.
|
"""Delete the given image.
|
||||||
|
|||||||
@@ -0,0 +1,27 @@
|
|||||||
|
{
|
||||||
|
"NovaServerGroups.create_and_delete_server_group": [
|
||||||
|
{
|
||||||
|
"args": {
|
||||||
|
"policies": [
|
||||||
|
"affinity"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"context": {
|
||||||
|
"users": {
|
||||||
|
"tenants": 2,
|
||||||
|
"users_per_tenant": 2
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"runner": {
|
||||||
|
"concurrency": 2,
|
||||||
|
"times": 4,
|
||||||
|
"type": "constant"
|
||||||
|
},
|
||||||
|
"sla": {
|
||||||
|
"failure_rate": {
|
||||||
|
"max": 0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
NovaServerGroups.create_and_delete_server_group:
|
||||||
|
-
|
||||||
|
args:
|
||||||
|
policies: ["affinity"]
|
||||||
|
runner:
|
||||||
|
type: "constant"
|
||||||
|
times: 4
|
||||||
|
concurrency: 2
|
||||||
|
context:
|
||||||
|
users:
|
||||||
|
tenants: 2
|
||||||
|
users_per_tenant: 2
|
||||||
|
sla:
|
||||||
|
failure_rate:
|
||||||
|
max: 0
|
||||||
@@ -2,11 +2,9 @@
|
|||||||
"NovaServerGroups.create_and_get_server_group": [
|
"NovaServerGroups.create_and_get_server_group": [
|
||||||
{
|
{
|
||||||
"args": {
|
"args": {
|
||||||
"kwargs": {
|
"policies": [
|
||||||
"policies": [
|
"affinity"
|
||||||
"affinity"
|
]
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
"runner": {
|
"runner": {
|
||||||
"type": "constant",
|
"type": "constant",
|
||||||
|
|||||||
@@ -1,8 +1,7 @@
|
|||||||
NovaServerGroups.create_and_get_server_group:
|
NovaServerGroups.create_and_get_server_group:
|
||||||
-
|
-
|
||||||
args:
|
args:
|
||||||
kwargs:
|
policies: ["affinity"]
|
||||||
policies: ["affinity"]
|
|
||||||
runner:
|
runner:
|
||||||
type: "constant"
|
type: "constant"
|
||||||
times: 4
|
times: 4
|
||||||
|
|||||||
@@ -2,11 +2,9 @@
|
|||||||
"NovaServerGroups.create_and_list_server_groups": [
|
"NovaServerGroups.create_and_list_server_groups": [
|
||||||
{
|
{
|
||||||
"args": {
|
"args": {
|
||||||
"kwargs": {
|
"policies": [
|
||||||
"policies": [
|
"affinity"
|
||||||
"affinity"
|
],
|
||||||
]
|
|
||||||
},
|
|
||||||
"all_projects": false
|
"all_projects": false
|
||||||
},
|
},
|
||||||
"runner": {
|
"runner": {
|
||||||
|
|||||||
@@ -1,8 +1,7 @@
|
|||||||
NovaServerGroups.create_and_list_server_groups:
|
NovaServerGroups.create_and_list_server_groups:
|
||||||
-
|
-
|
||||||
args:
|
args:
|
||||||
kwargs:
|
policies: ["affinity"]
|
||||||
policies: ["affinity"]
|
|
||||||
all_projects: false
|
all_projects: false
|
||||||
runner:
|
runner:
|
||||||
type: "constant"
|
type: "constant"
|
||||||
|
|||||||
@@ -29,92 +29,136 @@ class NovaServerGroupsTestCase(test.ScenarioTestCase):
|
|||||||
|
|
||||||
def test_create_and_list_server_groups(self):
|
def test_create_and_list_server_groups(self):
|
||||||
scenario = server_groups.CreateAndListServerGroups(self.context)
|
scenario = server_groups.CreateAndListServerGroups(self.context)
|
||||||
gen_name = mock.MagicMock()
|
|
||||||
scenario.generate_random_name = gen_name
|
|
||||||
all_projects = False
|
|
||||||
create_args = {"policies": ["fake_policy"]}
|
|
||||||
fake_server_group = mock.MagicMock()
|
fake_server_group = mock.MagicMock()
|
||||||
|
all_projects = False
|
||||||
scenario._create_server_group = mock.MagicMock()
|
scenario._create_server_group = mock.MagicMock()
|
||||||
scenario._list_server_groups = mock.MagicMock()
|
scenario._list_server_groups = mock.MagicMock()
|
||||||
scenario._list_server_groups.return_value = [mock.MagicMock(),
|
scenario._list_server_groups.return_value = [mock.MagicMock(),
|
||||||
fake_server_group,
|
fake_server_group,
|
||||||
mock.MagicMock()]
|
mock.MagicMock()]
|
||||||
# Positive case
|
# Positive case and kwargs is None
|
||||||
scenario._create_server_group.return_value = fake_server_group
|
scenario._create_server_group.return_value = fake_server_group
|
||||||
scenario.run(kwargs=create_args)
|
scenario.run(policies="fake_policy", all_projects=False, kwargs=None)
|
||||||
scenario._create_server_group.assert_called_once_with(**create_args)
|
kwargs = {
|
||||||
|
"policies": "fake_policy"
|
||||||
|
}
|
||||||
|
scenario._create_server_group.assert_called_once_with(**kwargs)
|
||||||
scenario._list_server_groups.assert_called_once_with(all_projects)
|
scenario._list_server_groups.assert_called_once_with(all_projects)
|
||||||
|
|
||||||
|
# Positive case and kwargs is not None
|
||||||
|
foo_kwargs = {
|
||||||
|
"policies": "fake_policy"
|
||||||
|
}
|
||||||
|
scenario._create_server_group.return_value = fake_server_group
|
||||||
|
scenario.run(policies=None, all_projects=False,
|
||||||
|
kwargs=foo_kwargs)
|
||||||
|
scenario._create_server_group.assert_called_with(**foo_kwargs)
|
||||||
|
scenario._list_server_groups.assert_called_with(all_projects)
|
||||||
|
|
||||||
# Negative case1: server group isn't created
|
# Negative case1: server group isn't created
|
||||||
scenario._create_server_group.return_value = None
|
scenario._create_server_group.return_value = None
|
||||||
self.assertRaises(rally_exceptions.RallyAssertionError,
|
self.assertRaises(rally_exceptions.RallyAssertionError,
|
||||||
scenario.run,
|
scenario.run,
|
||||||
kwargs=create_args)
|
**kwargs)
|
||||||
scenario._create_server_group.assert_called_with(**create_args)
|
scenario._create_server_group.assert_called_with(**kwargs)
|
||||||
|
|
||||||
# Negative case2: server group not in the list of available server
|
# Negative case2: server group not in the list of available server
|
||||||
# groups
|
# groups
|
||||||
scenario._create_server_group.return_value = mock.MagicMock()
|
scenario._create_server_group.return_value = mock.MagicMock()
|
||||||
self.assertRaises(rally_exceptions.RallyAssertionError,
|
self.assertRaises(rally_exceptions.RallyAssertionError,
|
||||||
scenario.run,
|
scenario.run,
|
||||||
kwargs=create_args)
|
**kwargs)
|
||||||
scenario._create_server_group.assert_called_with(**create_args)
|
scenario._create_server_group.assert_called_with(**kwargs)
|
||||||
scenario._list_server_groups.assert_called_with(all_projects)
|
scenario._list_server_groups.assert_called_with(all_projects)
|
||||||
|
|
||||||
@ddt.data(
|
def test_create_and_get_server_group_positive(self):
|
||||||
{},
|
|
||||||
{"create_args": {"policies": ["fake_policy"]}}
|
|
||||||
)
|
|
||||||
@ddt.unpack
|
|
||||||
def test_create_and_get_server_group_positive(self, create_args=None):
|
|
||||||
scenario = server_groups.CreateAndGetServerGroup(self.context)
|
scenario = server_groups.CreateAndGetServerGroup(self.context)
|
||||||
gen_name = mock.MagicMock()
|
|
||||||
scenario.generate_random_name = gen_name
|
|
||||||
fake_server_group = mock.MagicMock()
|
fake_server_group = mock.MagicMock()
|
||||||
fake_server_group_info = mock.MagicMock()
|
fake_server_group_info = mock.MagicMock()
|
||||||
fake_server_group.id = 123
|
fake_server_group.id = 123
|
||||||
fake_server_group_info.id = 123
|
fake_server_group_info.id = 123
|
||||||
scenario._create_server_group = mock.MagicMock()
|
scenario._create_server_group = mock.MagicMock()
|
||||||
scenario._get_server_group = mock.MagicMock()
|
scenario._get_server_group = mock.MagicMock()
|
||||||
create_args = create_args or {}
|
# Positive case and kwargs is None
|
||||||
# Positive case
|
kwargs = {
|
||||||
|
"policies": "fake_policy"
|
||||||
|
}
|
||||||
scenario._create_server_group.return_value = fake_server_group
|
scenario._create_server_group.return_value = fake_server_group
|
||||||
scenario._get_server_group.return_value = fake_server_group_info
|
scenario._get_server_group.return_value = fake_server_group_info
|
||||||
scenario.run(create_args)
|
scenario.run(policies="fake_policy", kwargs=None)
|
||||||
scenario._create_server_group.assert_called_once_with(**create_args)
|
scenario._create_server_group.assert_called_once_with(**kwargs)
|
||||||
scenario._get_server_group.assert_called_once_with(
|
scenario._get_server_group.assert_called_once_with(
|
||||||
fake_server_group.id)
|
fake_server_group.id)
|
||||||
|
|
||||||
@ddt.data(
|
# Positive case and kwargs is not None
|
||||||
{},
|
scenario._create_server_group.return_value = fake_server_group
|
||||||
{"create_args": {"policies": ["fake_policy"]}}
|
scenario._get_server_group.return_value = fake_server_group_info
|
||||||
)
|
foo_kwargs = {
|
||||||
@ddt.unpack
|
"policies": "fake_policy"
|
||||||
def test_create_and_get_server_group_negative(self, create_args=None):
|
}
|
||||||
|
scenario.run(policies=None, kwargs=foo_kwargs)
|
||||||
|
scenario._create_server_group.assert_called_with(**foo_kwargs)
|
||||||
|
scenario._get_server_group.assert_called_with(
|
||||||
|
fake_server_group.id)
|
||||||
|
|
||||||
|
def test_create_and_get_server_group_negative(self):
|
||||||
scenario = server_groups.CreateAndGetServerGroup(self.context)
|
scenario = server_groups.CreateAndGetServerGroup(self.context)
|
||||||
gen_name = mock.MagicMock()
|
|
||||||
scenario.generate_random_name = gen_name
|
|
||||||
fake_server_group = mock.MagicMock()
|
fake_server_group = mock.MagicMock()
|
||||||
fake_server_group_info = mock.MagicMock()
|
fake_server_group_info = mock.MagicMock()
|
||||||
fake_server_group.id = 123
|
fake_server_group.id = 123
|
||||||
fake_server_group_info.id = 123
|
fake_server_group_info.id = 123
|
||||||
|
kwargs = {
|
||||||
|
"policies": "fake_policy"
|
||||||
|
}
|
||||||
scenario._create_server_group = mock.MagicMock()
|
scenario._create_server_group = mock.MagicMock()
|
||||||
scenario._get_server_group = mock.MagicMock()
|
scenario._get_server_group = mock.MagicMock()
|
||||||
create_args = create_args or {}
|
|
||||||
|
|
||||||
# Negative case1: server group isn't created
|
# Negative case1: server group isn't created
|
||||||
scenario._create_server_group.return_value = None
|
scenario._create_server_group.return_value = None
|
||||||
self.assertRaises(rally_exceptions.RallyAssertionError,
|
self.assertRaises(rally_exceptions.RallyAssertionError,
|
||||||
scenario.run,
|
scenario.run,
|
||||||
create_args)
|
**kwargs)
|
||||||
scenario._create_server_group.assert_called_with(**create_args)
|
scenario._create_server_group.assert_called_with(**kwargs)
|
||||||
|
|
||||||
# Negative case2: server group to get information not the created one
|
# Negative case2: server group to get information not the created one
|
||||||
fake_server_group_info.id = 456
|
fake_server_group_info.id = 456
|
||||||
scenario._create_server_group.return_value = fake_server_group
|
scenario._create_server_group.return_value = fake_server_group
|
||||||
self.assertRaises(rally_exceptions.RallyAssertionError,
|
self.assertRaises(rally_exceptions.RallyAssertionError,
|
||||||
scenario.run,
|
scenario.run,
|
||||||
create_args)
|
**kwargs)
|
||||||
scenario._create_server_group.assert_called_with(**create_args)
|
scenario._create_server_group.assert_called_with(**kwargs)
|
||||||
scenario._get_server_group.assert_called_with(
|
scenario._get_server_group.assert_called_with(
|
||||||
fake_server_group.id)
|
fake_server_group.id)
|
||||||
|
|
||||||
|
def test_create_and_delete_server_group(self):
|
||||||
|
scenario = server_groups.CreateAndDeleteServerGroup(self.context)
|
||||||
|
fake_server_group = mock.MagicMock()
|
||||||
|
scenario._create_server_group = mock.MagicMock()
|
||||||
|
scenario._delete_server_group = mock.MagicMock()
|
||||||
|
|
||||||
|
# Positive case and kwargs is None
|
||||||
|
kwargs = {
|
||||||
|
"policies": "fake_policy"
|
||||||
|
}
|
||||||
|
scenario._create_server_group.return_value = fake_server_group
|
||||||
|
scenario.run(policies="fake_policy", kwargs=None)
|
||||||
|
scenario._create_server_group.assert_called_once_with(**kwargs)
|
||||||
|
scenario._delete_server_group.assert_called_once_with(
|
||||||
|
fake_server_group.id)
|
||||||
|
|
||||||
|
# Positive case and kwargs is not None
|
||||||
|
scenario._create_server_group.return_value = fake_server_group
|
||||||
|
foo_kwargs = {
|
||||||
|
"policies": "fake_policy"
|
||||||
|
}
|
||||||
|
scenario.run(policies=None, kwargs=foo_kwargs)
|
||||||
|
scenario._create_server_group.assert_called_with(**foo_kwargs)
|
||||||
|
scenario._delete_server_group.assert_called_with(
|
||||||
|
fake_server_group.id)
|
||||||
|
|
||||||
|
# Negative case: server group isn't created
|
||||||
|
scenario._create_server_group.return_value = None
|
||||||
|
self.assertRaises(rally_exceptions.RallyAssertionError,
|
||||||
|
scenario.run,
|
||||||
|
**kwargs)
|
||||||
|
scenario._create_server_group.assert_called_with(**kwargs)
|
||||||
|
|||||||
@@ -767,15 +767,29 @@ class NovaScenarioTestCase(test.ScenarioTestCase):
|
|||||||
|
|
||||||
def test__create_server_group(self):
|
def test__create_server_group(self):
|
||||||
nova_scenario = utils.NovaScenario()
|
nova_scenario = utils.NovaScenario()
|
||||||
|
nova_scenario.generate_random_name = mock.Mock(
|
||||||
|
return_value="random_name")
|
||||||
result = nova_scenario._create_server_group(fakeargs="fakeargs")
|
result = nova_scenario._create_server_group(fakeargs="fakeargs")
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
self.clients("nova").server_groups.create.return_value,
|
self.clients("nova").server_groups.create.return_value,
|
||||||
result)
|
result)
|
||||||
self.clients("nova").server_groups.create.assert_called_once_with(
|
self.clients("nova").server_groups.create.assert_called_once_with(
|
||||||
fakeargs="fakeargs")
|
name="random_name", fakeargs="fakeargs")
|
||||||
self._test_atomic_action_timer(nova_scenario.atomic_actions(),
|
self._test_atomic_action_timer(nova_scenario.atomic_actions(),
|
||||||
"nova.create_server_group")
|
"nova.create_server_group")
|
||||||
|
|
||||||
|
def test__delete_server_group(self):
|
||||||
|
nova_scenario = utils.NovaScenario()
|
||||||
|
fakeid = 12345
|
||||||
|
result = nova_scenario._delete_server_group(fakeid)
|
||||||
|
self.assertEqual(
|
||||||
|
self.clients("nova").server_groups.delete.return_value,
|
||||||
|
result)
|
||||||
|
self.clients("nova").server_groups.delete.assert_called_once_with(
|
||||||
|
fakeid)
|
||||||
|
self._test_atomic_action_timer(nova_scenario.atomic_actions(),
|
||||||
|
"nova.delete_server_group")
|
||||||
|
|
||||||
def test__list_server_groups(self):
|
def test__list_server_groups(self):
|
||||||
nova_scenario = utils.NovaScenario()
|
nova_scenario = utils.NovaScenario()
|
||||||
result1 = nova_scenario._list_server_groups(all_projects=False)
|
result1 = nova_scenario._list_server_groups(all_projects=False)
|
||||||
|
|||||||
Reference in New Issue
Block a user