Add Nova network scenarios

Added base methods (create/delete) for nova network
and added scenario to rally jobs for functional test.

Change-Id: I8c1f11e0f84345e10423b2117fc88513ca206fe0
Co-Authored-By: Andrey Kurilin <akurilin@mirantis.com>
This commit is contained in:
Alexander Gubanov 2015-04-28 11:39:05 +03:00
parent f667f3b04b
commit 703f2edbee
4 changed files with 82 additions and 0 deletions

View File

@ -1041,3 +1041,35 @@
sla:
failure_rate:
max: 0
NovaNetworks.create_and_list_networks:
-
args:
start_cidr: "10.10.0.0/24"
runner:
type: "constant"
times: 5
concurrency: 2
context:
users:
tenants: 3
users_per_tenant: 2
sla:
failure_rate:
max: 0
NovaNetworks.create_and_delete_network:
-
args:
start_cidr: "10.10.0.0/24"
runner:
type: "constant"
times: 5
concurrency: 2
context:
users:
tenants: 3
users_per_tenant: 2
sla:
failure_rate:
max: 0

View File

@ -86,6 +86,7 @@ class _Service(utils.ImmutableMixin, utils.EnumMixin):
"""OpenStack services names, by rally convention."""
NOVA = "nova"
NOVA_NET = "nova-network"
NOVAV21 = "novav21"
NOVAV3 = "novav3"
CINDER = "cinder"

View File

@ -798,3 +798,22 @@ class NovaScenario(scenario.OpenStackScenario):
:param server: Server to unlock
"""
server.unlock()
@base.atomic_action_timer("nova.create_network")
def _create_network(self, ip_range, **kwargs):
"""Create nova network.
:param ip_range: IP range in CIDR notation to create
"""
net_label = self._generate_random_name(prefix="rally_novanet")
ip_range = network_wrapper.generate_cidr(start_cidr=ip_range)
return self.admin_clients("nova").networks.create(
label=net_label, cidr=ip_range, **kwargs)
@base.atomic_action_timer("nova.delete_network")
def _delete_network(self, net_id):
"""Delete nova network.
:param net_id: The nova-network ID to delete
"""
return self.admin_clients("nova").networks.delete(net_id)

View File

@ -796,3 +796,33 @@ class NovaScenarioTestCase(test.ScenarioTestCase):
server.unlock.assert_called_once_with()
self._test_atomic_action_timer(nova_scenario.atomic_actions(),
"nova.unlock_server")
def test__delete_network(self):
fake_netlabel = "test1"
nova_scenario = utils.NovaScenario()
nova_scenario._delete_network(fake_netlabel)
self.admin_clients("nova").networks.delete.assert_called_once_with(
fake_netlabel)
self._test_atomic_action_timer(nova_scenario.atomic_actions(),
"nova.delete_network")
@mock.patch(NOVA_UTILS + ".network_wrapper.generate_cidr")
def test__create_network(self, mock_generate_cidr):
fake_cidr = "10.2.0.0/24"
fake_net = mock.MagicMock()
fake_net.cidr = fake_cidr
self.admin_clients("nova").networks.create.return_value = (fake_net)
nova_scenario = utils.NovaScenario()
nova_scenario._generate_random_name = mock.Mock(
return_value="rally_novanet_fake")
return_netlabel = nova_scenario._create_network(fake_cidr,
fakearg="fakearg")
mock_generate_cidr.assert_called_once_with(start_cidr=fake_cidr)
self.admin_clients("nova").networks.create.assert_called_once_with(
label="rally_novanet_fake", cidr=mock_generate_cidr.return_value,
fakearg="fakearg")
self.assertEqual(return_netlabel, fake_net)
self._test_atomic_action_timer(nova_scenario.atomic_actions(),
"nova.create_network")