Exemple #1
0
    def contrail_smoke(self):
        """Deploy a cluster with Contrail Plugin

        Scenario:
            1. Revert snapshot "ready_with_3_slaves"
            2. Create cluster
            3. Add 1 node with contrail-config, contrail-control and
               contrail-db roles
            4. Add a node with controller role
            4. Add a node with compute role
            6. Enable Contrail plugin
            5. Deploy cluster with plugin

        Duration 90 min

        """
        plugin.prepare_contrail_plugin(self, slaves=3)

        # enable plugin in contrail settings
        plugin.activate_plugin(self)

        self.fuel_web.update_nodes(
            self.cluster_id, {
                'slave-01':
                ['contrail-config', 'contrail-control', 'contrail-db'],
                'slave-02': ['controller'],
                'slave-03': ['compute'],
            })

        # deploy cluster
        openstack.deploy_cluster(self)
    def contrail_smoke(self):
        """Deploy a cluster with Contrail Plugin.

        Scenario:
            1. Create an environment with "Neutron with tunneling
               segmentation" as a network configuration
            2. Enable Contrail plugin
            3. Add a node with contrail-controller
            4. Add a node with contrail-analytics and
               contrail-analytics-db roles
            4. Add a node with controller role
            5. Add a node with compute role
            6. Deploy cluster with plugin

        Duration 90 min

        """
        self.show_step(1)
        plugin.prepare_contrail_plugin(self, slaves=5)

        self.show_step(2)
        plugin.activate_plugin(self)

        plugin.show_range(self, 3, 6)
        self.fuel_web.update_nodes(
            self.cluster_id, {
                'slave-01': ['contrail-controller'],
                'slave-02': ['contrail-analytics', 'contrail-analytics-db'],
                'slave-03': ['controller'],
                'slave-04': ['compute'],
            })

        self.show_step(6)
        openstack.deploy_cluster(self)
        TestContrailCheck(self).cloud_check(['contrail'])
    def contrail_ceph_multirole(self):
        """Check deploy contrail with Controller + Ceph multirole.

        Scenario:
            1. Create an environment with "Neutron with tunneling
               segmentation" as a network configuration and CEPH storage
            2. Enable and configure Contrail plugin
            3. Add 3 nodes with "controller" + "Ceph-OSD" multirole
            4. Add 2 nodes with "compute" role
            5. Add a node with 'contrail-controller' role
            6. Add 2 nodes with 'contrail-analytics-db',
               "contrail-analytics" roles
            7. Add a node with 'contrail-analytics-db' role
            8. Deploy cluster with plugin
            9. Run contrail health check tests
            10. Run OSTF tests

        """
        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.show_step(2)
        plugin.activate_plugin(self)

        # activate vSRX image
        vsrx_setup_result = vsrx.activate()

        plugin.show_range(self, 3, 8)
        self.fuel_web.update_nodes(
            self.cluster_id,
            {
                'slave-01': ['controller', 'ceph-osd'],
                'slave-02': ['controller', 'ceph-osd'],
                'slave-03': ['controller', 'ceph-osd'],
                'slave-04': ['compute'],
                'slave-05': ['compute'],
                'slave-06': ['contrail-controller'],
                'slave-07': ['contrail-analytics-db', 'contrail-analytics'],
                'slave-08': ['contrail-analytics-db', 'contrail-analytics'],
                'slave-09': ['contrail-analytics-db']
            })

        self.show_step(8)
        openstack.deploy_cluster(self)
        self.show_step(9)
        TestContrailCheck(self).cloud_check(['contrail'])

        self.show_step(10)
        if vsrx_setup_result:
            self.fuel_web.run_ostf(cluster_id=self.cluster_id,
                                   test_sets=['smoke', 'sanity', 'ha'])
    def contrail_bvt(self):
        """BVT test for contrail plugin.

        Deploy cluster with 1 controller, 1 compute,
        3 contrail-config, contrail-control, contrail-db roles
        and install contrail plugin

        Scenario:
            1. Create an environment with "Neutron with tunneling
               segmentation" as a network configuration
            2. Enable Contrail plugin
            3. Add 2 nodes with contrail-controller role
            4. Add 2 nodes with contrail-analytics-db role.
            5. Add a node with contrail-analytics + contrail-analytics-db roles
            6. Add a node with contrail-analytics + contrail-controller roles
            7. Add a node with contrail-analytics role
            8. Add a node with with controller role
            9. Add a node with compute + cinder role
            10. Deploy cluster with plugin
            11. Run contrail health check tests
            12. Run OSTF tests

        Duration 110 min

        """
        self.show_step(1)
        plugin.prepare_contrail_plugin(self, slaves=9)

        self.show_step(2)
        plugin.activate_plugin(self)
        # activate vSRX image
        vsrx_setup_result = vsrx.activate()

        plugin.show_range(self, 3, 10)
        self.fuel_web.update_nodes(
            self.cluster_id, {
                'slave-01': ['contrail-controller'],
                'slave-02': ['contrail-controller'],
                'slave-03': ['contrail-controller', 'contrail-analytics'],
                'slave-04': ['contrail-analytics-db', 'contrail-analytics'],
                'slave-05': ['contrail-analytics-db'],
                'slave-06': ['contrail-analytics-db'],
                'slave-07': ['contrail-analytics'],
                'slave-08': ['controller'],
                'slave-09': ['compute', 'cinder']
            })

        self.show_step(10)
        openstack.deploy_cluster(self)

        self.show_step(11)
        TestContrailCheck(self).cloud_check(['contrail'])

        self.show_step(12)
        if vsrx_setup_result:
            self.fuel_web.run_ostf(cluster_id=self.cluster_id,
                                   timeout=OSTF_RUN_TIMEOUT)
    def contrail_vlan(self):
        """Check deploy contrail on an environment with vlan-tagging.

        Scenario:
            1. Create an environment with "Neutron with tunneling
               segmentation" as a network configuration
            2. Enable and configure Contrail plugin
            3. Configure VLAN on network interfaces
            4. Add 3 nodes with controller role
            5. Add 2 nodes with "compute" and "Storage-cinder" roles
            6. Add 2 nodes with 'contrail-controller' role
            7. Add a node with "contrail-analytics" role
            8. Add a node with 'contrail-analytics-db' role
            9. Deploy cluster with plugin
            10. Run contrail health check tests
            11. Run OSTF tests

        Duration 120 min

        """
        self.show_step(1)
        plugin.prepare_contrail_plugin(self, slaves=9)

        self.show_step(2)
        plugin.activate_plugin(self)

        self.show_step(3)
        openstack.assign_vlan(self, storage=101, management=102)

        # activate vSRX image
        vsrx_setup_result = vsrx.activate()

        plugin.show_range(self, 4, 9)
        self.fuel_web.update_nodes(
            self.cluster_id,
            {
                'slave-01': ['controller'],
                'slave-02': ['controller'],
                'slave-03': ['controller'],
                'slave-04': ['compute', 'cinder'],
                'slave-05': ['compute', 'cinder'],
                'slave-06': ['contrail-controller'],
                'slave-07': ['contrail-controller'],
                'slave-08': ['contrail-analytics'],
                'slave-09': ['contrail-analytics-db']
            })

        self.show_step(9)
        openstack.deploy_cluster(self)
        self.show_step(10)
        TestContrailCheck(self).cloud_check(['contrail'])

        self.show_step(11)
        if vsrx_setup_result:
            self.fuel_web.run_ostf(
                cluster_id=self.cluster_id,
                test_sets=['smoke', 'sanity', 'ha'])
    def contrail_cinder_ceph_multirole(self):
        """Check deploy contrail with Controller + Cinder + Ceph multirole

        Scenario:
            1. Create an environment with "Neutron with tunneling
               segmentation" as a network configuration and CEPH storage
            2. Enable and configure Contrail plugin
            3. Add 1 node with "controller" + "storage-cinder" +
               "Ceph-OSD" multirole
            4. Add 1 node with "controller" + "storage-cinder" and 1 node
               with "controller" + "Ceph-OSD" multiroles
            5. Add 2 nodes with "compute" role
            6. Add 3 nodes with "contrail-config", "contrail-control" and
               "contrail-db" roles
            7. Deploy cluster with plugin
            8. Run OSTF tests

        """

        plugin.prepare_contrail_plugin(
            self, slaves=9, options={'images_ceph': True}
        )

        # enable plugin in contrail settings
        plugin.activate_plugin(self)

        # activate vSRX image
        vsrx_setup_result = plugin.activate_vsrx()

        self.fuel_web.update_nodes(
            self.cluster_id,
            {
                'slave-01': ['controller', 'cinder', 'ceph-osd'],
                'slave-02': ['controller', 'cinder'],
                'slave-03': ['controller', 'ceph-osd'],
                'slave-04': ['compute'],
                'slave-05': ['compute'],
                'slave-06': ['contrail-config',
                             'contrail-control',
                             'contrail-db'],
                'slave-07': ['contrail-config',
                             'contrail-control',
                             'contrail-db'],
                'slave-08': ['contrail-config',
                             'contrail-control',
                             'contrail-db']
            })

        # deploy cluster
        openstack.deploy_cluster(self)

        # run OSTF tests
        if vsrx_setup_result:
            self.fuel_web.run_ostf(cluster_id=self.cluster_id)
    def contrail_ceilometer(self):
        """Check deploy environment with Contrail and Ceilometer

        Scenario:
            1. Create an environment with "Neutron with tunneling
               segmentation" as a network configuration and CEPH storage
            2. Enable and configure Contrail plugin
            3. Add 2 nodes with "controller" role
            4. Add a node with "controller" + "MongoDB" multirole
            5. Add a node with "compute"+"ceph-OSD"+"cinder" multiroles
            6. Add node with "compute" + "ceph-OSD" + " MongoDB" multiroles
            7. Add a node with "MongoDB" role
            8. Add a node with "contrail-config", "contrail-control" and
               "contrail-db" roles
            9. Deploy cluster with plugin
            10. Run OSTF tests

        Duration 120 min

        """

        plugin.prepare_contrail_plugin(
            self,
            slaves=9,
            options={'images_ceph': True,
                     'ceilometer': True})

        # enable plugin in contrail settings
        plugin.activate_plugin(self)
        # activate vSRX image
        vsrx_setup_result = plugin.activate_vsrx()

        self.fuel_web.update_nodes(
            self.cluster_id,
            {
                'slave-01': ['controller'],
                'slave-02': ['controller'],
                'slave-03': ['controller', 'mongo'],
                'slave-04': ['compute', 'ceph-osd', 'mongo'],
                'slave-05': ['compute', 'ceph-osd', 'cinder'],
                'slave-06': ['mongo'],
                'slave-07': ['contrail-config',
                             'contrail-control',
                             'contrail-db'],
            })
        # deploy cluster
        openstack.deploy_cluster(self)

        if vsrx_setup_result:
            self.fuel_web.run_ostf(
                cluster_id=self.cluster_id,
                test_sets=['smoke', 'sanity', 'ha', 'tests_platform'],)
    def contrail_update_core_repos(self):
        """Check updating core repos with Contrail plugin.

        Scenario:
            1. Deploy cluster with Contrail plugin
            2. Run 'fuel-mirror create -P ubuntu -G mos ubuntu'
               on the master node
            3. Run 'fuel-mirror apply -P ubuntu -G mos ubuntu
               --env <env_id> --replace' on the master node
            4. Update repos for all deployed nodes with command
               "fuel --env <env_id> node --node-id 1,2,3,4,5,6,7,9,10
               --tasks setup_repositories" on the master node
            5. Run OSTF and check Contrail node status.

        """
        self.show_step(1)
        plugin.prepare_contrail_plugin(self, slaves=5)
        plugin.activate_plugin(self)
        vsrx_setup_result = vsrx.activate()
        conf_nodes = {
            'slave-01': ['controller'],
            'slave-02': ['compute', 'cinder'],
            'slave-03': ['contrail-controller'],
            'slave-04': ['contrail-analytics'],
            'slave-05': ['contrail-analytics-db']
        }
        self.fuel_web.update_nodes(self.cluster_id, conf_nodes)
        openstack.deploy_cluster(self)

        plugin.show_range(self, 2, 5)

        nodes = self.fuel_web.client.list_cluster_nodes(self.cluster_id)
        node_ids = ','.join([str(node['id']) for node in nodes])
        commands = [
            'fuel-mirror create -P ubuntu -G mos ubuntu',
            ('fuel-mirror apply -P ubuntu -G mos ubuntu '
             '--env {0} --replace'.format(self.cluster_id)),
            ('fuel --env {0} node --node-id {1} '
             '--tasks setup_repositories'.format(self.cluster_id, node_ids))
        ]
        for cmd in commands:
            logger.info("Execute commmand: '{0}' om master node.".format(cmd))
            result = self.env.d_env.get_admin_remote().execute(cmd)
            asserts.assert_equal(
                result['exit_code'], 0,
                'Command "{0}" fails with message: "{1}".'.format(
                    cmd, result['stderr']))
        if vsrx_setup_result:
            self.show_step(5)
            self.fuel_web.run_ostf(cluster_id=self.cluster_id)
            TestContrailCheck(self).cloud_check(['contrail'])
    def contrail_vlan(self):
        """Check deploy contrail on an environment with vlan-tagging

        Scenario:
            1. Create an environment with "Neutron with tunneling
               segmentation" as a network configuration
            2. Enable and configure Contrail plugin
            3. Add 3 nodes with controller role
            4. Add 2 nodes with "compute" and "Storage-cinder" roles
            5. Add a node with "contrail-config" and "contrail-db" roles
            6. Add a node with "contrail-db", "contrail-control" roles
            7. Add a node with "contrail-db" role
            8. Configure VLAN on network interfaces
            9. Deploy cluster with plugin
            10. Run OSTF tests

        Duration 120 min

        """
        plugin.prepare_contrail_plugin(self, slaves=9)

        # enable plugin in contrail settings
        plugin.activate_plugin(self)

        # configure vlan on storage and management interfaces
        openstack.assign_vlan(self, storage=101, management=102)

        # activate vSRX image
        vsrx_setup_result = plugin.activate_vsrx()

        self.fuel_web.update_nodes(
            self.cluster_id,
            {
                'slave-01': ['controller'],
                'slave-02': ['controller'],
                'slave-03': ['controller'],
                'slave-04': ['compute', 'cinder'],
                'slave-05': ['compute', 'cinder'],
                'slave-06': ['contrail-config', 'contrail-db'],
                'slave-07': ['contrail-control', 'contrail-db'],
                'slave-08': ['contrail-db'],
            })

        # deploy cluster
        openstack.deploy_cluster(self)

        if vsrx_setup_result:
            self.fuel_web.run_ostf(
                cluster_id=self.cluster_id,
                test_sets=['smoke', 'sanity', 'ha'])
    def systest_setup(self):
        """Setup for system test suite.

        Scenario:
            1. Create an environment with "Neutron with tunneling
               segmentation" as a network configuration
            2. Enable Contrail plugin
            3. Add 1 node with contrail-controller, contrail-analytic roles
            4. Add a node with controller, mongo roles
            5. Add a node with compute role
            6. Add a node contrail-analytics-db role
            7. Deploy cluster with plugin
            8. Run OSTF.

        Duration 90 min

        """
        self.show_step(1)
        plugin.prepare_contrail_plugin(self,
                                       slaves=5,
                                       options={'ceilometer': True})

        # activate vSRX image
        vsrx_setup_result = vsrx.activate()

        self.show_step(2)
        plugin.activate_plugin(self)

        plugin.show_range(self, 3, 7)
        self.fuel_web.update_nodes(
            self.cluster_id, {
                'slave-01': ['contrail-controller', 'contrail-analytics'],
                'slave-02': ['controller', 'mongo'],
                'slave-03': ['compute'],
                'slave-04': ['compute'],
                'slave-05': ['contrail-analytics-db'],
            })

        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', 'tests_platform'],
                timeout=OSTF_RUN_TIMEOUT)
        TestContrailCheck(self).cloud_check(['contrail'])

        self.env.make_snapshot("systest_setup", is_make=True)
    def contrail_cinder_multirole(self):
        """Check deploy contrail with Controller + Cinder multirole.

        Scenario:
            1. Create an environment with "Neutron with tunneling
               segmentation" as a network configuration
            2. Enable and configure Contrail plugin
            3. Add 3 nodes with "controller" + "storage-cinder" multirole
            4. Add 2 nodes with "compute" role
            5. Add 2 node with 'contrail-controller',
               "contrail-analytics" roles
            6. Add a node with 'contrail-analytics-db' role
            7. Deploy cluster with plugin
            8. Run contrail health check tests
            9. Run OSTF tests

        """
        self.show_step(1)
        plugin.prepare_contrail_plugin(self, slaves=9)

        self.show_step(2)
        plugin.activate_plugin(self)

        # activate vSRX image
        vsrx_setup_result = vsrx.activate()

        plugin.show_range(self, 3, 7)
        self.fuel_web.update_nodes(
            self.cluster_id,
            {
                'slave-01': ['controller', 'cinder'],
                'slave-02': ['controller', 'cinder'],
                'slave-03': ['controller', 'cinder'],
                'slave-04': ['compute'],
                'slave-05': ['compute'],
                'slave-06': ['contrail-controller', 'contrail-analytics'],
                'slave-07': ['contrail-analytics', 'contrail-controller'],
                'slave-08': ['contrail-analytics-db']
            })

        self.show_step(7)
        openstack.deploy_cluster(self)
        self.show_step(8)
        TestContrailCheck(self).cloud_check(['contrail'])

        self.show_step(9)
        if vsrx_setup_result:
            self.fuel_web.run_ostf(cluster_id=self.cluster_id,
                                   test_sets=['smoke', 'sanity', 'ha'])
    def contrail_ha_baseos(self):
        """Check deploy HA-contrail on an environment with a base-os node

        Scenario:
            1. Create an environment with "Neutron with tunneling
               segmentation" as a network configuration
            2. Enable and configure Contrail plugin
            3. Add a node with controller role
            4. Add 2 nodes with "compute" and "Storage-cinder" roles
            5. Add a node with Base-OS role
            6. Add 3 nodes with "contrail-config", "contrail-control" and
             "contrail-db" roles
            7. Deploy cluster with plugin
            8. Run OSTF tests

        Duration 120 min

        """
        plugin.prepare_contrail_plugin(self, slaves=9)

        # enable plugin in contrail settings
        plugin.activate_plugin(self)
        # activate vSRX image
        vsrx_setup_result = plugin.activate_vsrx()

        self.fuel_web.update_nodes(
            self.cluster_id,
            {
                'slave-01': ['controller'],
                'slave-02': ['compute', 'cinder'],
                'slave-03': ['compute', 'cinder'],
                'slave-04': ['base-os'],
                'slave-05': ['contrail-config',
                             'contrail-control',
                             'contrail-db'],
                'slave-06': ['contrail-config',
                             'contrail-control',
                             'contrail-db'],
                'slave-07': ['contrail-config',
                             'contrail-control',
                             'contrail-db'],
            })

        # deploy cluster
        openstack.deploy_cluster(self)

        if vsrx_setup_result:
            self.fuel_web.run_ostf(cluster_id=self.cluster_id)
    def contrail_ha_baseos(self):
        """Check deploy HA-contrail on an environment with a base-os node.

        Scenario:
            1. Create an environment with "Neutron with tunneling
               segmentation" as a network configuration
            2. Enable and configure Contrail plugin
            3. Add a node with controller role
            4. Add 2 nodes with "compute" and "Storage-cinder" roles
            5. Add a node with Base-OS role
            6. Add a node with 'contrail-controller',
               "contrail-analytics" roles
            7. Add a node with "contrail-analytics","contrail-analytics-db"
               role
            8. Deploy cluster with plugin
            9. Run contrail health check tests
            10. Run OSTF tests

        Duration 120 min

        """
        self.show_step(1)
        plugin.prepare_contrail_plugin(self, slaves=9)

        self.show_step(2)
        plugin.activate_plugin(self)
        # activate vSRX image
        vsrx_setup_result = vsrx.activate()

        plugin.show_range(self, 3, 8)
        self.fuel_web.update_nodes(
            self.cluster_id,
            {
                'slave-01': ['controller'],
                'slave-02': ['compute', 'cinder'],
                'slave-03': ['compute', 'cinder'],
                'slave-04': ['base-os'],
                'slave-05': ['contrail-controller', 'contrail-analytics'],
                'slave-06': ['contrail-analytics-db', 'contrail-analytics'],
            })

        self.show_step(8)
        openstack.deploy_cluster(self)
        self.show_step(9)
        TestContrailCheck(self).cloud_check(['contrail'])
        self.show_step(10)
        if vsrx_setup_result:
            self.fuel_web.run_ostf(cluster_id=self.cluster_id)
    def contrail_ha(self):
        """Check Contrail deploy on HA environment

        Scenario:
            1. Create an environment with "Neutron with tunneling
               segmentation" as a network configuration and CEPH storage
            2. Enable and configure Contrail plugin
            3. Add 3 nodes with controller role
            4. Add 2 nodes with "compute" and "Ceph-OSD" roles
            5. Add a node with contrail-config role
            6. Add a node with contrail-control role
            7. Add a node with contrail-db role
            8. Deploy cluster with plugin
            9. Run OSTF tests

        Duration 120 min

        """

        plugin.prepare_contrail_plugin(
            self, slaves=9, options={'images_ceph': True}
        )

        # enable plugin in contrail settings
        plugin.activate_plugin(self)
        # activate vSRX image
        vsrx_setup_result = plugin.activate_vsrx()

        self.fuel_web.update_nodes(
            self.cluster_id,
            {
                'slave-01': ['controller'],
                'slave-02': ['controller'],
                'slave-03': ['controller'],
                'slave-04': ['compute', 'ceph-osd'],
                'slave-05': ['compute', 'ceph-osd'],
                'slave-06': ['contrail-config'],
                'slave-07': ['contrail-control'],
                'slave-08': ['contrail-db'],
            })

        # deploy cluster
        openstack.deploy_cluster(self)

        if vsrx_setup_result:
            self.fuel_web.run_ostf(cluster_id=self.cluster_id)
Exemple #15
0
    def contrail_bvt(self):
        """BVT test for contrail plugin
        Deploy cluster with 1 controller, 1 compute,
        3 contrail-config, contrail-control, contrail-db roles
        and install contrail plugin

        Scenario:
            1. Revert snapshot "ready_with_9_slaves"
            2. Create cluster
            3. Add 3 nodes with contrail-db role
            4. Add a node with contrail-config role
            5. Add a node with contrail-control role
            6. Add a node with with controller role
            7. Add a node with compute + cinder role
            8. Enable Contrail plugin
            9. Deploy cluster with plugin
            10. Create net and subnet
            11. Run OSTF tests

        Duration 110 min

        """
        plugin.prepare_contrail_plugin(self, slaves=9)

        # enable plugin in contrail settings
        plugin.activate_plugin(self)
        # activate vSRX image
        vsrx_setup_result = plugin.activate_vsrx()

        self.fuel_web.update_nodes(
            self.cluster_id, {
                'slave-01': ['contrail-config'],
                'slave-02': ['contrail-control'],
                'slave-03': ['contrail-db'],
                'slave-04': ['contrail-db'],
                'slave-05': ['contrail-db'],
                'slave-06': ['controller'],
                'slave-07': ['compute', 'cinder'],
            })

        # deploy cluster
        openstack.deploy_cluster(self)

        if vsrx_setup_result:
            self.fuel_web.run_ostf(cluster_id=self.cluster_id)
    def contrail_sriov_delete_sriov(self):
        """Verify that SRiOV 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. Deploy cluster with following node configuration:
                node-01: 'controller';
                node-02: 'controller';
                node-03: 'controller', 'cinder';
                node-04: 'contrail-controller';
                node-05: 'contrail-analytics';
                node-06: 'contrail-analytics-db';
                node-07: 'compute';
                node-08: 'compute';
                node-09: 'contrail-analytics-db';
                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()

        self.show_step(2)
        # enable plugin
        plugin.activate_plugin(self)
        # 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'])
        conf_no_dpdk = {
            'slave-01': ['controller'],
            'slave-02': ['controller'],
            'slave-03': ['controller', 'cinder'],
            'slave-04': ['contrail-controller'],
            'slave-05': ['contrail-analytics'],
            'slave-06': ['contrail-analytics-db'],
            'slave-07': ['compute'],
            'slave-08': ['compute'],
            'slave-09': ['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)
        # 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, should_fail=1,
                failed_test_name=[
                    'Check network connectivity from SRIOV '
                    'instance via floating IP'])
            self.show_step(5)
            TestContrailCheck(self).cloud_check(['sriov', 'contrail'])

        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(7)
        openstack.deploy_cluster(self)

        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(9)
            TestContrailCheck(self).cloud_check(['contrail'])
    def contrail_sriov_add_sriov(self):
        """Verify that SRiOV 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. Deploy cluster with following node configuration:
                node-01: 'controller', 'ceph-osd';
                node-02: 'contrail-controller';
                node-03: 'contrail-analytics', 'contrail-analytics-db';
                node-04: 'compute', 'ceph-osd';
                node-05: 'compute', 'ceph-osd';
            4. Run OSTF tests
            5. Run contrail health check tests
            6. Add one node with following configuration:
                node-bm: "compute"(sriov);
            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()

        self.show_step(2)
        # enable plugin
        plugin.activate_plugin(self)
        # activate vSRX image
        vsrx_setup_result = vsrx.activate()

        plugin.show_range(self, 3, 5)
        conf_nodes = {
            'slave-01': ['controller', 'ceph-osd'],
            'slave-02': ['contrail-controller'],
            'slave-03': ['contrail-analytics-db', 'contrail-analytics'],
            'slave-04': ['compute', 'ceph-osd'],
            'slave-05': ['compute', 'ceph-osd'],
        }
        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)
        openstack.assign_vlan(self, storage=102, management=101)
        # 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(['contrail'])

        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(7)
        openstack.deploy_cluster(self)

        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(9)
            TestContrailCheck(self).cloud_check(['sriov', 'contrail'])
    def contrail_ha_sriov(self):
        """Check Contrail deploy on HA environment.

        Scenario:
            1. Create an environment with "Neutron with tunneling
               segmentation" as a network configuration and CEPH storage
            2. Enable and configure Contrail plugin
            3. 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-sriov: 'compute';
            4. Run OSTF tests
            5. Run contrail health check tests

        Duration 120 min

        """
        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()

        self.show_step(2)
        # enable plugin
        plugin.activate_plugin(self)
        # 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'])

        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)
        # 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', 'ha'],
                should_fail=2,
                failed_test_name=[
                    'Instance live migration',
                    'Check network connectivity from SRIOV instance via'
                    ' floating IP'])
            self.show_step(5)
            TestContrailCheck(self).cloud_check(['sriov', 'contrail'])
    def contrail_sriov_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. Deploy cluster with following node configuration:
               node-01: 'controller';
               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
            6. Deploy changes
            7. Run OSTF tests
            8. 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)
        # enable plugin
        plugin.activate_plugin(self)
        # 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'])
        conf_no_compute = {
            'slave-01': ['controller'],
            'slave-02': ['contrail-controller', 'contrail-analytics'],
            'slave-03': ['compute', 'cinder'],
            'slave-04': ['controller'],
            'slave-05': ['contrail-analytics-db'],
        }
        conf_controller = {'slave-04': ['controller']}

        self.fuel_web.update_nodes(
            self.cluster_id,
            nodes_dict=dict(conf_no_compute, **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
        openstack.deploy_cluster(self)
        # Run OSTF tests
        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'])
            TestContrailCheck(self).cloud_check(['sriov', 'contrail'])

        # 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=2,
                failed_test_name=[
                    'Check that required  services are running',
                    'Check network connectivity from SRIOV '
                    'instance via floating IP'])
            self.show_step(8)
            TestContrailCheck(self).cloud_check(['sriov', 'contrail'])
    def contrail_sriov_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. 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-6: 'contrail-analytics', 'contrail-analytics-db';
                node-bm: 'compute'(sriov);
            4. Run OSTF tests
            5. Add one node with following configuration:
                node-5: "controller", "ceph-osd";
            6. Deploy changes
            7. Run OSTF tests
            8. Run contrail health check tests

        """
        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)
        # enable plugin
        plugin.activate_plugin(self)
        # activate vSRX image
        vsrx_setup_result = vsrx.activate()

        self.bm_drv.setup_fuel_node(self,
                                    cluster_id=self.cluster_id,
                                    roles=['compute'])
        conf_nodes = {
            'slave-01': ['controller', 'ceph-osd'],
            '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']}

        # 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)
        # Deploy cluster
        openstack.deploy_cluster(self)
        # Run OSTF tests
        self.show_step(4)
        # FIXME: remove shouldfail, when livemigration+DPDK works
        if vsrx_setup_result:
            self.fuel_web.run_ostf(
                cluster_id=self.cluster_id, should_fail=2,
                failed_test_name=[
                    'Instance live migration',
                    'Check network connectivity from SRIOV instance via'
                    ' floating IP'])
            TestContrailCheck(self).cloud_check(['sriov', 'contrail'])

        # Add Compute node and check again
        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(6)
        openstack.deploy_cluster(self)
        # Run OSTF tests
        self.show_step(7)
        # FIXME: remove shouldfail, when livemigration+DPDK works
        if vsrx_setup_result:
            self.fuel_web.run_ostf(
                cluster_id=self.cluster_id, should_fail=2,
                failed_test_name=[
                    'Instance live migration',
                    'Check network connectivity from SRIOV instance via'
                    ' floating IP'])
            self.show_step(8)
            TestContrailCheck(self).cloud_check(['sriov', 'contrail'])
Exemple #21
0
    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=9)
        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', 'dpdk-on-vf'])
        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
        fuel.add_kernel_params(self)
        # 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', 'ha'],
                should_fail=2,
                failed_test_name=[
                    'Instance live migration',
                    'Check network connectivity from SRIOV instance via'
                    ' floating IP'
                ])
            TestContrailCheck(self).cloud_check(
                ['dpdk', 'sriov', 'contrail'],
                should_fail=[
                    "test_dpdk_boot_snapshot_vm",
                    "test_dpdk_check_public_connectivity_from_instance"
                ])

        # 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', 'sriov', 'contrail'],
                should_fail=[
                    "test_dpdk_boot_snapshot_vm",
                    "test_dpdk_check_public_connectivity_from_instance"
                ])
Exemple #22
0
    def contrail_add_to_dpdk_sriov(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. Add dpdk+compute node
            4. Add nodes with following node configuration:
               node-1: 'controller';
               node-2: 'contrail-controller';
               node-3: 'compute', 'cinder',
               node-4: 'contrail-analytics', 'contrail-analytics-db';
            5. Enable sriov on interfaces of dpdk+compute node.
            6. Deploy cluster
            7. Run OSTF
            8. Run contrail health check tests
            9. Add nodes with configurations:
               node-5: 'contrail-controller';
               node-6: 'contrail-controller';
               node-7: 'contrail-analytics-db';
               node-8: 'contrail-analytics';
               node-9: 'contrail-analytics', 'contrail-analytics-db';
            10. Deploy changes
            11. Run OSTF
            12. Run contrail health check tests

        """
        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)
        # activate vSRX image
        vsrx_setup_result = vsrx.activate()

        plugin.show_range(self, 3, 5)
        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': ['contrail-controller'],
            'slave-03': ['compute', 'cinder'],
            'slave-04': ['contrail-analytics', 'contrail-analytics-db']
        }
        conf_controller = {
            'slave-05': ['contrail-controller'],
            'slave-06': ['contrail-controller'],
            'slave-07': ['contrail-analytics-db'],
            'slave-08': ['contrail-analytics'],
            'slave-09': ['contrail-analytics', '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)
        self.show_step(5)
        # Enable SRIOV on interface
        openstack.enable_sriov(self)
        # 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,
                                   should_fail=1,
                                   failed_test_name=[
                                       'Check network connectivity from SRIOV '
                                       'instance via floating IP'
                                   ])
            self.show_step(8)
            TestContrailCheck(self).cloud_check(
                ['dpdk', 'contrail'],
                should_fail=[
                    "test_dpdk_boot_snapshot_vm",
                    "test_dpdk_check_public_connectivity_from_instance"
                ])

        # Add Contrail node and check again
        self.show_step(9)
        # 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)
        fuel.add_kernel_params()
        # Deploy cluster
        self.show_step(10)
        openstack.deploy_cluster(self)
        # Run OSTF tests
        if vsrx_setup_result:
            self.show_step(11)
            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(12)
            TestContrailCheck(self).cloud_check(
                ['dpdk', 'contrail'],
                should_fail=["test_dpdk_boot_snapshot_vm"])
Exemple #23
0
    def contrail_ha_dpdk(self):
        """Check Contrail deploy on HA environment with dpdk.

        Scenario:
            1. Create an environment with "Neutron with tunneling
               segmentation" as a network configuration and CEPH storage
            2. Enable and configure Contrail plugin
            3. 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';
            4. Run OSTF tests
            5. Run contrail health check tests

        Duration 120 min

        """
        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()

        self.show_step(2)
        # activate plugin with DPDK feature
        plugin.activate_dpdk(self)
        # 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_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-09': ['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)
        # Deploy cluster
        openstack.deploy_cluster(self)
        # Run OSTF tests
        # FIXME: remove shouldfail, when livemigration+DPDK works
        if vsrx_setup_result:
            self.show_step(4)
            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(5)
            TestContrailCheck(self).cloud_check(
                ['dpdk', 'contrail'],
                should_fail=["test_dpdk_boot_snapshot_vm"])
Exemple #24
0
    def contrail_dpdk_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. 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';
            4. Run OSTF tests
            5. Run contrail health check tests
            6. Add one node with following configuration:
                node-7: 'controller', 'ceph-osd';
            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,
                                           'volumes_ceph': True,
                                           'ephemeral_ceph': True,
                                           'objects_ceph': True,
                                           'volumes_lvm': False
                                       })
        self.bm_drv.host_prepare()

        self.show_step(2)
        # activate plugin with DPDK feature
        plugin.activate_dpdk(self)
        # 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_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)
        # Deploy cluster
        openstack.deploy_cluster(self)
        # Run OSTF tests
        self.show_step(4)
        # 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(5)
            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)
        # 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"])
    def contrail_murano(self):
        """Check deploy contrail with murano.

        Scenario:
            1. Create an environment with "Neutron with tunneling
               segmentation" as a network configuration
            2. Enable murano
            3. Enable and configure Contrail plugin
            4. Add a node with controller role
            5. Add a node with "compute" and "Storage-cinder" roles
            6. Add a node with 'contrail-controller' role
            7. Add a node with "contrail-analytics" role
            8. Add a node with "contrail-analytics-db" role
            9. Deploy cluster with plugin
            10. Run contrail health check tests
            11. Run OSTF tests

        Duration 120 min

        """
        min_slave_ram = 10000

        plugin.show_range(self, 1, 3)
        plugin.prepare_contrail_plugin(self, slaves=5,
                                       options={'murano': True})

        self.show_step(3)
        plugin.activate_plugin(self, contrail_api_public_port="8098")

        # activate vSRX image
        vsrx_setup_result = vsrx.activate()

        plugin.show_range(self, 4, 9)
        self.fuel_web.update_nodes(
            self.cluster_id,
            {
                'slave-01': ['controller'],
                'slave-02': ['compute', 'cinder'],
                'slave-03': ['contrail-controller'],
                'slave-04': ['contrail-analytics'],
                'slave-05': ['contrail-analytics-db']
            })

        self.show_step(9)
        openstack.deploy_cluster(self)
        self.show_step(10)
        TestContrailCheck(self).cloud_check(['contrail'])

        self.show_step(11)
        check_ram_result = openstack.check_slave_memory(min_slave_ram)
        if vsrx_setup_result and check_ram_result:
            self.fuel_web.run_ostf(
                cluster_id=self.cluster_id,
                test_sets=['smoke', 'sanity', 'tests_platform'],
                timeout=settings.OSTF_RUN_TIMEOUT
                )
        elif vsrx_setup_result:
            logger.warning('Ostf tests will be run without platform tests')
            self.fuel_web.run_ostf(
                cluster_id=self.cluster_id,
                test_sets=['smoke', 'sanity'],
                timeout=settings.OSTF_RUN_TIMEOUT
                )
    def contrail_sriov_update_core_repos(self):
        """Check updating core repos with Contrail plugin and SRIOV.

        Scenario:
            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
               --env <env_id> --replace' on the master node
            4. Update repos for all deployed nodes with command
               "fuel --env <env_id> node --node-id 1,2,3,4,5,6,7,9,10
               --tasks setup_repositories" on the master node
            5. Run OSTF and check Contrail node status.

        """
        self.show_step(1)
        plugin.prepare_contrail_plugin(self, slaves=5)
        self.bm_drv.host_prepare()
        # enable plugin
        plugin.activate_plugin(self)
        vsrx_setup_result = vsrx.activate()
        self.bm_drv.setup_fuel_node(self, cluster_id=self.cluster_id,
                                    roles=['compute'])
        conf_nodes = {
            'slave-01': ['controller'],
            'slave-02': ['compute', 'cinder'],
            'slave-03': ['contrail-controller'],
            'slave-04': ['contrail-analytics'],
            'slave-05': ['contrail-analytics-db'],
        }
        self.fuel_web.update_nodes(self.cluster_id, conf_nodes)
        self.bm_drv.update_vm_node_interfaces(self, self.cluster_id)
        # Enable SRIOV on interface
        openstack.enable_sriov(self)
        openstack.deploy_cluster(self)

        plugin.show_range(self, 2, 5)
        nodes = self.fuel_web.client.list_cluster_nodes(self.cluster_id)
        node_ids = ','.join([str(node['id']) for node in nodes])
        commands = [
            'fuel-mirror create -P ubuntu -G mos ubuntu',
            ('fuel-mirror apply -P ubuntu -G mos ubuntu '
             '--env {0} --replace'.format(self.cluster_id)),
            ('fuel --env {0} node --node-id {1} '
             '--tasks setup_repositories'.format(self.cluster_id, node_ids))
        ]
        for cmd in commands:
            logger.info("Execute commmand: '{0}' om master node.".format(cmd))
            result = self.env.d_env.get_admin_remote().execute(cmd)
            asserts.assert_equal(
                result['exit_code'], 0,
                'Command "{0}" fails with message: "{1}".'.format(
                    cmd, result['stderr']))
        if vsrx_setup_result:
            self.show_step(5)
            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'])
            TestContrailCheck(self).cloud_check(['contrail'])
Exemple #27
0
    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', 'dpdk-on-vf'])
        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
        fuel.add_kernel_params(self)
        # 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,
                test_sets=['smoke', 'sanity', 'ha'],
                should_fail=2,
                failed_test_name=[
                    'Instance live migration',
                    'Check network connectivity from SRIOV instance via'
                    ' floating IP'
                ])
            TestContrailCheck(self).cloud_check(
                ['dpdk', 'sriov', 'contrail'],
                should_fail=[
                    "test_dpdk_boot_snapshot_vm",
                    "test_dpdk_check_public_connectivity_from_instance"
                ])

        # 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,
                test_sets=['smoke', 'sanity', 'ha'],
                should_fail=2,
                failed_test_name=[
                    'Instance live migration',
                    'Check network connectivity from SRIOV instance via'
                    ' floating IP'
                ])
            self.show_step(9)
            TestContrailCheck(self).cloud_check(
                ['dpdk', 'sriov', 'contrail'],
                should_fail=[
                    "test_dpdk_boot_snapshot_vm",
                    "test_dpdk_check_public_connectivity_from_instance"
                ])
Exemple #28
0
    def contrail_dpdk_update_core_repos(self):
        """Check updating core repos with Contrail plugin and DPDK.

        Scenario:
            1. Deploy cluster with some
               controller+mongo,
               compute+ceph-osd,
               compute+dpdk and contrail-specified nodes
            2. Run 'fuel-mirror create -P ubuntu -G mos ubuntu'
               on the master node
            3. Run 'fuel-mirror apply -P ubuntu -G mos ubuntu
               --env <env_id> --replace' on the master node
            4. Update repos for all deployed nodes with command
               "fuel --env <env_id> node --node-id 1,2,3,4,5,6,7,9,10
               --tasks setup_repositories" on the master node
            5. Run OSTF and check Contrail node status.

        """
        self.show_step(1)
        plugin.prepare_contrail_plugin(self,
                                       slaves=5,
                                       options={
                                           'images_ceph': True,
                                           'volumes_ceph': True,
                                           'ephemeral_ceph': True,
                                           'objects_ceph': True,
                                           'volumes_lvm': False,
                                           'osd_pool_size': '1'
                                       })
        self.bm_drv.host_prepare()
        plugin.activate_dpdk(self)
        vsrx_setup_result = vsrx.activate()
        self.bm_drv.setup_fuel_node(self,
                                    cluster_id=self.cluster_id,
                                    roles=['compute', 'dpdk'])
        openstack.setup_hugepages(self)
        conf_nodes = {
            'slave-01': ['controller', 'mongo'],
            'slave-02': ['compute', 'ceph-osd'],
            'slave-03': ['contrail-controller'],
            'slave-04': ['contrail-analytics', 'contrail-analytics-db'],
            'slave-05': ['contrail-analytics-db']
        }
        self.fuel_web.update_nodes(self.cluster_id, conf_nodes)
        self.bm_drv.update_vm_node_interfaces(self, self.cluster_id)
        openstack.deploy_cluster(self)

        plugin.show_range(self, 2, 5)
        nodes = self.fuel_web.client.list_cluster_nodes(self.cluster_id)
        node_ids = ','.join([str(node['id']) for node in nodes])
        commands = [
            'fuel-mirror create -P ubuntu -G mos ubuntu',
            ('fuel-mirror apply -P ubuntu -G mos ubuntu '
             '--env {0} --replace'.format(self.cluster_id)),
            ('fuel --env {0} node --node-id {1} '
             '--tasks setup_repositories'.format(self.cluster_id, node_ids))
        ]
        for cmd in commands:
            logger.info("Execute commmand: '{0}' om master node.".format(cmd))
            result = self.env.d_env.get_admin_remote().execute(cmd)
            asserts.assert_equal(
                result['exit_code'], 0,
                'Command "{0}" fails with message: "{1}".'.format(
                    cmd, result['stderr']))
        if vsrx_setup_result:
            self.show_step(5)
            self.fuel_web.run_ostf(
                cluster_id=self.cluster_id,
                should_fail=1,
                failed_test_name=['Instance live migration'])
            TestContrailCheck(self).cloud_check(
                ['contrail', 'dpdk'],
                should_fail=["test_dpdk_boot_snapshot_vm"])
Exemple #29
0
    def contrail_dpdk_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. 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';
            4. Run OSTF tests
            5. Run contrail health check tests
            6. Delete node "node-dpdk" with "dpdk" and "compute" roles
            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()

        self.show_step(2)
        # activate plugin with DPDK feature
        plugin.activate_dpdk(self)
        # 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)
        # 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'])
Exemple #30
0
    def contrail_no_default(self):
        """Check configured no default contrail parameters via Contrail WEB.

        Scenario:
            1. Install contrail plugin.
            2. Create cluster.
            3. Set following no defaults contrail parameters:
               *contrail_api_port
               *contrail_route_target
               *contrail_gateways
               *contrail_external
               *contrail_asnum
            4. Add nodes:
                1 contrail-controller
                1 contrail-analytics + contrail-analytics-db
                1 controller
                1 compute
            5. Deploy cluster.
            6. Verify that all configured contrail parameters present in
               the Contrail WEB.

        Duration: 2.5 hours

        """
        # constants
        contrail_api_port = '18082'
        contrail_route_target = '4294967295'
        contrail_gateways = '10.109.3.250'
        contrail_external = '10.10.1.0/24'
        contrail_asnum = '65534'
        external_net = 'admin_floating_net'

        self.show_step(1)
        self.show_step(2)
        plugin.prepare_contrail_plugin(self, slaves=5)

        # activate vSRX image
        vsrx.activate()

        self.show_step(3)
        plugin.activate_plugin(self,
                               contrail_api_public_port=contrail_api_port,
                               contrail_route_target=contrail_route_target,
                               contrail_gateways=contrail_gateways,
                               contrail_external=contrail_external,
                               contrail_asnum=contrail_asnum)

        cluster_id = self.fuel_web.get_last_created_cluster()

        self.show_step(4)
        self.fuel_web.update_nodes(
            self.cluster_id, {
                'slave-01': ['contrail-controller'],
                'slave-02': ['contrail-analytics', 'contrail-analytics-db'],
                'slave-03': ['controller'],
                'slave-04': ['compute'],
            })

        self.show_step(5)
        openstack.deploy_cluster(self)
        TestContrailCheck(self).cloud_check(['contrail'])

        self.show_step(6)
        os_ip = self.fuel_web.get_public_vip(cluster_id)
        os_conn = os_actions.OpenStackActions(os_ip, SERVTEST_USERNAME,
                                              SERVTEST_PASSWORD,
                                              SERVTEST_TENANT)
        contrail_client = ContrailClient(os_ip,
                                         contrail_port=contrail_api_port)

        logger.info(
            'Check contrail_asnum, contrail_route_target via Contrail.')
        external_net_id = os_conn.get_network(external_net)['id']
        ext_net = contrail_client.get_net_by_id(
            external_net_id)["virtual-network"]
        fuel_router_target = '{0}:{1}'.format(contrail_asnum,
                                              contrail_route_target)
        contrail_router_target = ext_net['route_target_list']['route_target']
        message = 'Parameters {0} from Fuel is not equel {1} from Contrail Web'
        assert_true(
            fuel_router_target in contrail_router_target[0],
            message.format(fuel_router_target, contrail_router_target[0]))

        logger.info('Check contrail_external via Contrail.')
        external_ip = ext_net['network_ipam_refs'][0]['attr']['ipam_subnets'][
            0]['subnet']
        assert_true(
            contrail_external.split('/')[0] == external_ip['ip_prefix'],
            message.format(
                contrail_external.split('/')[0], external_ip['ip_prefix']))
        assert_true(
            contrail_external.split('/')[1] == str(
                external_ip['ip_prefix_len']),
            message.format(
                contrail_external.split('/')[1], external_ip['ip_prefix_len']))

        logger.info('Check contrail_gateways via Contrail.')
        bgp_ids = contrail_client.get_bgp_routers()['bgp-routers']

        bgp_ips = [
            contrail_client.get_bgp_by_id(bgp_id['uuid'])['bgp-router']
            ['bgp_router_parameters']['address'] for bgp_id in bgp_ids
        ]

        assert_true(contrail_gateways in bgp_ips,
                    message.format(contrail_gateways, bgp_ips))