]> review.fuel-infra Code Review - openstack-build/neutron-build.git/commitdiff
Ensure that decomposed plugins do not break
authorGary Kotton <gkotton@vmware.com>
Fri, 8 Jan 2016 15:34:27 +0000 (07:34 -0800)
committerGary Kotton <gkotton@vmware.com>
Sat, 9 Jan 2016 08:15:22 +0000 (00:15 -0800)
Commit 5d53dfb8d64186b5b1d2f356fbff8f222e15d1b2 removed the
method _get_tenant_id_for_create. This is used by various plugins
and the *aaS libaries.

Change-Id: I6d5e2555d6c198102a3d5400609f1d671e0d388d

neutron/db/common_db_mixin.py

index ba913bfbab3d618e37a0ba7d1f19dd2e4662de3b..b504cfbb5a74cdd97d728743ffcbf9edb139c59e 100644 (file)
 
 import weakref
 
+from debtcollector import removals
 import six
 from sqlalchemy import and_
 from sqlalchemy import or_
 from sqlalchemy import sql
 
+from neutron._i18n import _
+from neutron.common import exceptions as n_exc
 from neutron.db import sqlalchemyutils
 
 
@@ -167,6 +170,18 @@ class CommonDbMixin(object):
                          if key in fields))
         return resource
 
+    @removals.remove(message='This method will be removed in N')
+    def _get_tenant_id_for_create(self, context, resource):
+        if context.is_admin and 'tenant_id' in resource:
+            tenant_id = resource['tenant_id']
+        elif ('tenant_id' in resource and
+              resource['tenant_id'] != context.tenant_id):
+            reason = _('Cannot create resource for another tenant')
+            raise n_exc.AdminRequired(reason=reason)
+        else:
+            tenant_id = context.tenant_id
+        return tenant_id
+
     def _get_by_id(self, context, model, id):
         query = self._model_query(context, model)
         return query.filter(model.id == id).one()