Merge "Have qos object increment port/network revision" into stable/newton

This commit is contained in:
Jenkins 2017-01-20 04:08:18 +00:00 committed by Gerrit Code Review
commit 7066cfa7ae
2 changed files with 37 additions and 1 deletions

View File

@ -46,6 +46,7 @@ class QosNetworkPolicyBinding(model_base.BASEV2):
nullable=False,
unique=True,
primary_key=True)
revises_on_change = ('network', )
network = sa.orm.relationship(
models_v2.Network,
backref=sa.orm.backref("qos_policy_binding", uselist=False,
@ -66,6 +67,7 @@ class QosPortPolicyBinding(model_base.BASEV2):
nullable=False,
unique=True,
primary_key=True)
revises_on_change = ('port', )
port = sa.orm.relationship(
models_v2.Port,
backref=sa.orm.backref("qos_policy_binding", uselist=False,

View File

@ -13,22 +13,32 @@
# under the License.
#
import mock
import netaddr
from neutron import context as nctx
from neutron.db import models_v2
from neutron import manager
from neutron.plugins.ml2 import config
from neutron.tests.unit.plugins.ml2 import test_plugin
class TestRevisionPlugin(test_plugin.Ml2PluginV2TestCase):
_extension_drivers = ['qos']
def get_additional_service_plugins(self):
p = super(TestRevisionPlugin, self).get_additional_service_plugins()
p.update({'revision_plugin_name': 'revisions'})
p.update({'revision_plugin_name': 'revisions',
'qos_plugin_name': 'qos'})
return p
def setUp(self):
config.cfg.CONF.set_override('extension_drivers',
self._extension_drivers,
group='ml2')
mock.patch('neutron.services.qos.notification_drivers.message_queue'
'.RpcQosServiceNotificationDriver').start()
super(TestRevisionPlugin, self).setUp()
self.cp = manager.NeutronManager.get_plugin()
self.l3p = (manager.NeutronManager.
@ -124,3 +134,27 @@ class TestRevisionPlugin(test_plugin.Ml2PluginV2TestCase):
updated = self.l3p.get_router(self.ctx, router['id'])
self.assertGreater(updated['revision_number'],
router['revision_number'])
def test_qos_policy_bump_port_revision(self):
with self.port() as port:
rev = port['port']['revision_number']
qos_plugin = manager.NeutronManager.get_service_plugins()['QOS']
qos_policy = {'policy': {'name': "policy1",
'tenant_id': "tenant1"}}
qos_obj = qos_plugin.create_policy(self.ctx, qos_policy)
data = {'port': {'qos_policy_id': qos_obj['id']}}
response = self._update('ports', port['port']['id'], data)
new_rev = response['port']['revision_number']
self.assertGreater(new_rev, rev)
def test_qos_policy_bump_network_revision(self):
with self.network() as network:
rev = network['network']['revision_number']
qos_plugin = manager.NeutronManager.get_service_plugins()['QOS']
qos_policy = {'policy': {'name': "policy1",
'tenant_id': "tenant1"}}
qos_obj = qos_plugin.create_policy(self.ctx, qos_policy)
data = {'network': {'qos_policy_id': qos_obj['id']}}
response = self._update('networks', network['network']['id'], data)
new_rev = response['network']['revision_number']
self.assertGreater(new_rev, rev)