NSX|v+v3: fix validate network callback
The registered callback for validating that a router gateway has subnets, is called in both plugins so it should be common, and elevated context should be used to get the subnets. Change-Id: If8cff77e258b3d4df12d385fdbc4be4e7986daa6
This commit is contained in:
parent
51b446368b
commit
4f56575b1f
@ -27,6 +27,9 @@ from neutron_lib.api.definitions import network as net_def
|
|||||||
from neutron_lib.api.definitions import port as port_def
|
from neutron_lib.api.definitions import port as port_def
|
||||||
from neutron_lib.api.definitions import subnet as subnet_def
|
from neutron_lib.api.definitions import subnet as subnet_def
|
||||||
from neutron_lib.api import validators
|
from neutron_lib.api import validators
|
||||||
|
from neutron_lib.callbacks import events
|
||||||
|
from neutron_lib.callbacks import registry
|
||||||
|
from neutron_lib.callbacks import resources
|
||||||
from neutron_lib import constants
|
from neutron_lib import constants
|
||||||
from neutron_lib import context as n_context
|
from neutron_lib import context as n_context
|
||||||
from neutron_lib import exceptions as n_exc
|
from neutron_lib import exceptions as n_exc
|
||||||
@ -308,3 +311,24 @@ class NsxPluginBase(db_base_plugin_v2.NeutronDbPluginV2,
|
|||||||
"with no subnet") % network_id
|
"with no subnet") % network_id
|
||||||
raise n_exc.BadRequest(resource='router', msg=msg)
|
raise n_exc.BadRequest(resource='router', msg=msg)
|
||||||
return gw_info
|
return gw_info
|
||||||
|
|
||||||
|
def get_subnets_by_network(self, context, network_id):
|
||||||
|
return [self._make_subnet_dict(subnet_obj) for subnet_obj in
|
||||||
|
self._get_subnets_by_network(context.elevated(), network_id)]
|
||||||
|
|
||||||
|
|
||||||
|
# Register the callback
|
||||||
|
def _validate_network_has_subnet(resource, event, trigger, **kwargs):
|
||||||
|
network_id = kwargs.get('network_id')
|
||||||
|
subnets = kwargs.get('subnets')
|
||||||
|
if not subnets:
|
||||||
|
msg = _('No subnet defined on network %s') % network_id
|
||||||
|
raise n_exc.InvalidInput(error_message=msg)
|
||||||
|
|
||||||
|
|
||||||
|
def subscribe():
|
||||||
|
registry.subscribe(_validate_network_has_subnet,
|
||||||
|
resources.ROUTER_GATEWAY, events.BEFORE_CREATE)
|
||||||
|
|
||||||
|
|
||||||
|
subscribe()
|
||||||
|
@ -4525,20 +4525,3 @@ class NsxVPluginV2(addr_pair_db.AllowedAddressPairsMixin,
|
|||||||
if not self._nsx_policy_is_hidden(policy):
|
if not self._nsx_policy_is_hidden(policy):
|
||||||
results.append(self._nsx_policy_to_dict(policy))
|
results.append(self._nsx_policy_to_dict(policy))
|
||||||
return results
|
return results
|
||||||
|
|
||||||
|
|
||||||
# Register the callback
|
|
||||||
def _validate_network_has_subnet(resource, event, trigger, **kwargs):
|
|
||||||
network_id = kwargs.get('network_id')
|
|
||||||
subnets = kwargs.get('subnets')
|
|
||||||
if not subnets:
|
|
||||||
msg = _('No subnet defined on network %s') % network_id
|
|
||||||
raise n_exc.InvalidInput(error_message=msg)
|
|
||||||
|
|
||||||
|
|
||||||
def subscribe():
|
|
||||||
registry.subscribe(_validate_network_has_subnet,
|
|
||||||
resources.ROUTER_GATEWAY, events.BEFORE_CREATE)
|
|
||||||
|
|
||||||
|
|
||||||
subscribe()
|
|
||||||
|
Loading…
Reference in New Issue
Block a user