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
|
@db_api.context_manager.writer
|
||||||
def clear_binding_levels(context, port_id, host):
|
def clear_binding_levels(context, port_id, host):
|
||||||
if host:
|
if host:
|
||||||
(context.session.query(models.PortBindingLevel).
|
for l in (context.session.query(models.PortBindingLevel).
|
||||||
filter_by(port_id=port_id, host=host).
|
filter_by(port_id=port_id, host=host)):
|
||||||
delete())
|
context.session.delete(l)
|
||||||
LOG.debug("For port %(port_id)s, host %(host)s, "
|
LOG.debug("For port %(port_id)s, host %(host)s, "
|
||||||
"cleared binding levels",
|
"cleared binding levels",
|
||||||
{'port_id': port_id,
|
{'port_id': port_id,
|
||||||
|
|
|
@ -56,9 +56,11 @@ class PortBinding(model_base.BASEV2):
|
||||||
# eagerly load port bindings
|
# eagerly load port bindings
|
||||||
port = orm.relationship(
|
port = orm.relationship(
|
||||||
models_v2.Port,
|
models_v2.Port,
|
||||||
|
load_on_pending=True,
|
||||||
backref=orm.backref("port_binding",
|
backref=orm.backref("port_binding",
|
||||||
lazy='joined', uselist=False,
|
lazy='joined', uselist=False,
|
||||||
cascade='delete'))
|
cascade='delete'))
|
||||||
|
revises_on_change = ('port', )
|
||||||
|
|
||||||
|
|
||||||
class PortBindingLevel(model_base.BASEV2):
|
class PortBindingLevel(model_base.BASEV2):
|
||||||
|
@ -85,8 +87,10 @@ class PortBindingLevel(model_base.BASEV2):
|
||||||
# eagerly load port bindings
|
# eagerly load port bindings
|
||||||
port = orm.relationship(
|
port = orm.relationship(
|
||||||
models_v2.Port,
|
models_v2.Port,
|
||||||
|
load_on_pending=True,
|
||||||
backref=orm.backref("binding_levels", lazy='subquery',
|
backref=orm.backref("binding_levels", lazy='subquery',
|
||||||
cascade='delete'))
|
cascade='delete'))
|
||||||
|
revises_on_change = ('port', )
|
||||||
|
|
||||||
|
|
||||||
class DistributedPortBinding(model_base.BASEV2):
|
class DistributedPortBinding(model_base.BASEV2):
|
||||||
|
@ -119,6 +123,8 @@ class DistributedPortBinding(model_base.BASEV2):
|
||||||
# eagerly load port bindings
|
# eagerly load port bindings
|
||||||
port = orm.relationship(
|
port = orm.relationship(
|
||||||
models_v2.Port,
|
models_v2.Port,
|
||||||
|
load_on_pending=True,
|
||||||
backref=orm.backref("distributed_port_binding",
|
backref=orm.backref("distributed_port_binding",
|
||||||
lazy='subquery',
|
lazy='subquery',
|
||||||
cascade='delete'))
|
cascade='delete'))
|
||||||
|
revises_on_change = ('port', )
|
||||||
|
|
|
@ -556,7 +556,7 @@ class Ml2Plugin(db_base_plugin_v2.NeutronDbPluginV2,
|
||||||
# Also, Trigger notification for successful binding commit.
|
# Also, Trigger notification for successful binding commit.
|
||||||
kwargs = {
|
kwargs = {
|
||||||
'context': plugin_context,
|
'context': plugin_context,
|
||||||
'port': port,
|
'port': self._make_port_dict(port_db), # ensure latest state
|
||||||
'mac_address_updated': False,
|
'mac_address_updated': False,
|
||||||
'original_port': oport,
|
'original_port': oport,
|
||||||
}
|
}
|
||||||
|
|
|
@ -1224,6 +1224,21 @@ class TestMl2PortsV2WithRevisionPlugin(Ml2PluginV2TestCase):
|
||||||
self.assertGreater(updated_ports[0]['revision_number'],
|
self.assertGreater(updated_ports[0]['revision_number'],
|
||||||
port['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):
|
class TestMl2PortsV2WithL3(test_plugin.TestPortsV2, Ml2PluginV2TestCase):
|
||||||
"""For testing methods that require the L3 service plugin."""
|
"""For testing methods that require the L3 service plugin."""
|
||||||
|
|
Loading…
Reference in New Issue