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)
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'])
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" ])
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"])
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"])
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'])
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" ])
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"])
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'])
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))