From f5d5f94a7a50c16e544cf708b965203eb40b1c85 Mon Sep 17 00:00:00 2001 From: Gary Kotton <gkotton@vmware.com> Date: Thu, 4 Jan 2018 05:22:20 -0800 Subject: [PATCH] TVD: get_address_scopes and get_subnet_pools support Ensure that each return the specific project type Change-Id: I2f0ec6e512b63fc6832844bbbeb74af4f529a2b2 --- vmware_nsx/plugins/nsx/plugin.py | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/vmware_nsx/plugins/nsx/plugin.py b/vmware_nsx/plugins/nsx/plugin.py index 10c248e87f..b41744dc6b 100644 --- a/vmware_nsx/plugins/nsx/plugin.py +++ b/vmware_nsx/plugins/nsx/plugin.py @@ -778,3 +778,35 @@ class NsxTVDPlugin(agentschedulers_db.AZDhcpAgentSchedulerDbMixin, if hasattr(p, 'housekeeper'): p.housekeeper.run(context, name) return p.housekeeper.get(name) + + def get_address_scopes(self, context, filters=None, fields=None, + sorts=None, limit=None, marker=None, + page_reverse=False): + # Read project plugin to filter relevant projects according to + # plugin + req_p = self._get_plugin_from_project(context, context.project_id) + address_scopes = super(NsxTVDPlugin, self).get_address_scopes( + context, filters=filters, fields=fields, sorts=sorts, + limit=limit, marker=marker, page_reverse=page_reverse) + for address_scope in address_scopes[:]: + p = self._get_plugin_from_project(context, + address_scope['tenant_id']) + if p != req_p: + address_scopes.remove(address_scope) + return address_scopes + + def get_subnetpools(self, context, filters=None, fields=None, + sorts=None, limit=None, marker=None, + page_reverse=False): + # Read project plugin to filter relevant projects according to + # plugin + req_p = self._get_plugin_from_project(context, context.project_id) + pools = super(NsxTVDPlugin, self).get_subnetpools( + context, filters=filters, fields=fields, sorts=sorts, + limit=limit, marker=marker, page_reverse=page_reverse) + for pool in pools[:]: + p = self._get_plugin_from_project(context, + pool['tenant_id']) + if p != req_p: + pools.remove(pool) + return pools