os-vif/os_vif/objects/route.py
Matt Riedemann b088d21b91 Add a reminder to remove Route.interface field
Nova never sets the Route.interface value to anything but
None which fails with an error:

"ValueError: Fieldinterface' cannot be None"

This looks like a carry-over from the nova.network.model.Route
class which has an interface field which is set to None by default
but that field is never set to anything else in Nova, neither
for nova-network or Neutron.

Furthermore, it looks like 'interface' is not something that's
in the Route data model in Neutron either.

We don't hit this in the gate because the subnets we're testing
with don't have host_routes set.

The ValueError was fixed in Nova by not setting the attribute:

1d57c1fd53e930b02c3ce0e9914f95ef68dd1f87

This change adds a TODO to remove it in version 2.0 of the Route object.

Change-Id: Ib25a79514fe4335f4df222c02fefc9da62fe04ce
Closes-Bug: #1612812
2016-08-16 09:35:21 -04:00

42 lines
1.3 KiB
Python

# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
from oslo_versionedobjects import base
from oslo_versionedobjects import fields
from os_vif.objects import base as osv_base
@base.VersionedObjectRegistry.register
class Route(osv_base.VersionedObject):
"""Represents a route."""
# Version 1.0: Initial version
VERSION = '1.0'
fields = {
'cidr': fields.IPNetworkField(),
'gateway': fields.IPAddressField(),
# TODO(mriedem): This field is never set by Nova, remove it in v2.0
# of this object.
'interface': fields.StringField(),
}
@base.VersionedObjectRegistry.register
class RouteList(osv_base.VersionedObject, base.ObjectListBase):
# Version 1.0: Initial version
VERSION = '1.0'
fields = {
'objects': fields.ListOfObjectsField('Route'),
}