Browse Source

Merge "Change configuration of neutron-tempest job"

changes/42/604842/2
Zuul 7 months ago
parent
commit
04175b9e4a

+ 34
- 14
.zuul.yaml View File

@@ -64,18 +64,24 @@
64 64
         networking-opencontrail: git://git.openstack.org/openstack/networking-opencontrail
65 65
       devstack_base_dir: /opt/stack
66 66
       devstack_localrc:
67
-        DEBUG: True
67
+        DEBUG: true
68 68
         ADMIN_PASSWORD: admin
69 69
         HOST_IP: "{{hostvars['controller'].ansible_default_ipv4.address}}"
70 70
         SERVICE_HOST: "{{hostvars['controller'].ansible_default_ipv4.address}}"
71 71
         OPENCONTRAIL_APISERVER_IP: "{{hostvars['controller'].ansible_default_ipv4.address}}"
72 72
         OPENCONTRAIL_APISERVER_PORT: 8082
73
-        Q_USE_SECGROUP: True
73
+        Q_USE_SECGROUP: true
74 74
         Q_PLUGIN: ml2
75 75
         ML2_L3_PLUGIN: opencontrail-router
76
-        NEUTRON_CREATE_INITIAL_NETWORKS: False
76
+        Q_ML2_TENANT_NETWORK_TYPE: vlan
77
+        Q_ML2_PLUGIN_MECHANISM_DRIVERS: opencontrail
78
+        NEUTRON_CREATE_INITIAL_NETWORKS: false
77 79
         PUBLIC_PHYSICAL_NETWORK: public
78
-        USE_SSL: False
80
+        PHYSICAL_NETWORK: default
81
+        PROVIDER_NETWORK_TYPE: vlan
82
+        USE_SSL: false
83
+        FLOATING_RANGE: 172.24.0.0/16
84
+        PUBLIC_NETWORK_GATEWAY: 172.24.0.1
79 85
       devstack_services:
80 86
         # Shared services
81 87
         dstat: true
@@ -135,16 +141,24 @@
135 141
             DEFAULT:
136 142
               router_scheduler_driver: neutron.scheduler.l3_agent_scheduler.LeastRoutersScheduler
137 143
               router_auto_schedule: true
144
+              enable_snat_by_default: false
145
+            quotas:
146
+              # A negative value means unlimited. (integer value)
147
+              quota_network: -1
148
+              quota_subnet: -1
149
+              quota_port: -1
150
+              quota_router: -1
151
+              quota_floatingip: -1
152
+              quota_security_group: -1
153
+              quota_security_group_rule: -1
138 154
           $NEUTRON_CORE_PLUGIN_CONF:
139 155
             ml2:
140
-              type_drivers: vlan,vxlan
141
-              tenant_network_types: vlan,vxlan
156
+              type_drivers: vlan,local
157
+              tenant_network_types: vlan,local
142 158
               extension_drivers: port_security
143 159
               mechanism_drivers: opencontrail,openvswitch,linuxbridge
144 160
             ml2_type_vlan:
145 161
               network_vlan_ranges: public:1:1000
146
-            ml2_type_vxlan:
147
-              vni_ranges: 1:1000
148 162
 
149 163
 - job:
150 164
     name: noc-integration
@@ -160,12 +174,11 @@
160 174
     description: Tempest network tests
161 175
     run: playbooks/zuul/noc-tempest.yaml
162 176
     vars:
163
-      test-config:
164
-        $TEMPEST_CONFIG:
165
-          network:
166
-            project_networks_reachable: true
167
-          neutron_plugin_options:
168
-            available_type_drivers: vlan,vxlan
177
+      devstack_local_conf:
178
+        test-config:
179
+          $TEMPEST_CONFIG:
180
+            network:
181
+              project_networks_reachable: true
169 182
       tox_envlist: all-plugin
170 183
       tempest_test_regex: (?x)^tempest\.(api|scenario).*$
171 184
       tempest_test_blacklist: "{{devstack_base_dir}}/networking-opencontrail/tempest-blacklist.txt"
@@ -175,6 +188,13 @@
175 188
     parent: noc-tempest
176 189
     description: Tempest neutron plugin tests
177 190
     vars:
191
+      devstack_local_conf:
192
+        test-config:
193
+          $TEMPEST_CONFIG:
194
+            network:
195
+              project_networks_reachable: true
196
+            neutron_plugin_options:
197
+              available_type_drivers: vlan,local
178 198
       devstack_plugins:
179 199
         networking-opencontrail: git://git.openstack.org/openstack/networking-opencontrail
180 200
         neutron-tempest-plugin: git://git.openstack.org/openstack/neutron-tempest-plugin

+ 44
- 59
networking_opencontrail/drivers/contrail_driver_base.py View File

@@ -43,27 +43,27 @@ NEUTRON_CONTRAIL_PREFIX = 'NEUTRON'
43 43
 
44 44
 
45 45
 def _raise_contrail_error(info, obj_name):
46
-        exc_name = info.get('exception')
47
-        if exc_name:
48
-            if exc_name == 'BadRequest' and 'resource' not in info:
49
-                info['resource'] = obj_name
50
-            if exc_name == 'VirtualRouterNotFound':
51
-                raise exceptions.HttpResponseError(info)
52
-            if hasattr(l3, exc_name):
53
-                raise getattr(l3, exc_name)(**info)
54
-            if hasattr(securitygroup, exc_name):
55
-                raise getattr(securitygroup, exc_name)(**info)
56
-            if hasattr(allowedaddresspairs, exc_name):
57
-                raise getattr(allowedaddresspairs, exc_name)(**info)
58
-            if neutron_lib_exc and hasattr(neutron_lib_exc, exc_name):
59
-                raise getattr(neutron_lib_exc, exc_name)(**info)
60
-            # Few exceptions from neutron.common module are being moved
61
-            # to neutron_lib.exceptions module leaving duplications.
62
-            # Neutron_lib must have precedence over neutron.common.
63
-            # That's why this check must be done at the very end.
64
-            if hasattr(neutron_exc, exc_name):
65
-                raise getattr(neutron_exc, exc_name)(**info)
66
-        raise neutron_lib_exc.NeutronException(**info)
46
+    exc_name = info.get('exception')
47
+    if exc_name:
48
+        if exc_name == 'BadRequest' and 'resource' not in info:
49
+            info['resource'] = obj_name
50
+        if exc_name == 'VirtualRouterNotFound':
51
+            raise exceptions.HttpResponseError(info)
52
+        if hasattr(l3, exc_name):
53
+            raise getattr(l3, exc_name)(**info)
54
+        if hasattr(securitygroup, exc_name):
55
+            raise getattr(securitygroup, exc_name)(**info)
56
+        if hasattr(allowedaddresspairs, exc_name):
57
+            raise getattr(allowedaddresspairs, exc_name)(**info)
58
+        if neutron_lib_exc and hasattr(neutron_lib_exc, exc_name):
59
+            raise getattr(neutron_lib_exc, exc_name)(**info)
60
+        # Few exceptions from neutron.common module are being moved
61
+        # to neutron_lib.exceptions module leaving duplications.
62
+        # Neutron_lib must have precedence over neutron.common.
63
+        # That's why this check must be done at the very end.
64
+        if hasattr(neutron_exc, exc_name):
65
+            raise getattr(neutron_exc, exc_name)(**info)
66
+    raise neutron_lib_exc.NeutronException(**info)
67 67
 
68 68
 
69 69
 class OpenContrailDriversBase(object):
@@ -168,28 +168,17 @@ class OpenContrailDriversBase(object):
168 168
     def create_subnet(self, context, subnet):
169 169
         """Creates a new subnet, and assigns it a symbolic name."""
170 170
 
171
-        if subnet['subnet']['gateway_ip'] is None:
172
-            gateway = '0.0.0.0'
173
-            if subnet['subnet']['ip_version'] == 6:
174
-                gateway = '::'
175
-            subnet['subnet']['gateway_ip'] = gateway
176
-
177 171
         if subnet['subnet']['host_routes'] != ATTR_NOT_SPECIFIED:
178 172
             if (len(subnet['subnet']['host_routes']) >
179
-                    cfg.CONF.max_subnet_host_routes):
173
+               cfg.CONF.max_subnet_host_routes):
180 174
                 raise neutron_lib_exc.HostRoutesExhausted(
181 175
                     subnet_id=subnet['subnet'].get('id', _('new subnet')),
182 176
                     quota=cfg.CONF.max_subnet_host_routes)
183 177
 
184
-        subnet_created = self._create_resource('subnet', context, subnet)
185
-        return self._make_subnet_dict(subnet_created)
186
-
187
-    def _make_subnet_dict(self, subnet):
188
-        return subnet
178
+        return self._create_resource('subnet', context, subnet)
189 179
 
190 180
     def _get_subnet(self, context, subnet_id, fields=None):
191
-        subnet = self._get_resource('subnet', context, subnet_id, fields)
192
-        return self._make_subnet_dict(subnet)
181
+        return self._get_resource('subnet', context, subnet_id, fields)
193 182
 
194 183
     def get_subnet(self, context, subnet_id, fields=None):
195 184
         """Gets the attributes of a particular subnet."""
@@ -199,8 +188,7 @@ class OpenContrailDriversBase(object):
199 188
     def update_subnet(self, context, subnet_id, subnet):
200 189
         """Updates the attributes of a particular subnet."""
201 190
 
202
-        subnet = self._update_resource('subnet', context, subnet_id, subnet)
203
-        return self._make_subnet_dict(subnet)
191
+        return self._update_resource('subnet', context, subnet_id, subnet)
204 192
 
205 193
     def delete_subnet(self, context, subnet_id):
206 194
         """Delete a subnet.
@@ -214,9 +202,7 @@ class OpenContrailDriversBase(object):
214 202
     def get_subnets(self, context, filters=None, fields=None):
215 203
         """Gets the list of subnets."""
216 204
 
217
-        return [self._make_subnet_dict(s)
218
-                for s in self._list_resource(
219
-                    'subnet', context, filters, fields)]
205
+        return self._list_resource('subnet', context, filters, fields)
220 206
 
221 207
     def get_subnets_count(self, context, filters=None):
222 208
         """Gets the count of subnets."""
@@ -256,16 +242,11 @@ class OpenContrailDriversBase(object):
256 242
         # These ips are still on the port and haven't been removed
257 243
         prev_ips = []
258 244
 
259
-        # the new_ips contain all of the fixed_ips that are to be updated
260
-        if len(new_ips) > cfg.CONF.max_fixed_ips_per_port:
261
-            msg = _('Exceeded maximim amount of fixed ips per port')
262
-            raise neutron_lib_exc.InvalidInput(error_message=msg)
263
-
264 245
         # Remove all of the intersecting elements
265 246
         for original_ip in original_ips[:]:
266 247
             for new_ip in new_ips[:]:
267
-                if ('ip_address' in new_ip and
268
-                        original_ip['ip_address'] == new_ip['ip_address']):
248
+                if ('ip_address' in new_ip
249
+                        and original_ip['ip_address'] == new_ip['ip_address']):
269 250
                     original_ips.remove(original_ip)
270 251
                     new_ips.remove(new_ip)
271 252
                     prev_ips.append(original_ip)
@@ -275,10 +256,19 @@ class OpenContrailDriversBase(object):
275 256
     def create_port(self, context, port):
276 257
         """Creates a port on the specified Virtual Network."""
277 258
 
278
-        if (port['port'].get('port_security_enabled') is False and
279
-                port['port'].get('allowed_address_pairs') == []):
259
+        if (port['port'].get('port_security_enabled') is False
260
+                and port['port'].get('allowed_address_pairs') == []):
280 261
             del port['port']['allowed_address_pairs']
281 262
 
263
+        if (port.get('data')
264
+                and not port['data'].get('resource', {}).get('tenant_id')
265
+                and context['tenant_id']):
266
+            port['data']['resource']['tenant_id'] = context['tenant_id']
267
+        elif (port.get('port')
268
+              and not port.get('port', {}).get('tenant_id')
269
+              and context.tenant_id):
270
+            port['port']['tenant_id'] = context.tenant_id
271
+
282 272
         port = self._create_resource('port', context, port)
283 273
 
284 274
         return port
@@ -294,7 +284,6 @@ class OpenContrailDriversBase(object):
294 284
         Updates the attributes of a port on the specified Virtual
295 285
         Network.
296 286
         """
297
-
298 287
         original = self._get_port(context, port_id)
299 288
         if 'fixed_ips' in port['port']:
300 289
             added_ips, prev_ips = self._update_ips_for_port(
@@ -305,8 +294,8 @@ class OpenContrailDriversBase(object):
305 294
         if 'binding:host_id' in port['port']:
306 295
             original['binding:host_id'] = port['port']['binding:host_id']
307 296
 
308
-        if (port['port'].get('port_security_enabled') is False and
309
-                port['port'].get('allowed_address_pairs') == []):
297
+        if (port['port'].get('port_security_enabled') is False
298
+                and port['port'].get('allowed_address_pairs') == []):
310 299
             del port['port']['allowed_address_pairs']
311 300
 
312 301
         return self._update_resource('port', context, port_id, port)
@@ -344,11 +333,8 @@ class OpenContrailDriversBase(object):
344 333
         port_status = port.get('status', PORT_STATUS_ACTIVE)
345 334
 
346 335
         for segment in context.segments_to_bind:
347
-            context.set_binding(
348
-                segment['id'],
349
-                vif_type,
350
-                vif_details,
351
-                port_status)
336
+            context.set_binding(segment['id'], vif_type,
337
+                                vif_details, port_status)
352 338
 
353 339
     def get_ports(self, context, filters=None, fields=None):
354 340
         """Gets all ports.
@@ -383,8 +369,7 @@ class OpenContrailDriversBase(object):
383 369
     def update_router(self, context, router_id, router):
384 370
         """Updates the attributes of a router."""
385 371
 
386
-        return self._update_resource('router', context, router_id,
387
-                                     router)
372
+        return self._update_resource('router', context, router_id, router)
388 373
 
389 374
     def delete_router(self, context, router_id):
390 375
         """Deletes a router."""

+ 10
- 1
networking_opencontrail/drivers/drv_opencontrail.py View File

@@ -198,7 +198,16 @@ class OpenContrailDrivers(driver_base.OpenContrailDriversBase):
198 198
         data = json.dumps({'context': context_dict, 'data': data_dict})
199 199
 
200 200
         url_path = "%s/%s" % (self.PLUGIN_URL_PREFIX, obj_name)
201
-        response = self._relay_request(url_path, data=data)
201
+        try:
202
+            response = self._relay_request(url_path, data=data)
203
+        except requests.exceptions.ConnectionError as exc:
204
+            # Catch connection error because SDN may not be ready
205
+            # to receive messages. This must not crash OpenStack.
206
+            # Common scenario is when OpenStack is up and running first
207
+            # and SDN comes up and synchronize data later.
208
+            LOG.error("Can't connect to remote host:\n{}".format(exc))
209
+            return requests.codes.unavailable, {'message': str(exc)}
210
+
202 211
         try:
203 212
             return response.status_code, response.json()
204 213
         except JSONDecodeError:

+ 1
- 1
networking_opencontrail/l3/opencontrail_rt_callback.py View File

@@ -240,7 +240,7 @@ class OpenContrailRouterHandler(common_db_mixin.CommonDbMixin,
240 240
             with session.begin(subtransactions=True):
241 241
                 try:
242 242
                     super(OpenContrailRouterHandler, self).update_floatingip(
243
-                        context, floatingip_id, old_fip)
243
+                        context, floatingip_id, {'floatingip': old_fip})
244 244
                 except Exception as e:
245 245
                     LOG.error("Failed to repair floating ip %(id)s: "
246 246
                               "%(err)s", {"id": floatingip_id, "err": e})

+ 9
- 20
networking_opencontrail/ml2/mech_driver.py View File

@@ -44,8 +44,7 @@ class OpenContrailMechDriver(api.MechanismDriver):
44 44
 
45 45
     def create_network_postcommit(self, context):
46 46
         """Create a network in OpenContrail."""
47
-        network = {}
48
-        network['network'] = context.current
47
+        network = {'network': context.current}
49 48
         try:
50 49
             self.drv.create_network(context._plugin_context, network)
51 50
         except Exception:
@@ -67,8 +66,7 @@ class OpenContrailMechDriver(api.MechanismDriver):
67 66
 
68 67
     def update_network_postcommit(self, context):
69 68
         """Update an existing network in OpenContrail."""
70
-        network = {}
71
-        network['network'] = context.current
69
+        network = {'network': context.current}
72 70
         try:
73 71
             self.drv.update_network(context._plugin_context,
74 72
                                     network['network']['id'], network)
@@ -80,8 +78,7 @@ class OpenContrailMechDriver(api.MechanismDriver):
80 78
 
81 79
     def create_subnet_postcommit(self, context):
82 80
         """Create a subnet in OpenContrail."""
83
-        subnet = {}
84
-        subnet['subnet'] = context.current
81
+        subnet = {'subnet': context.current}
85 82
         try:
86 83
             self.drv.create_subnet(context._plugin_context, subnet)
87 84
         except Exception:
@@ -103,8 +100,7 @@ class OpenContrailMechDriver(api.MechanismDriver):
103 100
 
104 101
     def update_subnet_postcommit(self, context):
105 102
         """Update a subnet in OpenContrail."""
106
-        subnet = {}
107
-        subnet['subnet'] = context.current
103
+        subnet = {'subnet': context.current}
108 104
         try:
109 105
             self.drv.update_subnet(context._plugin_context,
110 106
                                    subnet['subnet']['id'], subnet)
@@ -116,9 +112,7 @@ class OpenContrailMechDriver(api.MechanismDriver):
116 112
 
117 113
     def create_port_postcommit(self, context):
118 114
         """Create a port in OpenContrail."""
119
-        port = {}
120
-        port['port'] = dict(context.current)
121
-
115
+        port = {'port': dict(context.current)}
122 116
         try:
123 117
             self.drv.create_port(context._plugin_context, port)
124 118
         except Exception:
@@ -129,9 +123,7 @@ class OpenContrailMechDriver(api.MechanismDriver):
129 123
 
130 124
     def update_port_postcommit(self, context):
131 125
         """Update a port in OpenContrail."""
132
-        port = {}
133
-        port['port'] = dict(context.current)
134
-
126
+        port = {'port': dict(context.current)}
135 127
         try:
136 128
             self.drv.update_port(context._plugin_context,
137 129
                                  port['port']['id'], port)
@@ -158,8 +150,7 @@ class OpenContrailMechDriver(api.MechanismDriver):
158 150
 
159 151
     def create_security_group(self, context, sg):
160 152
         """Create a Security Group in OpenContrail."""
161
-        sec_g = {}
162
-        sec_g['security_group'] = sg
153
+        sec_g = {'security_group': sg}
163 154
         try:
164 155
             self.drv.create_security_group(context, sec_g)
165 156
         except Exception:
@@ -175,8 +166,7 @@ class OpenContrailMechDriver(api.MechanismDriver):
175 166
 
176 167
     def update_security_group(self, context, sg_id, sg):
177 168
         """Update a Security Group in OpenContrail."""
178
-        sec_g = {}
179
-        sec_g['security_group'] = sg
169
+        sec_g = {'security_group': sg}
180 170
         try:
181 171
             self.drv.update_security_group(context, sg_id, sec_g)
182 172
         except Exception:
@@ -184,8 +174,7 @@ class OpenContrailMechDriver(api.MechanismDriver):
184 174
 
185 175
     def create_security_group_rule(self, context, sgr):
186 176
         """Create a Security Group Rule in OpenContrail."""
187
-        sgr_r = {}
188
-        sgr_r['security_group_rule'] = sgr
177
+        sgr_r = {'security_group_rule': sgr}
189 178
         try:
190 179
             self.drv.create_security_group_rule(context, sgr_r)
191 180
         except Exception:

+ 11
- 3
networking_opencontrail/tests/integration/test_manage_network.py View File

@@ -18,7 +18,7 @@ from networking_opencontrail.tests.base import IntegrationTestCase
18 18
 
19 19
 
20 20
 class TestManageNetwork(IntegrationTestCase):
21
-    def test_create_vlan_network(self):
21
+    def test_create_vlan_network_and_subnet(self):
22 22
         """Create vlan network using openstack CLI.
23 23
 
24 24
         Check if network exists in OpenContrail and all properties are
@@ -33,13 +33,21 @@ class TestManageNetwork(IntegrationTestCase):
33 33
                 'admin_state_up': True,
34 34
             },
35 35
         })
36
-        contrail_network = self.contrail_network_get(network['network']['id'])
36
+        self.neutron.create_subnet({
37
+            'subnet': {
38
+                'name': 'test_subnet_1',
39
+                'cidr': '192.168.2.0/24',
40
+                'network_id': network['network']['id'],
41
+                'gateway_ip': None,
42
+                'ip_version': 4,
43
+            }
44
+        })
37 45
 
46
+        contrail_network = self.contrail_network_get(network['network']['id'])
38 47
         expected_network_subdict = {
39 48
             'segmentation_id': network['network']['provider:segmentation_id'],
40 49
             'physical_network': network['network']['provider:physical_network']
41 50
         }
42
-
43 51
         self.assertDictEqual(contrail_network['provider_properties'],
44 52
                              expected_network_subdict)
45 53
 

+ 0
- 14
networking_opencontrail/tests/unit/drivers/test_contrail_driver_base.py View File

@@ -747,20 +747,6 @@ class PortTestCases(test_extensions_base.ExtensionTestCase):
747 747
         drv._update_resource.assert_called_with(self.RESOURCE_NAME, context,
748 748
                                                 port_id, port)
749 749
 
750
-    @mock.patch("oslo_config.cfg.CONF")
751
-    def test_update_port_fixed_ips_error(self, config):
752
-        config.max_fixed_ips_per_port = 0
753
-        drv = self._get_drv()
754
-        drv._update_resource = mock.Mock()
755
-        port = self._get_port(fixed_ips=["127.0.0.1"])
756
-        port_id = port['port']['id']
757
-        drv._get_port = mock.Mock()
758
-        drv._get_port.return_value = port['port']
759
-        context = mock.Mock()
760
-
761
-        self.assertRaises(exceptions.InvalidInput, drv.update_port,
762
-                          context, port_id, port)
763
-
764 750
     @mock.patch("oslo_config.cfg.CONF")
765 751
     def test_update_port_fixed_ips(self, config):
766 752
         config.max_fixed_ips_per_port = 10

+ 41
- 0
playbooks/zuul/noc-tempest.yaml View File

@@ -8,6 +8,47 @@
8 8
 
9 9
 # We run tests only on one node, regardless how many nodes are in the system
10 10
 - hosts: tempest
11
+  pre_tasks:
12
+    - set_fact:
13
+        devstack_openrc: "{{ devstack_base_dir }}/devstack/openrc"
14
+        tempest_conf: "{{ devstack_base_dir }}/tempest/etc/tempest.conf"
15
+
16
+    - name: Create Public external network
17
+      # DevStack has been configured to not create default networks while stacking
18
+      # This will cause oslo.config to pass empty string instead of UUID
19
+      # to every test which needs public network.
20
+      shell: |
21
+        set -e
22
+        set -x
23
+        source {{ devstack_openrc }} admin admin; \
24
+        openstack network create --provider-network-type vlan \
25
+                                 --provider-segment 1200 \
26
+                                 --provider-physical-network public \
27
+                                 --external --share --enable --default ext-public
28
+      args:
29
+        executable: /bin/bash
30
+
31
+    - name: Create subnet with IPv4 for ext-public network
32
+      shell: |
33
+        set -e
34
+        set -x
35
+        source {{ devstack_openrc }} admin admin; \
36
+                openstack subnet create --subnet-range 192.168.0.0/16 \
37
+                                        --network ext-public \
38
+                                        --ip-version 4 --dhcp ep-subnet
39
+      args:
40
+        executable: /bin/bash
41
+
42
+    - name: Set ext-public network as tempest public_network_id
43
+      become: yes
44
+      shell: |
45
+        set -e
46
+        set -x
47
+        source {{ devstack_openrc }} admin admin; \
48
+        ext_net_id=$(openstack network list --name ext-public -c ID -f value)
49
+        sed -i "s/^public_network_id.*/public_network_id = $ext_net_id/" {{ tempest_conf }}
50
+      args:
51
+        executable: /bin/bash
11 52
   roles:
12 53
     - setup-tempest-run-dir
13 54
     - setup-tempest-data-dir

+ 5
- 0
roles/run-contrail/tasks/main.yml View File

@@ -16,6 +16,11 @@
16 16
   retries: 30
17 17
   delay: 5
18 18
 
19
+- name: Copy vrouter
20
+  become: yes
21
+  shell: |
22
+    docker cp vrouter_vrouter-agent_1:/usr/bin/vrouter-port-control /usr/bin/
23
+
19 24
 - name: Run contrail-status
20 25
   shell: |
21 26
     contrail-status

+ 46
- 6
tempest-blacklist.txt View File

@@ -1,7 +1,8 @@
1 1
 # Exclude slow tests
2 2
 .*\[.*\bslow\b.*\]
3
+.*\[.*\bsmoke\b.*\]
3 4
 
4
-# Exclude stuff less releated to networking, to reduce gate load
5
+# Exclude stuff less related to networking, to reduce gate load
5 6
 tempest\.api\.compute.*
6 7
 tempest\.api\.identity.*
7 8
 tempest\.api\.image.*
@@ -14,10 +15,49 @@ tempest\.scenario\.test_shelve_instance.*
14 15
 tempest\.scenario\.test_snapshot.*
15 16
 tempest\.scenario\.test_stamp.*
16 17
 tempest\.scenario\.test_volume.*
18
+.*reboot.*
19
+.*instance.*
20
+.*vms.*
21
+
22
+# Exclude tests which exhaust hardware resources
23
+tempest\.scenario\.test_network_basic_ops\.TestNetworkBasicOps\.test_network_basic_ops
24
+tempest\.scenario\.test_network_basic_ops\.TestNetworkBasicOps\.test_hotplug_nic
25
+neutron_tempest_plugin\.scenario\.test_security_groups\.NetworkSecGroupTest\.test_default_sec_grp_scenarios
26
+neutron_tempest_plugin\.scenario\.test_security_groups\.NetworkSecGroupTest\.test_ip_prefix.*
27
+neutron_tempest_plugin\.scenario\.test_security_groups\.NetworkSecGroupTest\.test_multiple_ports_secgroup_inheritance
28
+neutron_tempest_plugin\.scenario\.test_security_groups\.NetworkSecGroupTest\.test_protocol_number_rule
29
+neutron_tempest_plugin\.scenario\.test_security_groups\.NetworkSecGroupTest\.test_remote_group
30
+neutron_tempest_plugin\.scenario\.test_security_groups\.NetworkSecGroupTest\.test_two_sec_groups
31
+neutron_tempest_plugin\.scenario\.test_floatingip.*test_east_west.*
32
+neutron_tempest_plugin\.scenario\.test_floatingip\.FloatingIPPortDetailsTest\.test_floatingip_port_details
33
+neutron_tempest_plugin\.scenario\.test_portsecurity\.PortSecurityTest\.test_port_security_removed_added
34
+.*traffic.*
17 35
 
18 36
 # Exclude not supported features
19
-neutron_tempest_plugin\.api.*RBAC.*
20
-neutron_tempest_plugin\.api.*dns.*
21
-neutron_tempest_plugin\.api.*logging.*
22
-neutron_tempest_plugin\.api.*qos.*
23
-neutron_tempest_plugin\.api\.test_trunk.*
37
+.*snat.*
38
+.*RBAC.*
39
+.*dns.*
40
+.*logging.*
41
+.*trunk.*
42
+.*qos.*
43
+.*revision.*
44
+.*timestamp.*
45
+.*_ha.*
46
+neutron_tempest_plugin.*TrunkTestJSON.*
47
+neutron_tempest_plugin\.scenario\.test_floatingip\.FloatingIPQosTest
48
+neutron_tempest_plugin\.api\.test_routers\.DvrRoutersTestToCentralized\.test_convert_centralized_router
49
+neutron_tempest_plugin\.api\.test_routers\.DvrRoutersTest\.test_create_distributed_router
50
+neutron_tempest_plugin\.api\.test_routers\.HaRoutersTest.*
51
+
52
+# vRouter cannot set port’s status to ACTIVE as openvswitch does
53
+# neutron_tempest_plugin\.api\.admin\.test_dhcp_agent_scheduler\.DHCPAgentSchedulersTestJSON\.test_dhcp_port_status_active
54
+neutron_tempest_plugin\.api\.test_routers\.RoutersTest\.test_router_interface_status
55
+neutron_tempest_plugin\.api\.test_routers\.RoutersIpV6Test\.test_router_interface_status
56
+
57
+# vRouter does not behave as L3Agent. Tests expect to L3Agent service running
58
+neutron_tempest_plugin\.api\.admin\.test_l3_agent_scheduler\.L3AgentSchedulerTestJSON
59
+tempest\.api\.network\.admin\.test_l3_agent_scheduler\.L3AgentSchedulerTestJSON
60
+
61
+# There is a conflict between how Neutron and vnc_openstack behave
62
+# Vnc_openstack does not allow adding new fixed ip for already existed port
63
+tempest\.scenario\.test_network_v6\.TestGettingAddress\.test_dualnet_multi_prefix_slaac

Loading…
Cancel
Save