Merge "Add revises_on_change to Binding DB models"
This commit is contained in:
commit
8114dec504
@ -110,9 +110,9 @@ def get_binding_levels(context, port_id, host):
|
||||
@db_api.context_manager.writer
|
||||
def clear_binding_levels(context, port_id, host):
|
||||
if host:
|
||||
(context.session.query(models.PortBindingLevel).
|
||||
filter_by(port_id=port_id, host=host).
|
||||
delete())
|
||||
for l in (context.session.query(models.PortBindingLevel).
|
||||
filter_by(port_id=port_id, host=host)):
|
||||
context.session.delete(l)
|
||||
LOG.debug("For port %(port_id)s, host %(host)s, "
|
||||
"cleared binding levels",
|
||||
{'port_id': port_id,
|
||||
|
@ -56,9 +56,11 @@ class PortBinding(model_base.BASEV2):
|
||||
# eagerly load port bindings
|
||||
port = orm.relationship(
|
||||
models_v2.Port,
|
||||
load_on_pending=True,
|
||||
backref=orm.backref("port_binding",
|
||||
lazy='joined', uselist=False,
|
||||
cascade='delete'))
|
||||
revises_on_change = ('port', )
|
||||
|
||||
|
||||
class PortBindingLevel(model_base.BASEV2):
|
||||
@ -85,8 +87,10 @@ class PortBindingLevel(model_base.BASEV2):
|
||||
# eagerly load port bindings
|
||||
port = orm.relationship(
|
||||
models_v2.Port,
|
||||
load_on_pending=True,
|
||||
backref=orm.backref("binding_levels", lazy='subquery',
|
||||
cascade='delete'))
|
||||
revises_on_change = ('port', )
|
||||
|
||||
|
||||
class DistributedPortBinding(model_base.BASEV2):
|
||||
@ -119,6 +123,8 @@ class DistributedPortBinding(model_base.BASEV2):
|
||||
# eagerly load port bindings
|
||||
port = orm.relationship(
|
||||
models_v2.Port,
|
||||
load_on_pending=True,
|
||||
backref=orm.backref("distributed_port_binding",
|
||||
lazy='subquery',
|
||||
cascade='delete'))
|
||||
revises_on_change = ('port', )
|
||||
|
@ -556,7 +556,7 @@ class Ml2Plugin(db_base_plugin_v2.NeutronDbPluginV2,
|
||||
# Also, Trigger notification for successful binding commit.
|
||||
kwargs = {
|
||||
'context': plugin_context,
|
||||
'port': port,
|
||||
'port': self._make_port_dict(port_db), # ensure latest state
|
||||
'mac_address_updated': False,
|
||||
'original_port': oport,
|
||||
}
|
||||
|
@ -1224,6 +1224,21 @@ class TestMl2PortsV2WithRevisionPlugin(Ml2PluginV2TestCase):
|
||||
self.assertGreater(updated_ports[0]['revision_number'],
|
||||
port['revision_number'])
|
||||
|
||||
def test_bind_port_bumps_revision(self):
|
||||
updated_ports = []
|
||||
created_ports = []
|
||||
ureceiver = lambda *a, **k: updated_ports.append(k['port'])
|
||||
creceiver = lambda *a, **k: created_ports.append(k['port'])
|
||||
registry.subscribe(ureceiver, resources.PORT,
|
||||
events.AFTER_UPDATE)
|
||||
registry.subscribe(creceiver, resources.PORT,
|
||||
events.AFTER_CREATE)
|
||||
host_arg = {portbindings.HOST_ID: HOST}
|
||||
with self.port(arg_list=(portbindings.HOST_ID,),
|
||||
**host_arg):
|
||||
self.assertGreater(updated_ports[0]['revision_number'],
|
||||
created_ports[0]['revision_number'])
|
||||
|
||||
|
||||
class TestMl2PortsV2WithL3(test_plugin.TestPortsV2, Ml2PluginV2TestCase):
|
||||
"""For testing methods that require the L3 service plugin."""
|
||||
|
Loading…
Reference in New Issue
Block a user