Merge "[Manila] Add scenario for creation and listing of Manila share networks"
This commit is contained in:
commit
2db3ac3b3e
@ -51,3 +51,25 @@
|
|||||||
sla:
|
sla:
|
||||||
failure_rate:
|
failure_rate:
|
||||||
max: 0
|
max: 0
|
||||||
|
|
||||||
|
ManilaShares.create_share_network_and_list:
|
||||||
|
-
|
||||||
|
args:
|
||||||
|
name: "rally"
|
||||||
|
detailed: True
|
||||||
|
search_opts:
|
||||||
|
name: "rally"
|
||||||
|
runner:
|
||||||
|
type: "constant"
|
||||||
|
times: 10
|
||||||
|
concurrency: 10
|
||||||
|
context:
|
||||||
|
quotas:
|
||||||
|
manila:
|
||||||
|
share_networks: -1
|
||||||
|
users:
|
||||||
|
tenants: 2
|
||||||
|
users_per_tenant: 1
|
||||||
|
sla:
|
||||||
|
failure_rate:
|
||||||
|
max: 0
|
||||||
|
@ -86,3 +86,38 @@ class ManilaShares(utils.ManilaScenario):
|
|||||||
description=description,
|
description=description,
|
||||||
)
|
)
|
||||||
self._delete_share_network(share_network)
|
self._delete_share_network(share_network)
|
||||||
|
|
||||||
|
@validation.required_services(consts.Service.MANILA)
|
||||||
|
@validation.required_openstack(users=True)
|
||||||
|
@base.scenario(context={"cleanup": ["manila"]})
|
||||||
|
def create_share_network_and_list(self,
|
||||||
|
neutron_net_id=None,
|
||||||
|
neutron_subnet_id=None,
|
||||||
|
nova_net_id=None,
|
||||||
|
name=None,
|
||||||
|
description=None,
|
||||||
|
detailed=True,
|
||||||
|
search_opts=None):
|
||||||
|
"""Creates share network and then lists it.
|
||||||
|
|
||||||
|
:param neutron_net_id: ID of Neutron network
|
||||||
|
:param neutron_subnet_id: ID of Neutron subnet
|
||||||
|
:param nova_net_id: ID of Nova network
|
||||||
|
:param name: share network name
|
||||||
|
:param description: share network description
|
||||||
|
:param detailed: defines either to return detailed list of
|
||||||
|
objects or not.
|
||||||
|
:param search_opts: container of search opts such as
|
||||||
|
"name", "nova_net_id", "neutron_net_id", etc.
|
||||||
|
"""
|
||||||
|
self._create_share_network(
|
||||||
|
neutron_net_id=neutron_net_id,
|
||||||
|
neutron_subnet_id=neutron_subnet_id,
|
||||||
|
nova_net_id=nova_net_id,
|
||||||
|
name=name,
|
||||||
|
description=description,
|
||||||
|
)
|
||||||
|
self._list_share_networks(
|
||||||
|
detailed=detailed,
|
||||||
|
search_opts=search_opts,
|
||||||
|
)
|
||||||
|
@ -146,3 +146,17 @@ class ManilaScenario(base.Scenario):
|
|||||||
update_resource=bench_utils.get_from_manager(),
|
update_resource=bench_utils.get_from_manager(),
|
||||||
timeout=CONF.benchmark.manila_share_delete_timeout,
|
timeout=CONF.benchmark.manila_share_delete_timeout,
|
||||||
check_interval=CONF.benchmark.manila_share_delete_poll_interval)
|
check_interval=CONF.benchmark.manila_share_delete_poll_interval)
|
||||||
|
|
||||||
|
@base.atomic_action_timer("manila.list_share_networks")
|
||||||
|
def _list_share_networks(self, detailed=True, search_opts=None):
|
||||||
|
"""List share networks.
|
||||||
|
|
||||||
|
:param detailed: defines either to return detailed list of
|
||||||
|
objects or not.
|
||||||
|
:param search_opts: container of search opts such as
|
||||||
|
"project_id" and "name".
|
||||||
|
:returns: list of instances of :class:`ShareNetwork`
|
||||||
|
"""
|
||||||
|
share_networks = self.clients("manila").share_networks.list(
|
||||||
|
detailed=detailed, search_opts=search_opts)
|
||||||
|
return share_networks
|
||||||
|
@ -0,0 +1,29 @@
|
|||||||
|
{
|
||||||
|
"ManilaShares.create_share_network_and_list": [
|
||||||
|
{
|
||||||
|
"args": {
|
||||||
|
"name": "rally",
|
||||||
|
"detailed": true,
|
||||||
|
"search_opts": {
|
||||||
|
"name": "rally"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"runner": {
|
||||||
|
"type": "constant",
|
||||||
|
"times": 10,
|
||||||
|
"concurrency": 10
|
||||||
|
},
|
||||||
|
"context": {
|
||||||
|
"quotas": {
|
||||||
|
"manila": {
|
||||||
|
"share_networks": -1
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"users": {
|
||||||
|
"tenants": 2,
|
||||||
|
"users_per_tenant": 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
@ -0,0 +1,19 @@
|
|||||||
|
---
|
||||||
|
ManilaShares.create_share_network_and_list:
|
||||||
|
-
|
||||||
|
args:
|
||||||
|
name: "rally"
|
||||||
|
detailed: True
|
||||||
|
search_opts:
|
||||||
|
name: "rally"
|
||||||
|
runner:
|
||||||
|
type: "constant"
|
||||||
|
times: 10
|
||||||
|
concurrency: 10
|
||||||
|
context:
|
||||||
|
quotas:
|
||||||
|
manila:
|
||||||
|
share_networks: -1
|
||||||
|
users:
|
||||||
|
tenants: 2
|
||||||
|
users_per_tenant: 1
|
@ -95,3 +95,40 @@ class ManilaSharesTestCase(test.TestCase):
|
|||||||
scenario._create_share_network.assert_called_once_with(
|
scenario._create_share_network.assert_called_once_with(
|
||||||
**expected_params)
|
**expected_params)
|
||||||
scenario._delete_share_network.assert_called_once_with(fake_sn)
|
scenario._delete_share_network.assert_called_once_with(fake_sn)
|
||||||
|
|
||||||
|
@ddt.data(
|
||||||
|
{},
|
||||||
|
{"name": "foo_name"},
|
||||||
|
{"description": "foo_description"},
|
||||||
|
{"neutron_net_id": "foo_neutron_net_id"},
|
||||||
|
{"neutron_subnet_id": "foo_neutron_subnet_id"},
|
||||||
|
{"nova_net_id": "foo_nova_net_id"},
|
||||||
|
{"name": "foo_name",
|
||||||
|
"description": "foo_description",
|
||||||
|
"neutron_net_id": "foo_neutron_net_id",
|
||||||
|
"neutron_subnet_id": "foo_neutron_subnet_id",
|
||||||
|
"nova_net_id": "foo_nova_net_id"},
|
||||||
|
)
|
||||||
|
def test_create_share_network_and_list(self, params):
|
||||||
|
scenario = shares.ManilaShares()
|
||||||
|
scenario._create_share_network = mock.MagicMock()
|
||||||
|
scenario._list_share_networks = mock.MagicMock()
|
||||||
|
expected_create_params = {
|
||||||
|
"name": params.get("name"),
|
||||||
|
"description": params.get("description"),
|
||||||
|
"neutron_net_id": params.get("neutron_net_id"),
|
||||||
|
"neutron_subnet_id": params.get("neutron_subnet_id"),
|
||||||
|
"nova_net_id": params.get("nova_net_id"),
|
||||||
|
}
|
||||||
|
expected_list_params = {
|
||||||
|
"detailed": params.get("detailed", True),
|
||||||
|
"search_opts": params.get("search_opts"),
|
||||||
|
}
|
||||||
|
expected_create_params.update(params)
|
||||||
|
|
||||||
|
scenario.create_share_network_and_list(**params)
|
||||||
|
|
||||||
|
scenario._create_share_network.assert_called_once_with(
|
||||||
|
**expected_create_params)
|
||||||
|
scenario._list_share_networks.assert_called_once_with(
|
||||||
|
**expected_list_params)
|
||||||
|
@ -113,3 +113,21 @@ class ManilaScenarioTestCase(test.ClientsTestCase):
|
|||||||
mock_get_from_manager.assert_called_once_with()
|
mock_get_from_manager.assert_called_once_with()
|
||||||
mock_wait_for_delete.assert_called_once_with(
|
mock_wait_for_delete.assert_called_once_with(
|
||||||
fake_sn, update_resource=mock.ANY, timeout=180, check_interval=2)
|
fake_sn, update_resource=mock.ANY, timeout=180, check_interval=2)
|
||||||
|
|
||||||
|
@ddt.data(
|
||||||
|
{"detailed": True, "search_opts": {"name": "foo_sn"}},
|
||||||
|
{"detailed": False, "search_opts": None},
|
||||||
|
{},
|
||||||
|
{"search_opts": {"project_id": "fake_project"}},
|
||||||
|
)
|
||||||
|
def test__list_share_networks(self, params):
|
||||||
|
fake_share_networks = ["foo", "bar"]
|
||||||
|
self.clients("manila").share_networks.list.return_value = (
|
||||||
|
fake_share_networks)
|
||||||
|
|
||||||
|
result = self.scenario._list_share_networks(**params)
|
||||||
|
|
||||||
|
self.assertEqual(fake_share_networks, result)
|
||||||
|
self.clients("manila").share_networks.list.assert_called_once_with(
|
||||||
|
detailed=params.get("detailed", True),
|
||||||
|
search_opts=params.get("search_opts", None))
|
||||||
|
Loading…
Reference in New Issue
Block a user