add DPDK on VF test scenarios and auto~tests

* add kernel options for DPDK on VF
* update sriov, failover, DPDK on VF test with new contrail-controller role

Change-Id: Ic8065c29c1df8b55149d353852a0c51e52ed867c
This commit is contained in:
Denis Deryabin 2016-09-23 11:09:01 +03:00
parent 7d96e3c2bf
commit c7815d83c8
12 changed files with 1545 additions and 182 deletions

View File

@ -1,5 +1,5 @@
=================================================
Master Test Plan for Contrail v 4.0.1 Fuel Plugin
Master Test Plan for Contrail v 5.0 Fuel Plugin
=================================================
@ -192,6 +192,7 @@ Not Run test cases - this metric shows a count of test cases which should be run
.. include:: test_suite_gui.rst
.. include:: test_suite_system.rst
.. include:: test_suite_dpdk.rst
.. include:: test_suite_dpdk_on_vf.rst
.. include:: test_suite_sriov.rst
.. include:: test_suite_dpdk_vf.rst
.. include:: test_suite_multiple_networks.rst

View File

@ -420,7 +420,7 @@ Steps
5. Enable sriov on interfaces of dpdk+compute node
6. Deploy cluster
7. Run OSTF
8 Run contrail health check tests
8. Run contrail health check tests
9. Add nodes with configurations:
node-5: 'contrail-controller';
node-6: 'contrail-controller';

View File

@ -0,0 +1,453 @@
==========
DPDK on VF
==========
Contrail HA DPDK on VF
----------------------
ID
##
contrail_ha_dpdk_on_vf
Description
###########
Check Contrail deploy on HA environment
Complexity
##########
advanced
Steps
#####
1. Create an environment with "Neutron with tunneling
segmentation" as a network configuration and CEPH storage
2. Enable and configure Contrail plugin
3. Enable DPDK on VF feature
4. Deploy cluster with following node configuration:
node-01: 'controller';
node-02: 'controller';
node-03: 'controller', 'ceph-osd';
node-04: 'compute', 'ceph-osd';
node-05: 'compute', 'ceph-osd';
node-06: 'contrail-controller';
node-07: 'contrail-analytics';
node-08: 'contrail-analytics-db';
node-dpdk: 'compute', dpdk';
5. Run OSTF tests
6. Run contrail health check tests
Expected results
################
All steps should pass
Contrail DPDK on VF add compute
-------------------------------
ID
##
contrail_dpdk_on_vf_add_compute
Description
###########
Verify that Contrail compute role can be added after deploying
Complexity
##########
advanced
Steps
#####
1. Create an environment with "Neutron with tunneling
segmentation" as a network configuration
2. Enable and configure Contrail plugin
3. Enable DPDK on VF feature
4. Deploy cluster with following node configuration:
node-1: 'controller', 'ceph-osd';
node-2: 'contrail-controller';
node-3: 'compute', 'ceph-osd';
node-4: 'compute', 'ceph-osd';
node-5: 'compute', 'ceph-osd';
node-6: 'contrail-analytics', 'contrail-analytics-db';
node-dpdk: 'compute', 'dpdk';
5. Run OSTF tests
6. Add one node with following configuration:
node-7: "compute", "ceph-osd";
7. Deploy changes
8. Run OSTF tests
9. Run contrail health check tests
Expected results
################
All steps should pass
Contrail DPDK on VF delete compute
----------------------------------
ID
##
contrail_dpdk_on_vf_delete_compute
Description
###########
Verify that Contrail compute role can be deleted after deploying
Complexity
##########
advanced
Steps
#####
1. Create an environment with "Neutron with tunneling
segmentation" as a network configuration
2. Enable and configure Contrail plugin
3. Enable DPDK on VF feature
4. Deploy cluster with following node configuration:
node-01: 'controller';
node-02: 'contrail-controller';
node-03: 'contrail-controller';
node-04: 'compute', 'cinder';
node-05: 'compute';
node-06: 'contrail-analytics', 'contrail-analytics-db';
5. Run OSTF tests
6. Delete node-05 with "compute" role
7. Deploy changes
8. Run OSTF tests
9. Run contrail health check tests
Expected results
################
All steps should pass
Contrail DPDK on VF add dpdk
----------------------------
ID
##
contrail_dpdk_on_vf_add_dpdk
Description
###########
Verify that DPDK role can be added after deploying
Complexity
##########
advanced
Steps
#####
1. Create an environment with "Neutron with tunneling
segmentation" as a network configuration
2. Enable and configure Contrail plugin
3. Enable DPDK on VF feature
4. Deploy cluster with following node configuration:
node-01: 'controller', 'ceph-osd';
node-02: 'contrail-controller';
node-03: 'compute', 'ceph-osd';
node-04: 'compute', 'ceph-osd';
node-05: 'controller', 'cinder';
node-06: 'controller', 'cinder';
node-07: 'contrail-analytics';
node-08: 'contrail-analytics-db';
5. Run OSTF tests
6. Run contrail health check tests
7. Add one node with following configuration:
node-dpdk: "compute", "dpdk";
8. Deploy changes
9. Run OSTF tests
10. Run contrail health check tests
Expected results
################
All steps should pass
Contrail DPDK on VF delete dpdk
-------------------------------
ID
##
contrail_dpdk_on_vf_delete_dpdk
Description
###########
Verify that DPDK role can be deleted after deploying
Complexity
##########
advanced
Steps
#####
1. Create an environment with "Neutron with tunneling
segmentation" as a network configuration
2. Enable and configure Contrail plugin
3. Enable DPDK on VF feature
4. Deploy cluster with following node configuration:
node-01: 'controller', 'ceph-osd', 'cinder';
node-02: 'contrail-controller';
node-03: 'compute', 'ceph-osd';
node-04: 'compute', 'ceph-osd';
node-05: 'contrail-analytics', 'contrail-analytics-db';
node-dpdk: 'compute', 'dpdk';
5. Run OSTF tests
6. Run contrail health check tests
7. Delete node "node-dpdk" with "dpdk" and "compute" roles
8. Deploy changes
9. Run OSTF tests
10. Run contrail health check tests
Expected results
################
All steps should pass
Contrail DPDK on VF add controller
----------------------------------
ID
##
contrail_dpdk_on_vf_add_controller
Description
###########
Verify that controller node can be added after deploy
Complexity
##########
advanced
Steps
#####
1. Create an environment with "Neutron with tunneling
segmentation" as a network configuration
2. Enable and configure Contrail plugin
3. Enable DPDK on VF feature
4. Deploy cluster with following node configuration:
node-1: 'controller', 'ceph-osd';
node-2: 'contrail-controller';
node-3: 'compute', 'ceph-osd';
node-4: 'compute', 'ceph-osd';
node-5: 'contrail-analytics', 'contrail-analytics-db';
node-6: 'contrail-analytics';
5. Run OSTF tests
6. Run contrail health check tests
7. Add one node with following configuration:
node-7: 'controller', 'ceph-osd';
8. Deploy changes
9. Run OSTF tests
10. Run contrail health check tests
Expected results
################
All steps must be completed successfully, without any errors
Contrail DPDK on VF delete controller
-------------------------------------
ID
##
contrail_dpdk_on_vf_delete_controller
Description
###########
Verify that controller node can be deleted after deploy
Complexity
##########
advanced
Steps
#####
1. Create an environment with "Neutron with tunneling
segmentation" as a network configuration
2. Enable and configure Contrail plugin
3. Enable DPDK on VF feature
4. Deploy cluster with following node configuration:
node-01: 'controller';
node-02: 'contrail-controller';
node-03: 'controller';
node-04: 'compute', 'cinder';
node-05: 'controller';
node-06: 'contrail-analytics', 'contrail-analytics-db';
node-07: 'contrail-analytics-db';
node-08: 'contrail-analytics-db';
5. Run OSTF tests
6. Delete node-01 with "controller" role
7. Deploy changes
8. Run OSTF tests
9. Run contrail health check tests
Expected results
################
All steps must be completed successfully, without any errors
Contrail DPDK on VF disable
---------------------------
ID
##
contrail_dpdk_on_vf_disable
Description
###########
Verify that DPDK on VF feature could be disabled
Complexity
##########
advanced
Steps
#####
1. Create an environment with "Neutron with tunneling segmentation" as a network configuration
2. Enable and configure Contrail plugin
3. Enable DPDK on VF feature
4. Deploy cluster with following node configuration:
node-01: 'controller', 'ceph-osd', 'cinder';
node-02: 'contrail-controller', 'contrail-analytics';
node-03: 'compute', 'ceph-osd';
node-04: 'compute', 'ceph-osd';
node-dpdk: 'compute', 'dpdk';
5. Run OSTF tests
6. Run contrail health check tests
7. Disable DPDK on VF feature
8. Deploy changes
9. Run OSTF tests
10. Run contrail health check tests
Expected results
################
All steps must be completed successfully, without any errors
Contrail DPDK on VF enable
--------------------------
ID
##
contrail_dpdk_on_vf_enable
Description
###########
Verify that DPDK on VF feature could be enabled.
Complexity
##########
advanced
Steps
#####
1. Create an environment with "Neutron with tunneling segmentation" as a network configuration
2. Enable and configure Contrail plugin
3. Deploy cluster with following node configuration:
node-01: 'controller', 'ceph-osd', 'cinder';
node-02: 'contrail-controller', 'contrail-analytics';
node-03: 'compute', 'ceph-osd';
node-04: 'compute', 'ceph-osd';
node-dpdk: 'compute', 'dpdk';
4. Run OSTF tests
5. Run contrail health check tests
6. Enable DPDK on VF feature
7. Deploy changes
8. Run OSTF tests
9. Run contrail health check tests
Expected results
################
All steps must be completed successfully, without any errors

View File

@ -42,9 +42,9 @@ Steps
12. Delete a Controller node and deploy changes
13. Run OSTF tests
14. Run contrail health check tests
16. Add a node with "Controller" role and deploy changes
17. Run OSTF tests.
18. Run contrail health check tests
15. Add a node with "Controller" role and deploy changes
16. Run OSTF tests.
17. Run contrail health check tests
Expected results
################
@ -172,19 +172,19 @@ Steps
1. Create an environment with "Neutron with tunneling segmentation"
as a network configuration
2. Enable and configure Contrail plugin with Vcenter
4. Add a controller and a compute+cinder nodes
5. Add 2 nodes with "contrail-controller" roles
6. Add a node with "contrail-analytics" role
7. Add a node with "contrail-analytics-db" role
8. Add a node with "compute-vmware" role
9. Add a node with "contrail-vmware" role
10. Deploy cluster
11. Run OSTF tests
12. Run contrail health check tests
13. Add one node with "contrail-controller" role
14. Deploy changes
15. Run OSTF tests
16. Run contrail health check tests
3. Add a controller and a compute+cinder nodes
4. Add 2 nodes with "contrail-controller" roles
5. Add a node with "contrail-analytics" role
6. Add a node with "contrail-analytics-db" role
7. Add a node with "compute-vmware" role
8. Add a node with "contrail-vmware" role
9. Deploy cluster
10. Run OSTF tests
11. Run contrail health check tests
12. Add one node with "contrail-controller" role
13. Deploy changes
14. Run OSTF tests
15. Run contrail health check tests
Expected results
@ -223,14 +223,14 @@ Steps
3. Add a node with "controller" + "mongo" roles and 3 nodes with "compute" + "ceph-osd" roles
4. Add a node with contrail-controller role
5. Add a node with contrail-analytics and contrail-analytics-db
5. Deploy cluster and run OSTF tests
6. Run contrail health check tests
7. Add node with "compute" role
8. Deploy changes and run OSTF tests
9. Run contrail health check tests
10. Delete node with "compute" role
11. Deploy cluster and run OSTF tests
12. Run contrail health check tests
6. Deploy cluster and run OSTF tests
7. Run contrail health check tests
8. Add node with "compute" role
9. Deploy changes and run OSTF tests
10. Run contrail health check tests
11. Delete node with "compute" role
12. Deploy cluster and run OSTF tests
13. Run contrail health check tests
Expected results
@ -452,7 +452,7 @@ Steps
3. Add a node with controller and cinder role
4. Add 2 nodes with compute role
5. Add 3 nodes with contrail-controller
and contrail-analytics roles
and contrail-analytics roles
6. Add a node with contrail-analytics-db role
7. Deploy cluster
8. Run OSTF tests

View File

@ -33,7 +33,8 @@ Steps
2. Enable and configure Contrail plugin
3. Add some controller (at least 3), compute,
compute with sriov and storage nodes
4. And contrail-control, contrail-config, contrail-db and contrail-analytics nodes
4. Add contrail-controler,
contrail-analytics and contrail-analytics-db nodes
5. Deploy cluster
6. Run OSTF tests
7. Run contrail check tests
@ -73,7 +74,7 @@ Steps
1. Create an environment with "Neutron with tunneling segmentation"
as a network configuration and CEPH storage
2. Enable and configure Contrail plugin with dedicated analytics DB
2. Enable and configure Contrail plugin
3. Deploy cluster with some controller, compute+ceph, compute,
compute with sriov and contrail-specified nodes
4. Run OSTF tests
@ -162,7 +163,7 @@ Steps
1. Create an environment with "Neutron with tunneling segmentation"
as a network configuration and CEPH+Cinder storage
2. Enable and configure Contrail plugin with dedicated analytics DB
2. Enable and configure Contrail plugin
3. Deploy cluster with some controller+ceph, compute+ceph, compute,
compute with sriov and contrail-specified nodes
4. Run OSTF tests
@ -206,7 +207,7 @@ Steps
1. Create an environment with "Neutron with tunneling segmentation"
as a network configuration and Cinder storage
2. Enable and configure Contrail plugin with dedicated analytics DB
2. Enable and configure Contrail plugin
3. Deploy cluster with some controller, controller+cinder, compute+cinder,
compute, compute with sriov and contrail-specified nodes
4. Run OSTF tests
@ -290,7 +291,7 @@ Steps
1. Create an environment with "Neutron with tunneling segmentation"
as a network configuration and CEPH storage
2. Enable and configure Contrail plugin with dedicated analytics DB
2. Enable and configure Contrail
3. Deploy cluster with some controller, compute+ceph,
compute, compute with sriov and contrail-specified nodes
4. Run OSTF tests

View File

@ -305,10 +305,10 @@ Steps
2. Create 2 instances in the default network.
3. Send icpm packets from one instance to another.
4. Check contrail ceilometer metrics:
"\*ip.floating.receive.bytes",
"\*ip.floating.receive.packets",
"\*ip.floating.transmit.bytes",
"\*ip.floating.transmit.packets".
"\*ip.floating.receive.bytes",
"\*ip.floating.receive.packets",
"\*ip.floating.transmit.bytes",
"\*ip.floating.transmit.packets".
Expected results

View File

@ -59,6 +59,7 @@ def import_tests():
from tests import test_dpdk # noqa
from tests import test_sriov # noqa
from tests import test_dpdk_vf # noqa
from tests import test_dpdk_on_vf # noqa
from tests import test_contrail_multiple_networks # noqa

View File

@ -632,8 +632,8 @@ class TestContrailCheck(object):
out = remote.execute(command)['stdout']
for res in out:
logger.info('Check status: {}'.format(res))
assert('active' in res,
"Contrail node status invalid: {}".format(out))
assert_true('active' in res,
"Contrail node status invalid: {}".format(out))
return True
nailgun_nodes = self.obj.fuel_web.client.list_cluster_nodes(cluster_id)

View File

@ -0,0 +1,939 @@
"""Copyright 2016 Mirantis, Inc.
Licensed under the Apache License, Version 2.0 (the "License"); you may
not use this file except in compliance with the License. You may obtain
a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
License for the specific language governing permissions and limitations
under the License.
"""
import os
from proboscis import test
from fuelweb_test import logger
from fuelweb_test.helpers.decorators import log_snapshot_after_test
from fuelweb_test.settings import CONTRAIL_PLUGIN_PACK_UB_PATH
from fuelweb_test.tests.base_test_case import SetupEnvironment
from fuelweb_test.tests.base_test_case import TestBasic
from helpers import vsrx
from helpers import plugin
from helpers import openstack
from helpers import baremetal
from helpers import fuel
from tests.test_contrail_check import TestContrailCheck
@test(groups=["plugins"])
class DPDKonVFTests(TestBasic):
"""DPDKTests."""
pack_copy_path = '/var/www/nailgun/plugins/contrail-5.0'
add_package = '/var/www/nailgun/plugins/contrail-5.0/'\
'repositories/ubuntu/contrail-setup*'
ostf_msg = 'OSTF tests passed successfully.'
cluster_id = ''
pack_path = CONTRAIL_PLUGIN_PACK_UB_PATH
CONTRAIL_DISTRIBUTION = os.environ.get('CONTRAIL_DISTRIBUTION')
bm_drv = baremetal.BMDriver()
def add_kernel_params(self):
logger.info('Update kernel parameters for DPDK on VF.')
curr_params = fuel.get_cluster_settings(self,
self.cluster_id,
'kernel_params')
from pprint import pformat
logger.info('attrs: {0}'.format(pformat(curr_params)))
curr_value = curr_params['kernel']['value']
new_value = '{0} intel_iommu=on iommu=pt'.format(curr_value)
logger.info('Update kernel params for cluster {0} = {1}'.format(
self.cluster_id, new_value))
fuel.update_cluster_settings(self, self.cluster_id,
'kernel_params', {'kernel': new_value})
@test(depends_on=[SetupEnvironment.prepare_slaves_9],
groups=["contrail_ha_dpdk_on_vf", "contrail_dpdk_on_vf_tests"])
@log_snapshot_after_test
def contrail_ha_dpdk_on_vf(self):
"""Check Contrail deploy on HA environment with DPDK on VF.
Scenario:
1. Create an environment with "Neutron with tunneling
segmentation" as a network configuration and CEPH storage
2. Enable and configure Contrail plugin
3. Enable DPDK on VF feature
4. Deploy cluster with following node configuration:
node-01: 'controller';
node-02: 'controller';
node-03: 'controller', 'ceph-osd';
node-04: 'compute', 'ceph-osd';
node-05: 'compute', 'ceph-osd';
node-06: 'contrail-controller';
node-07: 'contrail-analytics';
node-08: 'contrail-analytics-db';
node-dpdk: 'compute', dpdk';
5. Run OSTF tests
6. Run contrail health check tests
Duration 120 min
"""
conf_contrail = {
"dpdk_on_vf": True,
}
self.show_step(1)
plugin.prepare_contrail_plugin(self, slaves=9,
options={'images_ceph': True,
'volumes_ceph': True,
'ephemeral_ceph': True,
'objects_ceph': True,
'volumes_lvm': False})
self.bm_drv.host_prepare()
plugin.show_range(self, 2, 4)
# activate plugin with DPDK feature
plugin.activate_dpdk(self, **conf_contrail)
# activate vSRX image
vsrx_setup_result = vsrx.activate()
self.show_step(4)
self.bm_drv.setup_fuel_node(self,
cluster_id=self.cluster_id,
roles=['compute', 'dpdk'])
openstack.setup_hugepages(self)
conf_nodes = {
'slave-01': ['controller'],
'slave-02': ['controller'],
'slave-03': ['controller', 'ceph-osd'],
'slave-04': ['compute', 'ceph-osd'],
'slave-05': ['compute', 'ceph-osd'],
'slave-06': ['contrail-controller'],
'slave-07': ['contrail-analytics'],
'slave-08': ['contrail-analytics-db'],
}
# Cluster configuration
self.fuel_web.update_nodes(self.cluster_id,
nodes_dict=conf_nodes,
update_interfaces=False)
self.bm_drv.update_vm_node_interfaces(self, self.cluster_id)
# Enable SRIOV on interface
openstack.enable_sriov(self)
# add mandatory kernel parameters for DPDK on VK
self.add_kernel_params()
# Deploy cluster
openstack.deploy_cluster(self)
# Run OSTF tests
# FIXME: remove shouldfail, when livemigration+DPDK works
if vsrx_setup_result:
self.show_step(5)
self.fuel_web.run_ostf(cluster_id=self.cluster_id,
test_sets=['smoke', 'sanity', 'ha'],
should_fail=1,
failed_test_name=['Instance live migration']
)
self.show_step(6)
TestContrailCheck(self).cloud_check(
['dpdk', 'contrail'],
should_fail=["test_dpdk_boot_snapshot_vm"])
@test(depends_on=[SetupEnvironment.prepare_slaves_9],
groups=["contrail_dpdk_on_vf_add_compute",
"contrail_dpdk_on_vf_tests"])
@log_snapshot_after_test
def contrail_dpdk_on_vf_add_compute(self):
"""Verify that Contrail compute role can be added after deploying.
Scenario:
1. Create an environment with "Neutron with tunneling
segmentation" as a network configuration
2. Enable and configure Contrail plugin
3. Enable DPDK on VF feature
4. Deploy cluster with following node configuration:
node-1: 'controller', 'ceph-osd';
node-2: 'contrail-controller';
node-3: 'compute', 'ceph-osd';
node-4: 'compute', 'ceph-osd';
node-5: 'compute', 'ceph-osd';
node-6: 'contrail-analytics', 'contrail-analytics-db';
node-dpdk: 'compute', 'dpdk';
5. Run OSTF tests
6. Add one node with following configuration:
node-7: "compute", "ceph-osd";
7. Deploy changes
8. Run OSTF tests
9. Run contrail health check tests
"""
conf_contrail = {
"dpdk_on_vf": True,
}
self.show_step(1)
plugin.prepare_contrail_plugin(self, slaves=9,
options={'images_ceph': True,
'volumes_ceph': True,
'ephemeral_ceph': True,
'objects_ceph': True,
'volumes_lvm': False})
self.bm_drv.host_prepare()
plugin.show_range(self, 2, 4)
# activate plugin with DPDK feature
plugin.activate_dpdk(self, **conf_contrail)
# activate vSRX image
vsrx_setup_result = vsrx.activate()
self.show_step(4)
self.bm_drv.setup_fuel_node(self,
cluster_id=self.cluster_id,
roles=['compute', 'dpdk'])
openstack.setup_hugepages(self)
conf_nodes = {
'slave-01': ['controller', 'ceph-osd'],
'slave-02': ['contrail-controller'],
'slave-03': ['compute', 'ceph-osd'],
'slave-04': ['compute', 'ceph-osd'],
'slave-05': ['compute', 'ceph-osd'],
# slave-06 here
'slave-07': ['contrail-analytics',
'contrail-analytics-db'],
}
conf_compute = {'slave-06': ['compute', 'ceph-osd']}
# Cluster configuration
self.fuel_web.update_nodes(self.cluster_id,
nodes_dict=conf_nodes,
update_interfaces=False)
self.bm_drv.update_vm_node_interfaces(self, self.cluster_id)
# Enable SRIOV on interface
openstack.enable_sriov(self)
# add mandatory kernel parameters for DPDK on VK
self.add_kernel_params()
# Deploy cluster
openstack.deploy_cluster(self)
# Run OSTF tests
self.show_step(5)
# FIXME: remove shouldfail, when livemigration+DPDK works
if vsrx_setup_result:
self.fuel_web.run_ostf(cluster_id=self.cluster_id,
should_fail=1,
failed_test_name=['Instance live migration']
)
TestContrailCheck(self).cloud_check(
['dpdk', 'contrail'],
should_fail=["test_dpdk_boot_snapshot_vm"])
# Add Compute node and check again
self.show_step(6)
# Cluster configuration
self.fuel_web.update_nodes(self.cluster_id,
nodes_dict=conf_compute,
update_interfaces=False)
self.bm_drv.update_vm_node_interfaces(self, self.cluster_id)
# Deploy cluster
self.show_step(7)
openstack.deploy_cluster(self)
# Run OSTF tests
self.show_step(8)
# FIXME: remove shouldfail, when livemigration+DPDK works
if vsrx_setup_result:
self.fuel_web.run_ostf(cluster_id=self.cluster_id,
should_fail=1,
failed_test_name=['Instance live migration']
)
self.show_step(9)
TestContrailCheck(self).cloud_check(
['dpdk', 'contrail'],
should_fail=["test_dpdk_boot_snapshot_vm"])
@test(depends_on=[SetupEnvironment.prepare_slaves_9],
groups=["contrail_dpdk_on_vf_delete_compute",
"contrail_dpdk_on_vf_tests"])
@log_snapshot_after_test
def contrail_dpdk_on_vf_delete_compute(self):
"""Verify that Contrail compute role can be deleted after deploying.
Scenario:
1. Create an environment with "Neutron with tunneling
segmentation" as a network configuration
2. Enable and configure Contrail plugin
3. Enable DPDK on VF feature
4. Deploy cluster with following node configuration:
node-01: 'controller';
node-02: 'contrail-controller';
node-03: 'contrail-controller';
node-04: 'compute', 'cinder';
node-05: 'compute';
node-06: 'contrail-analytics', 'contrail-analytics-db';
5. Run OSTF tests
6. Delete node-05 with "compute" role
7. Deploy changes
8. Run OSTF tests
9. Run contrail health check tests
"""
conf_contrail = {
"dpdk_on_vf": True,
}
self.show_step(1)
plugin.prepare_contrail_plugin(self, slaves=9)
self.bm_drv.host_prepare()
self.show_step(2)
# activate plugin with DPDK feature
plugin.activate_dpdk(self, **conf_contrail)
# activate vSRX image
vsrx_setup_result = vsrx.activate()
self.show_step(3)
self.bm_drv.setup_fuel_node(self,
cluster_id=self.cluster_id,
roles=['compute', 'dpdk'])
openstack.setup_hugepages(self)
conf_no_compute = {
'slave-01': ['controller'],
'slave-02': ['contrail-controller'],
'slave-03': ['contrail-controller'],
'slave-04': ['compute', 'cinder'],
# node-05
'slave-06': ['contrail-analytics',
'contrail-analytics-db'],
}
conf_compute = {'slave-05': ['compute']}
self.fuel_web.update_nodes(
self.cluster_id,
nodes_dict=dict(conf_no_compute, **conf_compute),
update_interfaces=False)
self.bm_drv.update_vm_node_interfaces(self, self.cluster_id)
# Enable SRIOV on interface
openstack.enable_sriov(self)
# add mandatory kernel parameters for DPDK on VK
self.add_kernel_params()
# Deploy cluster
openstack.deploy_cluster(self)
# Run OSTF tests
if vsrx_setup_result:
self.show_step(4)
self.fuel_web.run_ostf(cluster_id=self.cluster_id)
TestContrailCheck(self).cloud_check(
['dpdk', 'contrail'],
should_fail=["test_dpdk_boot_snapshot_vm"])
# Delete Compute node and check again
self.show_step(5)
self.fuel_web.update_nodes(
self.cluster_id,
nodes_dict=conf_compute,
pending_addition=False, pending_deletion=True,
update_interfaces=False)
# Deploy cluster
self.show_step(6)
openstack.deploy_cluster(self)
# Run OSTF tests
if vsrx_setup_result:
self.show_step(7)
self.fuel_web.run_ostf(cluster_id=self.cluster_id,
test_sets=['smoke', 'sanity'],
should_fail=1,
failed_test_name=['Check that required '
'services are running']
)
self.show_step(8)
TestContrailCheck(self).cloud_check(
['dpdk', 'contrail'],
should_fail=["test_dpdk_boot_snapshot_vm"])
@test(depends_on=[SetupEnvironment.prepare_slaves_9],
groups=["contrail_dpdk_on_vf_add_dpdk",
"contrail_dpdk_on_vf_tests"])
@log_snapshot_after_test
def contrail_dpdk_on_vf_add_dpdk(self):
"""Verify that DPDK role can be added after deploying.
Scenario:
1. Create an environment with "Neutron with tunneling
segmentation" as a network configuration
2. Enable and configure Contrail plugin
3. Enable DPDK on VF feature
4. Deploy cluster with following node configuration:
node-01: 'controller', 'ceph-osd';
node-02: 'contrail-controller';
node-03: 'compute', 'ceph-osd';
node-04: 'compute', 'ceph-osd';
node-05: 'controller', 'cinder';
node-06: 'controller', 'cinder';
node-07: 'contrail-analytics';
node-08: 'contrail-analytics-db';
5. Run OSTF tests
6. Run contrail health check tests
7. Add one node with following configuration:
node-dpdk: "compute", "dpdk";
8. Deploy changes
9. Run OSTF tests
10. Run contrail health check tests
"""
conf_contrail = {
"dpdk_on_vf": True,
}
self.show_step(1)
plugin.prepare_contrail_plugin(self, slaves=9,
options={'images_ceph': True})
self.bm_drv.host_prepare()
plugin.show_range(self, 2, 4)
# activate plugin with DPDK feature
plugin.activate_dpdk(self, **conf_contrail)
# activate vSRX image
vsrx_setup_result = vsrx.activate()
self.show_step(4)
conf_nodes = {
'slave-01': ['controller', 'ceph-osd'],
'slave-02': ['contrail-controller'],
'slave-03': ['compute', 'ceph-osd'],
'slave-04': ['compute', 'ceph-osd'],
'slave-05': ['controller', 'cinder'],
'slave-06': ['controller', 'cinder'],
'slave-07': ['contrail-analytics'],
'slave-08': ['contrail-analytics-db'],
}
self.fuel_web.update_nodes(
self.cluster_id,
nodes_dict=conf_nodes,
update_interfaces=False)
self.bm_drv.update_vm_node_interfaces(self, self.cluster_id)
# Enable SRIOV on interface
openstack.enable_sriov(self)
# add mandatory kernel parameters for DPDK on VK
self.add_kernel_params()
# Deploy cluster
openstack.deploy_cluster(self)
# Run OSTF tests
self.show_step(5)
if vsrx_setup_result:
self.fuel_web.run_ostf(cluster_id=self.cluster_id,
test_sets=['smoke', 'sanity', 'ha'])
self.show_step(6)
TestContrailCheck(self).cloud_check(['contrail'])
self.show_step(7)
self.bm_drv.setup_fuel_node(self,
cluster_id=self.cluster_id,
roles=['compute', 'dpdk'])
openstack.setup_hugepages(self)
self.show_step(8)
openstack.deploy_cluster(self)
self.show_step(9)
if vsrx_setup_result:
self.fuel_web.run_ostf(cluster_id=self.cluster_id)
self.show_step(10)
TestContrailCheck(self).cloud_check(
['dpdk', 'contrail'],
should_fail=["test_dpdk_boot_snapshot_vm"])
@test(depends_on=[SetupEnvironment.prepare_slaves_9],
groups=["contrail_dpdk_on_vf_delete_dpdk",
"contrail_dpdk_on_vf_tests"])
@log_snapshot_after_test
def contrail_dpdk_on_vf_delete_dpdk(self):
"""Verify that DPDK role can be deleted after deploying.
Scenario:
1. Create an environment with "Neutron with tunneling
segmentation" as a network configuration
2. Enable and configure Contrail plugin
3. Enable DPDK on VF feature
4. Deploy cluster with following node configuration:
node-01: 'controller', 'ceph-osd', 'cinder';
node-02: 'contrail-controller';
node-03: 'compute', 'ceph-osd';
node-04: 'compute', 'ceph-osd';
node-05: 'contrail-analytics', 'contrail-analytics-db';
node-dpdk: 'compute', 'dpdk';
5. Run OSTF tests
6. Run contrail health check tests
7. Delete node "node-dpdk" with "dpdk" and "compute" roles
8. Deploy changes
9. Run OSTF tests
10. Run contrail health check tests
"""
self.show_step(1)
plugin.prepare_contrail_plugin(self, slaves=9,
options={'images_ceph': True})
self.bm_drv.host_prepare()
self.show_step(2)
# activate plugin with DPDK feature
conf_contrail = {"dpdk_on_vf": True}
plugin.activate_dpdk(self, **conf_contrail)
# activate vSRX image
vsrx_setup_result = vsrx.activate()
self.show_step(3)
self.bm_drv.setup_fuel_node(self,
cluster_id=self.cluster_id,
roles=['compute', 'dpdk'])
openstack.setup_hugepages(self)
conf_no_dpdk = {
'slave-01': ['controller', 'ceph-osd', 'cinder'],
'slave-02': ['contrail-controller'],
'slave-03': ['compute', 'ceph-osd'],
'slave-04': ['compute', 'ceph-osd'],
'slave-05': ['contrail-analytics', 'contrail-analytics-db'],
}
self.fuel_web.update_nodes(
self.cluster_id,
nodes_dict=conf_no_dpdk,
update_interfaces=False)
self.bm_drv.update_vm_node_interfaces(self, self.cluster_id)
# Enable SRIOV on interface
openstack.enable_sriov(self)
# add mandatory kernel parameters for DPDK on VK
self.add_kernel_params()
# Deploy cluster
openstack.deploy_cluster(self)
# Run OSTF tests
self.show_step(4)
if vsrx_setup_result:
self.fuel_web.run_ostf(cluster_id=self.cluster_id)
self.show_step(5)
TestContrailCheck(self).cloud_check(
['dpdk', 'contrail'],
should_fail=["test_dpdk_boot_snapshot_vm"])
self.show_step(6)
self.bm_drv.setup_fuel_node(self,
cluster_id=self.cluster_id,
roles=['compute', 'dpdk'],
pending_deletion=True,
pending_addition=False)
self.show_step(7)
openstack.deploy_cluster(self)
self.show_step(8)
if vsrx_setup_result:
self.fuel_web.run_ostf(cluster_id=self.cluster_id,
test_sets=['smoke', 'sanity'],
should_fail=1,
failed_test_name=['Check that required '
'services are running']
)
self.show_step(9)
TestContrailCheck(self).cloud_check(['contrail'])
@test(depends_on=[SetupEnvironment.prepare_slaves_9],
groups=["contrail_dpdk_on_vf_add_controller",
"contrail_dpdk_on_vf_tests"])
@log_snapshot_after_test
def contrail_dpdk_on_vf_add_controller(self):
"""Verify that Contrail controller role can be added after deploying.
Scenario:
1. Create an environment with "Neutron with tunneling
segmentation" as a network configuration
2. Enable and configure Contrail plugin
3. Enable DPDK on VF feature
4. Deploy cluster with following node configuration:
node-1: 'controller', 'ceph-osd';
node-2: 'contrail-controller';
node-3: 'compute', 'ceph-osd';
node-4: 'compute', 'ceph-osd';
node-5: 'contrail-analytics', 'contrail-analytics-db';
node-6: 'contrail-analytics';
5. Run OSTF tests
6. Run contrail health check tests
7. Add one node with following configuration:
node-7: 'controller', 'ceph-osd';
8. Deploy changes
9. Run OSTF tests
10. Run contrail health check tests
"""
conf_contrail = {
"dpdk_on_vf": True,
}
self.show_step(1)
plugin.prepare_contrail_plugin(self, slaves=9,
options={'images_ceph': True,
'volumes_ceph': True,
'ephemeral_ceph': True,
'objects_ceph': True,
'volumes_lvm': False})
self.bm_drv.host_prepare()
plugin.show_range(self, 2, 4)
# activate plugin with DPDK feature
plugin.activate_dpdk(self, **conf_contrail)
# activate vSRX image
vsrx_setup_result = vsrx.activate()
self.show_step(4)
self.bm_drv.setup_fuel_node(self,
cluster_id=self.cluster_id,
roles=['compute', 'dpdk'])
openstack.setup_hugepages(self)
conf_nodes = {
'slave-01': ['controller', 'ceph-osd'],
'slave-02': ['contrail-controller'],
'slave-03': ['compute', 'ceph-osd'],
'slave-04': ['compute', 'ceph-osd'],
'slave-05': ['contrail-analytics',
'contrail-analytics-db'],
'slave-06': ['contrail-analytics'],
}
conf_controller = {'slave-07': ['controller', 'ceph-osd']}
# Cluster configuration
self.fuel_web.update_nodes(self.cluster_id,
nodes_dict=conf_nodes,
update_interfaces=False)
self.bm_drv.update_vm_node_interfaces(self, self.cluster_id)
# Enable SRIOV on interface
openstack.enable_sriov(self)
# add mandatory kernel parameters for DPDK on VK
self.add_kernel_params()
# Deploy cluster
openstack.deploy_cluster(self)
# Run OSTF tests
self.show_step(5)
# FIXME: remove shouldfail, when livemigration+DPDK works
if vsrx_setup_result:
self.fuel_web.run_ostf(cluster_id=self.cluster_id,
should_fail=1,
failed_test_name=['Instance live migration']
)
TestContrailCheck(self).cloud_check(
['dpdk', 'contrail'],
should_fail=["test_dpdk_boot_snapshot_vm"])
# Add Compute node and check again
self.show_step(6)
# Cluster configuration
self.fuel_web.update_nodes(self.cluster_id,
nodes_dict=conf_controller,
update_interfaces=False)
self.bm_drv.update_vm_node_interfaces(self, self.cluster_id)
# Enable SRIOV on interface
openstack.enable_sriov(self)
# Deploy cluster
self.show_step(7)
openstack.deploy_cluster(self)
# Run OSTF tests
self.show_step(8)
# FIXME: remove shouldfail, when livemigration+DPDK works
if vsrx_setup_result:
self.fuel_web.run_ostf(cluster_id=self.cluster_id,
should_fail=1,
failed_test_name=['Instance live migration']
)
self.show_step(9)
TestContrailCheck(self).cloud_check(
['dpdk', 'contrail'],
should_fail=["test_dpdk_boot_snapshot_vm"])
@test(depends_on=[SetupEnvironment.prepare_slaves_5],
groups=["contrail_dpdk_on_vf_delete_controller",
"contrail_dpdk_tests"])
@log_snapshot_after_test
def contrail_dpdk_on_vf_delete_controller(self):
"""Verify that Contrail controller role can be deleted after deploying.
Scenario:
1. Create an environment with "Neutron with tunneling
segmentation" as a network configuration
2. Enable and configure Contrail plugin
3. Enable DPDK on VF feature
4. Deploy cluster with following node configuration:
node-01: 'controller';
node-02: 'contrail-controller';
node-03: 'controller';
node-04: 'compute', 'cinder';
node-05: 'controller';
node-06: 'contrail-analytics', 'contrail-analytics-db';
node-07: 'contrail-analytics-db';
node-08: 'contrail-analytics-db';
5. Run OSTF tests
6. Delete node-01 with "controller" role
7. Deploy changes
8. Run OSTF tests
9. Run contrail health check tests
"""
self.show_step(1)
plugin.prepare_contrail_plugin(self, slaves=5)
self.bm_drv.host_prepare()
self.show_step(2)
# activate plugin with DPDK on VF feature
conf_contrail = {"dpdk_on_vf": True}
plugin.activate_dpdk(self, **conf_contrail)
# activate vSRX image
vsrx_setup_result = vsrx.activate()
plugin.show_range(self, 3, 4)
self.bm_drv.setup_fuel_node(self,
cluster_id=self.cluster_id,
roles=['compute', 'dpdk'])
openstack.setup_hugepages(self)
conf_controller = {'slave-01': ['controller']}
conf_no_controller = {
# slave-01 here
'slave-02': ['contrail-controller'],
'slave-03': ['controller'],
'slave-04': ['compute', 'cinder'],
'slave-05': ['controller'],
'slave-06': ['contrail-analytics',
'contrail-analytics-db'],
'slave-07': ['contrail-analytics-db'],
'slave-08': ['contrail-analytics-db'],
}
self.fuel_web.update_nodes(
self.cluster_id,
nodes_dict=dict(conf_no_controller, **conf_controller),
update_interfaces=False)
self.bm_drv.update_vm_node_interfaces(self, self.cluster_id)
# Enable SRIOV on interface
openstack.enable_sriov(self)
# add mandatory kernel parameters for DPDK on VK
self.add_kernel_params()
# Deploy cluster
openstack.deploy_cluster(self)
# Run OSTF tests
if vsrx_setup_result:
self.fuel_web.run_ostf(cluster_id=self.cluster_id)
TestContrailCheck(self).cloud_check(
['dpdk', 'contrail'],
should_fail=["test_dpdk_boot_snapshot_vm"])
# Delete Compute node and check again
plugin.show_range(self, 5, 7)
self.fuel_web.update_nodes(
self.cluster_id,
nodes_dict=conf_controller,
pending_addition=False, pending_deletion=True,
update_interfaces=False)
# Deploy cluster
openstack.deploy_cluster(self)
# Run OSTF tests
if vsrx_setup_result:
self.fuel_web.run_ostf(cluster_id=self.cluster_id,
test_sets=['smoke', 'sanity'],
should_fail=1,
failed_test_name=['Check that required '
'services are running']
)
self.show_step(8)
TestContrailCheck(self).cloud_check(
['dpdk', 'contrail'],
should_fail=["test_dpdk_boot_snapshot_vm"])
@test(depends_on=[SetupEnvironment.prepare_slaves_9],
groups=["contrail_dpdk_on_vf_disable",
"contrail_dpdk_on_vf_tests"])
@log_snapshot_after_test
def contrail_dpdk_on_vf_disable(self):
"""Verify that DPDK on VF feature could be disabled.
Scenario:
1. Create an environment with "Neutron with tunneling
segmentation" as a network configuration
2. Enable and configure Contrail plugin
3. Enable DPDK on VF feature
4. Deploy cluster with following node configuration:
node-01: 'controller', 'ceph-osd', 'cinder';
node-02: 'contrail-controller';
node-03: 'compute', 'ceph-osd';
node-04: 'compute', 'ceph-osd';
node-dpdk: 'compute', 'dpdk';
5. Run OSTF tests
6. Run contrail health check tests
7. Disable DPDK on VF feature
8. Deploy changes
9. Run OSTF tests
10. Run contrail health check tests
"""
self.show_step(1)
plugin.prepare_contrail_plugin(self, slaves=9,
options={'images_ceph': True})
self.bm_drv.host_prepare()
plugin.show_range(self, 2, 4)
# activate plugin with DPDK feature
conf_contrail = {"dpdk_on_vf": True}
plugin.activate_dpdk(self, **conf_contrail)
# activate vSRX image
vsrx_setup_result = vsrx.activate()
self.show_step(4)
self.bm_drv.setup_fuel_node(self,
cluster_id=self.cluster_id,
roles=['compute', 'dpdk'])
openstack.setup_hugepages(self)
conf_nodes = {
'slave-01': ['controller', 'ceph-osd', 'cinder'],
'slave-02': ['contrail-controller'],
'slave-03': ['compute', 'ceph-osd'],
'slave-04': ['compute', 'ceph-osd'],
}
# Cluster configuration
self.fuel_web.update_nodes(self.cluster_id,
nodes_dict=conf_nodes,
update_interfaces=False)
self.bm_drv.update_vm_node_interfaces(self, self.cluster_id)
# Enable SRIOV on interface
openstack.enable_sriov(self)
# add mandatory kernel parameters for DPDK on VK
self.add_kernel_params()
# Deploy cluster
openstack.deploy_cluster(self)
# Run OSTF tests
# FIXME: remove shouldfail, when livemigration+DPDK works
if vsrx_setup_result:
self.show_step(5)
self.fuel_web.run_ostf(cluster_id=self.cluster_id,
test_sets=['smoke', 'sanity', 'ha'],
should_fail=1,
failed_test_name=['Instance live migration']
)
self.show_step(6)
TestContrailCheck(self).cloud_check(
['dpdk', 'contrail'],
should_fail=["test_dpdk_boot_snapshot_vm"])
self.show_step(7)
# activate plugin with DPDK feature
conf_contrail = {"dpdk_on_vf": False}
plugin.activate_dpdk(self, **conf_contrail)
self.show_step(8)
# Deploy cluster
openstack.deploy_cluster(self)
# Run OSTF tests
# FIXME: remove shouldfail, when livemigration+DPDK works
if vsrx_setup_result:
self.show_step(9)
self.fuel_web.run_ostf(cluster_id=self.cluster_id,
test_sets=['smoke', 'sanity', 'ha'],
should_fail=1,
failed_test_name=['Instance live migration']
)
self.show_step(10)
TestContrailCheck(self).cloud_check(
['dpdk', 'contrail'],
should_fail=["test_dpdk_boot_snapshot_vm"])
@test(depends_on=[SetupEnvironment.prepare_slaves_9],
groups=["contrail_dpdk_on_vf_enable",
"contrail_dpdk_on_vf_tests"])
@log_snapshot_after_test
def contrail_dpdk_on_vf_enable(self):
"""Verify that DPDK on VF feature could be enabled.
Scenario:
1. Create an environment with "Neutron with tunneling
segmentation" as a network configuration
2. Enable and configure Contrail plugin
3. Deploy cluster with following node configuration:
node-01: 'controller', 'ceph-osd', 'cinder';
node-02: 'contrail-controller',
'contrail-analytics',
'contrail-analytics-db';
node-03: 'compute', 'ceph-osd';
node-04: 'compute', 'ceph-osd';
node-dpdk: 'compute', 'dpdk';
4. Run OSTF tests
5. Run contrail health check tests
6. Enable DPDK on VF feature
7. Deploy changes
8. Run OSTF tests
9. Run contrail health check tests
"""
self.show_step(1)
plugin.prepare_contrail_plugin(self, slaves=9,
options={'images_ceph': True})
self.bm_drv.host_prepare()
plugin.show_range(self, 2, 4)
# activate plugin with DPDK feature
plugin.activate_dpdk(self)
# activate vSRX image
vsrx_setup_result = vsrx.activate()
self.show_step(4)
self.bm_drv.setup_fuel_node(self,
cluster_id=self.cluster_id,
roles=['compute', 'dpdk'])
openstack.setup_hugepages(self)
conf_nodes = {
'slave-01': ['controller', 'ceph-osd', 'cinder'],
'slave-02': ['contrail-controller',
'contrail-analytics',
'contrail-analytics-db'],
'slave-03': ['compute', 'ceph-osd'],
'slave-04': ['compute', 'ceph-osd'],
}
# Cluster configuration
self.fuel_web.update_nodes(self.cluster_id,
nodes_dict=conf_nodes,
update_interfaces=False)
self.bm_drv.update_vm_node_interfaces(self, self.cluster_id)
# Enable SRIOV on interface
openstack.enable_sriov(self)
# add mandatory kernel parameters for DPDK on VK
self.add_kernel_params()
# Deploy cluster
openstack.deploy_cluster(self)
# Run OSTF tests
# FIXME: remove shouldfail, when livemigration+DPDK works
if vsrx_setup_result:
self.show_step(5)
self.fuel_web.run_ostf(cluster_id=self.cluster_id,
test_sets=['smoke', 'sanity', 'ha'],
should_fail=1,
failed_test_name=['Instance live migration']
)
self.show_step(6)
TestContrailCheck(self).cloud_check(
['dpdk', 'contrail'],
should_fail=["test_dpdk_boot_snapshot_vm"])
self.show_step(7)
# activate plugin with DPDK feature
conf_contrail = {"dpdk_on_vf": True}
plugin.activate_dpdk(self, **conf_contrail)
self.show_step(8)
# Deploy cluster
openstack.deploy_cluster(self)
# Run OSTF tests
# FIXME: remove shouldfail, when livemigration+DPDK works
if vsrx_setup_result:
self.show_step(9)
self.fuel_web.run_ostf(cluster_id=self.cluster_id,
test_sets=['smoke', 'sanity', 'ha'],
should_fail=1,
failed_test_name=['Instance live migration']
)
self.show_step(10)
TestContrailCheck(self).cloud_check(
['dpdk', 'contrail'],
should_fail=["test_dpdk_boot_snapshot_vm"])

View File

@ -153,19 +153,16 @@ class FailoverTests(TestBasic):
'slave-04': ['compute', 'ceph-osd'],
'slave-05': ['compute', 'ceph-osd'],
'slave-06': ['compute', 'ceph-osd'],
'slave-07': ['contrail-config',
'contrail-control',
'contrail-db',
'contrail-analytics'],
'slave-08': ['contrail-config',
'contrail-control',
'contrail-db',
'contrail-analytics',],
'slave-09': ['contrail-config',
'contrail-control',
'contrail-db',
'contrail-analytics'],
}
'slave-07': ['contrail-controller',
'contrail-analytics',
'contrail-analytics-db'],
'slave-08': ['contrail-controller',
'contrail-analytics',
'contrail-analytics-db'],
'slave-09': ['contrail-controller',
'contrail-analytics',
'contrail-analytics-db'],
}
self.show_step(2)
openstack.update_deploy_check(self, conf_env,

View File

@ -700,7 +700,7 @@ class FunctionalTests(TestBasic):
plugin.prepare_contrail_plugin(self, slaves=9)
self.show_step(2)
plugin.activate_plugin(selfl)
plugin.activate_plugin(self)
vsrx_setup_result = vsrx.activate()
plugin.show_range(self, 3, 10)

View File

@ -60,10 +60,9 @@ class SRIOVTests(TestBasic):
node-03: 'controller', 'ceph-osd';
node-04: 'compute', 'ceph-osd';
node-05: 'compute', 'ceph-osd';
node-06: 'contrail-db';
node-07: 'contrail-config';
node-08: 'contrail-control';
node-09: 'contrail-analytics';
node-06: 'contrail-controller';
node-07: 'contrail-analytics';
node-08: 'contrail-analytics-db';
node-sriov: 'compute';
4. Run OSTF tests
5. Run contrail health check tests
@ -97,10 +96,9 @@ class SRIOVTests(TestBasic):
'slave-03': ['controller', 'ceph-osd'],
'slave-04': ['compute', 'ceph-osd'],
'slave-05': ['compute', 'ceph-osd'],
'slave-06': ['contrail-db'],
'slave-07': ['contrail-config'],
'slave-08': ['contrail-control'],
'slave-09': ['contrail-analytics']
'slave-06': ['contrail-controller'],
'slave-07': ['contrail-analytics'],
'slave-08': ['contrail-analytics-db'],
}
# Cluster configuration
self.fuel_web.update_nodes(self.cluster_id,
@ -134,21 +132,19 @@ class SRIOVTests(TestBasic):
1. Create an environment with "Neutron with tunneling
segmentation" as a network configuration
2. Enable and configure Contrail plugin
3. Enable dedicated analytics DB
4. Deploy cluster with following node configuration:
node-1: 'controller', 'ceph-osd';
node-2: 'contrail-config', 'contrail-control',
'contrail-db', 'contrail-analytics';
node-3: 'compute', 'ceph-osd';
node-4: 'compute', 'ceph-osd';
node-bm: 'compute'(sriov);
node-6: 'compute', 'ceph-osd';
5. Run OSTF tests
6. Add one node with following configuration:
node-5: 'contrail-analytics-db';
7. Deploy changes
8. Run OSTF tests
9. Run contrail health check tests
3. Deploy cluster with following node configuration:
node-1: 'controller', 'ceph-osd';
node-2: 'contrail-analytics', 'contrail-controller';
node-3: 'compute', 'ceph-osd';
node-4: 'compute', 'ceph-osd';
node-6: 'contrail-analytics-db';
node-bm: 'compute'(sriov);
4. Run OSTF tests
5. Add one node with following configuration:
node-5: 'compute', 'ceph-osd';
6. Deploy changes
7. Run OSTF tests
8. Run contrail health check tests
"""
self.show_step(1)
@ -160,22 +156,19 @@ class SRIOVTests(TestBasic):
'volumes_lvm': False})
self.bm_drv.host_prepare()
plugin.show_range(self, 2, 4)
self.show_step(2)
# enable plugin
plugin.activate_plugin(self, dedicated_analytics_db=True)
plugin.activate_plugin(self)
# activate vSRX image
vsrx_setup_result = vsrx.activate()
self.show_step(4)
self.show_step(3)
self.bm_drv.setup_fuel_node(self,
cluster_id=self.cluster_id,
roles=['compute'])
conf_nodes = {
'slave-01': ['controller', 'ceph-osd'],
'slave-02': ['contrail-config',
'contrail-control',
'contrail-db',
'contrail-analytics'],
'slave-02': ['contrail-controller', 'contrail-analytics'],
'slave-03': ['compute', 'ceph-osd'],
'slave-04': ['compute', 'ceph-osd'],
'slave-06': ['contrail-analytics-db'],
@ -192,7 +185,7 @@ class SRIOVTests(TestBasic):
# Deploy cluster
openstack.deploy_cluster(self)
# Run OSTF tests
self.show_step(5)
self.show_step(4)
if vsrx_setup_result:
self.fuel_web.run_ostf(
cluster_id=self.cluster_id, should_fail=2,
@ -203,7 +196,7 @@ class SRIOVTests(TestBasic):
TestContrailCheck(self).cloud_check(['sriov', 'contrail'])
# Add Compute node and check again
self.show_step(6)
self.show_step(5)
# Cluster configuration
self.fuel_web.update_nodes(self.cluster_id,
nodes_dict=conf_compute,
@ -211,10 +204,10 @@ class SRIOVTests(TestBasic):
self.bm_drv.update_vm_node_interfaces(self, self.cluster_id)
openstack.enable_sriov(self)
# Deploy cluster
self.show_step(7)
self.show_step(6)
openstack.deploy_cluster(self)
# Run OSTF tests
self.show_step(8)
self.show_step(7)
if vsrx_setup_result:
self.fuel_web.run_ostf(
cluster_id=self.cluster_id, should_fail=2,
@ -222,7 +215,7 @@ class SRIOVTests(TestBasic):
'Instance live migration',
'Check network connectivity from SRIOV instance via' +
' floating IP'])
self.show_step(9)
self.show_step(8)
TestContrailCheck(self).cloud_check(['sriov', 'contrail'])
@test(depends_on=[SetupEnvironment.prepare_slaves_5],
@ -237,10 +230,9 @@ class SRIOVTests(TestBasic):
2. Enable and configure Contrail plugin
3. Deploy cluster with following node configuration:
node-01: 'controller';
node-02: 'contrail-control', 'contrail-config',
'contrail-db', 'contrail-analytics';
node-02: 'contrail-controller'
node-03: 'compute', 'cinder';
node-04: 'compute';
node-05: 'contrail-analytics', 'contrail-analytics-db';
node-bm: 'compute'(sriov);
4. Run OSTF tests
5. Delete node-04 with "compute" role
@ -265,11 +257,10 @@ class SRIOVTests(TestBasic):
roles=['compute'])
conf_no_compute = {
'slave-01': ['controller'],
'slave-02': ['contrail-control',
'contrail-config',
'contrail-db',
'contrail-analytics'],
'slave-02': ['contrail-controller'],
'slave-03': ['compute', 'cinder'],
# slave-04 compute here
'slave-05': ['contrail-analytics', 'contrail-analytics-db'],
}
conf_compute = {'slave-04': ['compute']}
@ -326,21 +317,19 @@ class SRIOVTests(TestBasic):
1. Create an environment with "Neutron with tunneling
segmentation" as a network configuration
2. Enable and configure Contrail plugin
3. Enable dedicated analytics DB
4. Deploy cluster with following node configuration:
3. Deploy cluster with following node configuration:
node-1: 'controller', 'ceph-osd';
node-2: 'contrail-config', 'contrail-control',
'contrail-db';
node-2: 'contrail-controller';
node-3: 'compute', 'ceph-osd';
node-4: 'compute', 'ceph-osd';
node-6: 'contrail-analytics', 'contrail-analytics-db';
node-bm: 'compute'(sriov);
node-6: 'contrail-analytics', 'contrail-analytics';
5. Run OSTF tests
6. Add one node with following configuration:
4. Run OSTF tests
5. Add one node with following configuration:
node-5: "controller", "ceph-osd";
7. Deploy changes
8. Run OSTF tests
9. Run contrail health check tests
6. Deploy changes
7. Run OSTF tests
8. Run contrail health check tests
"""
self.show_step(1)
@ -354,21 +343,19 @@ class SRIOVTests(TestBasic):
plugin.show_range(self, 2, 4)
# enable plugin
plugin.activate_plugin(self, dedicated_analytics_db=True)
plugin.activate_plugin(self)
# activate vSRX image
vsrx_setup_result = vsrx.activate()
self.show_step(4)
self.bm_drv.setup_fuel_node(self,
cluster_id=self.cluster_id,
roles=['compute'])
conf_nodes = {
'slave-01': ['controller', 'ceph-osd'],
'slave-02': ['contrail-config',
'contrail-control',
'contrail-db'],
'slave-02': ['contrail-controller'],
'slave-03': ['compute', 'ceph-osd'],
'slave-04': ['compute', 'ceph-osd'],
# slave-05 controlle, ceph-osd here
'slave-06': ['contrail-analytics-db', 'contrail-analytics'],
}
conf_controller = {'slave-05': ['controller', 'ceph-osd']}
@ -383,7 +370,7 @@ class SRIOVTests(TestBasic):
# Deploy cluster
openstack.deploy_cluster(self)
# Run OSTF tests
self.show_step(5)
self.show_step(4)
# FIXME: remove shouldfail, when livemigration+DPDK works
if vsrx_setup_result:
self.fuel_web.run_ostf(
@ -395,17 +382,17 @@ class SRIOVTests(TestBasic):
TestContrailCheck(self).cloud_check(['sriov', 'contrail'])
# Add Compute node and check again
self.show_step(6)
self.show_step(5)
# Cluster configuration
self.fuel_web.update_nodes(self.cluster_id,
nodes_dict=conf_controller,
update_interfaces=False)
self.bm_drv.update_vm_node_interfaces(self, self.cluster_id)
# Deploy cluster
self.show_step(7)
self.show_step(6)
openstack.deploy_cluster(self)
# Run OSTF tests
self.show_step(8)
self.show_step(7)
# FIXME: remove shouldfail, when livemigration+DPDK works
if vsrx_setup_result:
self.fuel_web.run_ostf(
@ -414,7 +401,7 @@ class SRIOVTests(TestBasic):
'Instance live migration',
'Check network connectivity from SRIOV instance via'
' floating IP'])
self.show_step(9)
self.show_step(8)
TestContrailCheck(self).cloud_check(['sriov', 'contrail'])
@test(depends_on=[SetupEnvironment.prepare_slaves_5],
@ -429,10 +416,10 @@ class SRIOVTests(TestBasic):
2. Enable and configure Contrail plugin
3. Deploy cluster with following node configuration:
node-01: 'controller';
node-02: 'contrail-control', 'contrail-config',
'contrail-db', 'contrail-analytics';
node-02: 'contrail-analytics', 'contrail-controller';
node-03: 'compute', 'cinder';
node-04: 'controller';
node-05: 'contrail-analytics-db';
node-bm: 'compute'(sriov);
4. Run OSTF tests
5. Delete node-04 with "controller" role
@ -457,11 +444,10 @@ class SRIOVTests(TestBasic):
roles=['compute'])
conf_no_compute = {
'slave-01': ['controller'],
'slave-02': ['contrail-control',
'contrail-config',
'contrail-db',
'contrail-analytics'],
'slave-02': ['contrail-controller', 'contrail-analytics'],
'slave-03': ['compute', 'cinder'],
'slave-04': ['controller'],
'slave-05': ['contrail-analytics-db'],
}
conf_controller = {'slave-04': ['controller']}
@ -515,21 +501,19 @@ class SRIOVTests(TestBasic):
1. Create an environment with "Neutron with tunneling
segmentation" as a network configuration
2. Enable and configure Contrail plugin
3. Enable dedicated analytics DB
4. Deploy cluster with following node configuration:
3. Deploy cluster with following node configuration:
node-01: 'controller', 'ceph-osd';
node-02: 'contrail-config', 'contrail-control';
node-03: 'contrail-db', 'contrail-analytics';
node-02: 'contrail-controller';
node-03: 'contrail-analytics', 'contrail-analytics-db';
node-04: 'compute', 'ceph-osd';
node-05: 'compute', 'ceph-osd';
node-06: 'contrail-analytics-db', 'contrail-analytics';
5. Run OSTF tests
6. Run contrail health check tests
7. Add one node with following configuration:
4. Run OSTF tests
5. Run contrail health check tests
6. Add one node with following configuration:
node-bm: "compute"(sriov);
8. Deploy changes
9. Run OSTF tests
10. Run contrail health check tests
7. Deploy changes
8. Run OSTF tests
9. Run contrail health check tests
"""
self.show_step(1)
@ -537,20 +521,19 @@ class SRIOVTests(TestBasic):
options={'images_ceph': True})
self.bm_drv.host_prepare()
plugin.show_range(self, 2, 4)
self.show_step(2)
# enable plugin
plugin.activate_plugin(self, dedicated_analytics_db=True)
# activate vSRX image
vsrx_setup_result = vsrx.activate()
plugin.show_range(self, 4, 6)
plugin.show_range(self, 3, 5)
conf_nodes = {
'slave-01': ['controller', 'ceph-osd'],
'slave-02': ['contrail-config', 'contrail-control'],
'slave-03': ['contrail-db'],
'slave-02': ['contrail-controller'],
'slave-03': ['contrail-analytics-db', 'contrail-analytics'],
'slave-04': ['compute', 'ceph-osd'],
'slave-05': ['compute', 'ceph-osd'],
'slave-06': ['contrail-analytics-db', 'contrail-analytics'],
}
self.fuel_web.update_nodes(
self.cluster_id,
@ -565,23 +548,23 @@ class SRIOVTests(TestBasic):
self.fuel_web.run_ostf(cluster_id=self.cluster_id)
TestContrailCheck(self).cloud_check(['contrail'])
self.show_step(7)
self.show_step(6)
self.bm_drv.setup_fuel_node(self,
cluster_id=self.cluster_id,
roles=['compute'])
# Enable SRIOV on interface
openstack.enable_sriov(self)
self.show_step(8)
self.show_step(7)
openstack.deploy_cluster(self)
self.show_step(9)
self.show_step(8)
if vsrx_setup_result:
self.fuel_web.run_ostf(
cluster_id=self.cluster_id, should_fail=1,
failed_test_name=[
'Check network connectivity from SRIOV '
'instance via floating IP'])
self.show_step(10)
self.show_step(9)
TestContrailCheck(self).cloud_check(['sriov', 'contrail'])
@test(depends_on=[SetupEnvironment.prepare_slaves_9],
@ -594,40 +577,36 @@ class SRIOVTests(TestBasic):
1. Create an environment with "Neutron with tunneling
segmentation" as a network configuration
2. Enable and configure Contrail plugin
3. Enable dedicated analytics DB
4. Deploy cluster with following node configuration:
3. Deploy cluster with following node configuration:
node-01: 'controller';
node-02: 'controller';
node-03: 'controller', 'cinder';
node-04: 'contrail-control', 'contrail-config',
'contrail-db', 'contrail-analytics';
node-05: 'contrail-control', 'contrail-config',
'contrail-db', 'contrail-analytics';
node-06: 'contrail-control', 'contrail-config',
'contrail-db', 'contrail-analytics';
node-04: 'contrail-controller';
node-05: 'contrail-analytics';
node-06: 'contrail-analytics-db';
node-07: 'compute';
node-08: 'compute';
node-bm: 'compute'(sriov);
node-09: 'contrail-analytics-db';
5. Run OSTF tests
6. Run contrail health check tests
7. Delete node-bm with 'compute'(sriov) role
8. Deploy changes
9. Run OSTF tests
10. Run contrail health check tests
node-bm: 'compute'(sriov);
4. Run OSTF tests
5. Run contrail health check tests
6. Delete node-bm with 'compute'(sriov) role
7. Deploy changes
8. Run OSTF tests
9. Run contrail health check tests
"""
self.show_step(1)
plugin.prepare_contrail_plugin(self, slaves=9)
self.bm_drv.host_prepare()
plugin.show_range(self, 2, 4)
self.show_step(2)
# enable plugin
plugin.activate_plugin(self, dedicated_analytics_db=True)
# activate vSRX image
vsrx_setup_result = vsrx.activate()
self.show_step(4)
self.show_step(3)
self.bm_drv.setup_fuel_node(self,
cluster_id=self.cluster_id,
roles=['compute'])
@ -635,18 +614,9 @@ class SRIOVTests(TestBasic):
'slave-01': ['controller'],
'slave-02': ['controller'],
'slave-03': ['controller', 'cinder'],
'slave-04': ['contrail-control',
'contrail-config',
'contrail-db',
'contrail-analytics'],
'slave-05': ['contrail-control',
'contrail-config',
'contrail-db',
'contrail-analytics'],
'slave-06': ['contrail-control',
'contrail-config',
'contrail-db',
'contrail-analytics'],
'slave-04': ['contrail-controller'],
'slave-05': ['contrail-analytics'],
'slave-06': ['contrail-analytics-db'],
'slave-07': ['compute'],
'slave-08': ['compute'],
'slave-09': ['contrail-analytics-db'],
@ -662,32 +632,32 @@ class SRIOVTests(TestBasic):
# Deploy cluster
openstack.deploy_cluster(self)
# Run OSTF tests
self.show_step(5)
self.show_step(4)
if vsrx_setup_result:
self.fuel_web.run_ostf(
cluster_id=self.cluster_id, should_fail=1,
failed_test_name=[
'Check network connectivity from SRIOV '
'instance via floating IP'])
self.show_step(6)
self.show_step(5)
TestContrailCheck(self).cloud_check(['sriov', 'contrail'])
self.show_step(7)
self.show_step(6)
self.bm_drv.setup_fuel_node(self,
cluster_id=self.cluster_id,
roles=['compute'],
pending_deletion=True,
pending_addition=False)
self.show_step(8)
self.show_step(7)
openstack.deploy_cluster(self)
self.show_step(9)
self.show_step(8)
if vsrx_setup_result:
self.fuel_web.run_ostf(
cluster_id=self.cluster_id, should_fail=1,
failed_test_name=['Check that required services are running']
)
self.show_step(10)
self.show_step(9)
TestContrailCheck(self).cloud_check(['contrail'])
@test(depends_on=[SetupEnvironment.prepare_slaves_5],
@ -697,11 +667,12 @@ class SRIOVTests(TestBasic):
"""Check updating core repos with Contrail plugin and SRIOV.
Scenario:
1. Deploy cluster with some
controller,
compute+cinder,
compute+sriov and
contrail-specified nodes
1. Deploy cluster with with following node configuration:
node-01: 'controller';
node-02: 'compute', 'cinder';
node-03: 'contrail-controller';
node-04: 'contrail-analytics';
node-05: 'contrail-analytics-db';
2. Run 'fuel-mirror create -P ubuntu -G mos ubuntu'
on the master node
3. Run 'fuel-mirror apply -P ubuntu -G mos ubuntu
@ -723,8 +694,8 @@ class SRIOVTests(TestBasic):
conf_nodes = {
'slave-01': ['controller'],
'slave-02': ['compute', 'cinder'],
'slave-03': ['contrail-config', 'contrail-control'],
'slave-04': ['contrail-db', 'contrail-analytics'],
'slave-03': ['contrail-controller'],
'slave-04': ['contrail-analytics'],
'slave-05': ['contrail-analytics-db'],
}
self.fuel_web.update_nodes(self.cluster_id, conf_nodes)