]> review.fuel-infra Code Review - openstack-build/neutron-build.git/commitdiff
Moved QOS_POLICY_ID into qos_consts.py
authorIhar Hrachyshka <ihrachys@redhat.com>
Mon, 27 Jul 2015 18:53:26 +0000 (20:53 +0200)
committerIhar Hrachyshka <ihrachys@redhat.com>
Sun, 2 Aug 2015 10:49:10 +0000 (10:49 +0000)
Partially-Implements: blueprint quantum-qos-api
Change-Id: If789695b4084aed467d5f773c6b6bebea073724d

neutron/extensions/qos.py
neutron/plugins/ml2/plugin.py
neutron/plugins/ml2/rpc.py
neutron/services/qos/qos_consts.py
neutron/services/qos/qos_extension.py
neutron/tests/unit/plugins/ml2/test_rpc.py
neutron/tests/unit/services/qos/test_qos_extension.py

index ccaaecb696b8efdee09912f38a387e16f94828f9..6653416b78bff45ea306a7a0e05791eb03004f6f 100644 (file)
@@ -24,6 +24,7 @@ from neutron.api.v2 import base
 from neutron.api.v2 import resource_helper
 from neutron import manager
 from neutron.plugins.common import constants
+from neutron.services.qos import qos_consts
 from neutron.services import service_base
 
 QOS_PREFIX = "/qos"
@@ -80,19 +81,19 @@ SUB_RESOURCE_ATTRIBUTE_MAP = {
     }
 }
 
-QOS_POLICY_ID = "qos_policy_id"
-
 EXTENDED_ATTRIBUTES_2_0 = {
-    'ports': {QOS_POLICY_ID: {'allow_post': True,
-                              'allow_put': True,
-                              'is_visible': True,
-                              'default': None,
-                              'validate': {'type:uuid_or_none': None}}},
-    'networks': {QOS_POLICY_ID: {'allow_post': True,
-                                 'allow_put': True,
-                                 'is_visible': True,
-                                 'default': None,
-                                 'validate': {'type:uuid_or_none': None}}}}
+    'ports': {qos_consts.QOS_POLICY_ID: {
+                                    'allow_post': True,
+                                    'allow_put': True,
+                                    'is_visible': True,
+                                    'default': None,
+                                    'validate': {'type:uuid_or_none': None}}},
+    'networks': {qos_consts.QOS_POLICY_ID: {
+                                    'allow_post': True,
+                                    'allow_put': True,
+                                    'is_visible': True,
+                                    'default': None,
+                                    'validate': {'type:uuid_or_none': None}}}}
 
 
 class Qos(extensions.ExtensionDescriptor):
index 33b3f63345090bc70e90c1542c848ef17c58e4b7..aeaf68733a47255a66fc6c1de8a7d4c0b6f77644 100644 (file)
@@ -63,7 +63,6 @@ from neutron.extensions import extra_dhcp_opt as edo_ext
 from neutron.extensions import portbindings
 from neutron.extensions import portsecurity as psec
 from neutron.extensions import providernet as provider
-from neutron.extensions import qos
 from neutron.extensions import vlantransparent
 from neutron.i18n import _LE, _LI, _LW
 from neutron import manager
@@ -76,6 +75,7 @@ from neutron.plugins.ml2 import driver_context
 from neutron.plugins.ml2 import managers
 from neutron.plugins.ml2 import models
 from neutron.plugins.ml2 import rpc
+from neutron.services.qos import qos_consts
 
 LOG = log.getLogger(__name__)
 
@@ -1131,9 +1131,9 @@ class Ml2Plugin(db_base_plugin_v2.NeutronDbPluginV2,
                 need_port_update_notify = True
             # TODO(QoS): Move out to the extension framework somehow.
             # Follow https://review.openstack.org/#/c/169223 for a solution.
-            if (qos.QOS_POLICY_ID in attrs and
-                    original_port[qos.QOS_POLICY_ID] !=
-                    updated_port[qos.QOS_POLICY_ID]):
+            if (qos_consts.QOS_POLICY_ID in attrs and
+                    original_port[qos_consts.QOS_POLICY_ID] !=
+                    updated_port[qos_consts.QOS_POLICY_ID]):
                 need_port_update_notify = True
 
             if addr_pair.ADDRESS_PAIRS in attrs:
index 9891905d117016136c36a85c34d0308ecf8182b1..19f2ff66e14d463cb0d35014f1cdbcea75042f2c 100644 (file)
@@ -28,11 +28,11 @@ from neutron.common import rpc as n_rpc
 from neutron.common import topics
 from neutron.extensions import portbindings
 from neutron.extensions import portsecurity as psec
-from neutron.extensions import qos
 from neutron.i18n import _LW
 from neutron import manager
 from neutron.plugins.ml2 import driver_api as api
 from neutron.plugins.ml2.drivers import type_tunnel
+from neutron.services.qos import qos_consts
 # REVISIT(kmestery): Allow the type and mechanism drivers to supply the
 # mixins and eventually remove the direct dependencies on type_tunnel.
 
@@ -107,8 +107,9 @@ class RpcCallbacks(type_tunnel.TunnelRpcCallbackMixin):
                                           host,
                                           port_context.network.current)
 
-        qos_profile_id = (port.get(qos.QOS_POLICY_ID) or
-                          port_context.network._network.get(qos.QOS_POLICY_ID))
+        qos_policy_id = (port.get(qos_consts.QOS_POLICY_ID) or
+                         port_context.network._network.get(
+                             qos_consts.QOS_POLICY_ID))
         entry = {'device': device,
                  'network_id': port['network_id'],
                  'port_id': port['id'],
@@ -121,7 +122,7 @@ class RpcCallbacks(type_tunnel.TunnelRpcCallbackMixin):
                  'device_owner': port['device_owner'],
                  'allowed_address_pairs': port['allowed_address_pairs'],
                  'port_security_enabled': port.get(psec.PORTSECURITY, True),
-                 'qos_policy_id': qos_profile_id,
+                 'qos_policy_id': qos_policy_id,
                  'profile': port[portbindings.PROFILE]}
         LOG.debug("Returning: %s", entry)
         return entry
index 0a7407f960968ad50732a8dc671bacc3d1426240..3eb78d517d5e6d608c168a75754834175ea44518 100644 (file)
@@ -15,3 +15,5 @@
 
 RULE_TYPE_BANDWIDTH_LIMIT = 'bandwidth_limit'
 VALID_RULE_TYPES = [RULE_TYPE_BANDWIDTH_LIMIT]
+
+QOS_POLICY_ID = 'qos_policy_id'
index 518b2adc5ccbbf512ce5900d67988c6af7c2784c..fb1b091165a4d6a336025b47237336e54da66f07 100644 (file)
 #    License for the specific language governing permissions and limitations
 #    under the License.
 
-from neutron.extensions import qos
 from neutron import manager
 from neutron.objects.qos import policy as policy_object
 from neutron.plugins.common import constants as plugin_constants
+from neutron.services.qos import qos_consts
 
 NETWORK = 'network'
 PORT = 'port'
@@ -46,14 +46,14 @@ class QosResourceExtensionHandler(object):
             #           at db api level automatically within transaction.
             old_policy.detach_port(port['id'])
 
-        qos_policy_id = port_changes.get(qos.QOS_POLICY_ID)
+        qos_policy_id = port_changes.get(qos_consts.QOS_POLICY_ID)
         if qos_policy_id is not None:
             policy = self._get_policy_obj(context, qos_policy_id)
             #TODO(QoS): If the policy doesn't exist (or if it is not shared and
             #           the tenant id doesn't match the context's), this will
             #           raise an exception (policy is None).
             policy.attach_port(port['id'])
-            port[qos.QOS_POLICY_ID] = qos_policy_id
+            port[qos_consts.QOS_POLICY_ID] = qos_policy_id
 
     def _update_network_policy(self, context, network, network_changes):
         old_policy = policy_object.QosPolicy.get_network_policy(
@@ -61,21 +61,22 @@ class QosResourceExtensionHandler(object):
         if old_policy:
             old_policy.detach_network(network['id'])
 
-        qos_policy_id = network_changes.get(qos.QOS_POLICY_ID)
+        qos_policy_id = network_changes.get(qos_consts.QOS_POLICY_ID)
         if qos_policy_id:
             policy = self._get_policy_obj(context, qos_policy_id)
             #TODO(QoS): If the policy doesn't exist (or if it is not shared and
             #           the tenant id doesn't match the context's), this will
             #           raise an exception (policy is None).
             policy.attach_network(network['id'])
-            network[qos.QOS_POLICY_ID] = qos_policy_id
+            network[qos_consts.QOS_POLICY_ID] = qos_policy_id
 
     def _exec(self, method_name, context, kwargs):
         return getattr(self, method_name)(context=context, **kwargs)
 
     def process_resource(self, context, resource_type, requested_resource,
                          actual_resource):
-        if qos.QOS_POLICY_ID in requested_resource and self.plugin_loaded:
+        if (qos_consts.QOS_POLICY_ID in requested_resource and
+            self.plugin_loaded):
             self._exec('_update_%s_policy' % resource_type, context,
                        {resource_type: actual_resource,
                         "%s_changes" % resource_type: requested_resource})
@@ -85,4 +86,5 @@ class QosResourceExtensionHandler(object):
             return {}
 
         binding = resource['qos_policy_binding']
-        return {qos.QOS_POLICY_ID: binding['policy_id'] if binding else None}
+        qos_policy_id = binding['policy_id'] if binding else None
+        return {qos_consts.QOS_POLICY_ID: qos_policy_id}
index 0b1c0c97b2f20c58481cff11fe1181956d38eee7..e039c926137289e314ec2a8988ca658557a46536 100644 (file)
@@ -28,10 +28,10 @@ from neutron.agent import rpc as agent_rpc
 from neutron.common import constants
 from neutron.common import exceptions
 from neutron.common import topics
-from neutron.extensions import qos
 from neutron.plugins.ml2.drivers import type_tunnel
 from neutron.plugins.ml2 import managers
 from neutron.plugins.ml2 import rpc as plugin_rpc
+from neutron.services.qos import qos_consts
 from neutron.tests import base
 
 
@@ -147,16 +147,19 @@ class RpcCallbacksTestCase(base.BaseTestCase):
         port = collections.defaultdict(lambda: 'fake_port')
         self.plugin.get_bound_port_context().current = port
         self.plugin.get_bound_port_context().network._network = (
-            {"id": "fake_network", qos.QOS_POLICY_ID: 'test-policy-id'})
+            {"id": "fake_network",
+             qos_consts.QOS_POLICY_ID: 'test-policy-id'})
         res = self.callbacks.get_device_details(mock.Mock(), host='fake')
         self.assertEqual('test-policy-id', res['qos_policy_id'])
 
     def test_get_device_details_qos_policy_id_taken_from_port(self):
         port = collections.defaultdict(
-            lambda: 'fake_port', {qos.QOS_POLICY_ID: 'test-port-policy-id'})
+            lambda: 'fake_port',
+            {qos_consts.QOS_POLICY_ID: 'test-port-policy-id'})
         self.plugin.get_bound_port_context().current = port
         self.plugin.get_bound_port_context().network._network = (
-            {"id": "fake_network", qos.QOS_POLICY_ID: 'test-net-policy-id'})
+            {"id": "fake_network",
+             qos_consts.QOS_POLICY_ID: 'test-net-policy-id'})
         res = self.callbacks.get_device_details(mock.Mock(), host='fake')
         self.assertEqual('test-port-policy-id', res['qos_policy_id'])
 
index 311350685baff2e0d6a3942e29d369fb7aa5f980..bc1563b6f9abd9fe45a0c2883adcfa4d5617ef77 100644 (file)
@@ -15,8 +15,8 @@
 
 import mock
 
-from neutron.extensions import qos
 from neutron.plugins.common import constants as plugin_constants
+from neutron.services.qos import qos_consts
 from neutron.services.qos import qos_extension
 from neutron.tests import base
 
@@ -47,19 +47,21 @@ class QosResourceExtensionHandlerTestCase(base.BaseTestCase):
 
     def test_process_resource_no_qos_plugin_loaded(self):
         with self._mock_plugin_loaded(False):
-            self.ext_handler.process_resource(None, qos_extension.PORT,
-                                              {qos.QOS_POLICY_ID: None}, None)
+            self.ext_handler.process_resource(
+                None, qos_extension.PORT,
+                {qos_consts.QOS_POLICY_ID: None}, None)
             self.assertFalse(self.policy_m.called)
 
     def test_process_resource_port_new_policy(self):
         with self._mock_plugin_loaded(True):
             qos_policy_id = mock.Mock()
             actual_port = {'id': mock.Mock(),
-                           qos.QOS_POLICY_ID: qos_policy_id}
+                           qos_consts.QOS_POLICY_ID: qos_policy_id}
             qos_policy = mock.MagicMock()
             self.policy_m.get_by_id = mock.Mock(return_value=qos_policy)
             self.ext_handler.process_resource(
-                None, qos_extension.PORT, {qos.QOS_POLICY_ID: qos_policy_id},
+                None, qos_extension.PORT,
+                {qos_consts.QOS_POLICY_ID: qos_policy_id},
                 actual_port)
 
             qos_policy.attach_port.assert_called_once_with(actual_port['id'])
@@ -69,14 +71,15 @@ class QosResourceExtensionHandlerTestCase(base.BaseTestCase):
             qos_policy_id = mock.Mock()
             port_id = mock.Mock()
             actual_port = {'id': port_id,
-                           qos.QOS_POLICY_ID: qos_policy_id}
+                           qos_consts.QOS_POLICY_ID: qos_policy_id}
             old_qos_policy = mock.MagicMock()
             self.policy_m.get_port_policy = mock.Mock(
                 return_value=old_qos_policy)
             new_qos_policy = mock.MagicMock()
             self.policy_m.get_by_id = mock.Mock(return_value=new_qos_policy)
             self.ext_handler.process_resource(
-                None, qos_extension.PORT, {qos.QOS_POLICY_ID: qos_policy_id},
+                None, qos_extension.PORT,
+                {qos_consts.QOS_POLICY_ID: qos_policy_id},
                 actual_port)
 
             old_qos_policy.detach_port.assert_called_once_with(port_id)
@@ -86,12 +89,12 @@ class QosResourceExtensionHandlerTestCase(base.BaseTestCase):
         with self._mock_plugin_loaded(True):
             qos_policy_id = mock.Mock()
             actual_network = {'id': mock.Mock(),
-                              qos.QOS_POLICY_ID: qos_policy_id}
+                              qos_consts.QOS_POLICY_ID: qos_policy_id}
             qos_policy = mock.MagicMock()
             self.policy_m.get_by_id = mock.Mock(return_value=qos_policy)
             self.ext_handler.process_resource(
                 None, qos_extension.NETWORK,
-                {qos.QOS_POLICY_ID: qos_policy_id}, actual_network)
+                {qos_consts.QOS_POLICY_ID: qos_policy_id}, actual_network)
 
             qos_policy.attach_network.assert_called_once_with(
                 actual_network['id'])
@@ -101,7 +104,7 @@ class QosResourceExtensionHandlerTestCase(base.BaseTestCase):
             qos_policy_id = mock.Mock()
             network_id = mock.Mock()
             actual_network = {'id': network_id,
-                              qos.QOS_POLICY_ID: qos_policy_id}
+                              qos_consts.QOS_POLICY_ID: qos_policy_id}
             old_qos_policy = mock.MagicMock()
             self.policy_m.get_network_policy = mock.Mock(
                 return_value=old_qos_policy)
@@ -109,7 +112,7 @@ class QosResourceExtensionHandlerTestCase(base.BaseTestCase):
             self.policy_m.get_by_id = mock.Mock(return_value=new_qos_policy)
             self.ext_handler.process_resource(
                 None, qos_extension.NETWORK,
-                {qos.QOS_POLICY_ID: qos_policy_id}, actual_network)
+                {qos_consts.QOS_POLICY_ID: qos_policy_id}, actual_network)
 
             old_qos_policy.detach_network.assert_called_once_with(network_id)
             new_qos_policy.attach_network.assert_called_once_with(network_id)
@@ -123,7 +126,7 @@ class QosResourceExtensionHandlerTestCase(base.BaseTestCase):
         with self._mock_plugin_loaded(True):
             fields = self.ext_handler.extract_resource_fields(
                 qos_extension.PORT, _get_test_dbdata(qos_policy_id))
-            self.assertEqual({qos.QOS_POLICY_ID: qos_policy_id}, fields)
+            self.assertEqual({qos_consts.QOS_POLICY_ID: qos_policy_id}, fields)
 
     def test_extract_resource_fields_no_port_policy(self):
         self._test_extract_resource_fields_for_port(None)
@@ -136,7 +139,7 @@ class QosResourceExtensionHandlerTestCase(base.BaseTestCase):
         with self._mock_plugin_loaded(True):
             fields = self.ext_handler.extract_resource_fields(
                 qos_extension.NETWORK, _get_test_dbdata(qos_policy_id))
-            self.assertEqual({qos.QOS_POLICY_ID: qos_policy_id}, fields)
+            self.assertEqual({qos_consts.QOS_POLICY_ID: qos_policy_id}, fields)
 
     def test_extract_resource_fields_no_network_policy(self):
         self._test_extract_resource_fields_for_network(None)