F5Networks / f5-openstack-lbaasv2-driver

F5 LBaaSv2 service provider driver for OpenStack Liberty and beyond
http://clouddocs.f5.com/products/openstack/lbaasv2-driver/master/
Apache License 2.0
21 stars 37 forks source link

Create loadbalancer for tenant fails in global routed mode #142

Closed jlongstaf closed 8 years ago

jlongstaf commented 8 years ago

When creating a loadbalancer for a tenant and the network's tenant ID is different than the loadbalancer's tenant ID (e.g., when an admin user creates a loadbalancer for a tenant), the driver checks for common_networks in the agent configuration. This is not defined when global routing mode is set to True and the driver will fail.

jlongstaf commented 8 years ago

From log of @YangXuRong

2016-06-14 13:56:39.358 28348 DEBUG f5lbaasdriver.v2.bigip.service_builder [req-2817dba5-3e15-4827-b00e-1b23e3c9d746 3b9ec28e5638493f9a59638b979b97f9 2055efb66fcf4c0f813e59e5b99684b9 - - -] f5lbaasdriver.v2.bigip.service_builder.LBaaSv2ServiceBuilder method _is_common_network called with arguments ({'status': u'ACTIVE', 'subnets': [u'36730837-1211-4a0f-9e23-9c2cac364ae9'], 'name': u'f5-net', 'provider:physical_network': None, 'admin_state_up': True, 'tenant_id': u'06569d4fac8342a695634e8dc6701611', 'mtu': 0L, 'router:external': False, 'vlan_transparent': None, 'shared': False, 'provider:network_type': u'gre', 'id': u'13df97f4-3d77-4ebb-8693-d0ca2ccc2ed1', 'provider:segmentation_id': 85L}, <neutron.db.agents_db.Agent[object at 5b78590] {id=u'8ef44016-f7a5-4c3e-9394-6a905e78357c', agent_type=u'Loadbalancerv2 agent', binary=u'f5-oslbaasv2-agent', topic=u'f5-lbaasv2-process-on-agent', host=u'CNSH231636:de9be654-d33b-5ebd-b137-28b5f3353176', admin_state_up=True, created_at=datetime.datetime(2016, 6, 7, 5, 46, 24), started_at=datetime.datetime(2016, 6, 7, 5, 46, 24), heartbeat_timestamp=datetime.datetime(2016, 6, 14, 5, 56, 28), description=None, configurations=u'{"icontrol_endpoints": {"10.25.7.2": {"device_name": "BIGIP-VE-Study01.paic.com.cn", "platform": "", "version": "11.6.0", "serial_number": "e3580568-fb8c-4009-279b9ec940cb"}}, "device_drivers": ["f5-lbaasv2-icontrol"], "request_queue_depth": 0, "environment_prefix": "Project", "tunneling_ips": [], "services": 0, "environment_capacity_score": 0, "tunnel_types": [], "environment_group_number": 1, "bridge_mappings": {}, "global_routed_mode": true}', load=0L}>) {} wrapper /usr/lib/python2.7/site-packages/oslo_log/helpers.py:45 2016-06-14 13:56:39.359 28348 ERROR f5lbaasdriver.v2.bigip.driver_v2 [req-2817dba5-3e15-4827-b00e-1b23e3c9d746 3b9ec28e5638493f9a59638b979b97f9 2055efb66fcf4c0f813e59e5b99684b9 - - -] Exception: loadbalancer create: common_networks 2016-06-14 13:56:39.359 28348 ERROR neutron_lbaas.services.loadbalancer.plugin [req-2817dba5-3e15-4827-b00e-1b23e3c9d746 3b9ec28e5638493f9a59638b979b97f9 2055efb66fcf4c0f813e59e5b99684b9 - - -] There was an error in the driver 2016-06-14 13:56:39.359 28348 ERROR neutron_lbaas.services.loadbalancer.plugin Traceback (most recent call last): 2016-06-14 13:56:39.359 28348 ERROR neutron_lbaas.services.loadbalancer.plugin File "/usr/lib/python2.7/site-packages/neutron_lbaas/services/loadbalancer/plugin.py", line 471, in _call_driver_operation 2016-06-14 13:56:39.359 28348 ERROR neutron_lbaas.services.loadbalancer.plugin driver_method(context, db_entity) 2016-06-14 13:56:39.359 28348 ERROR neutron_lbaas.services.loadbalancer.plugin File "/usr/lib/python2.7/site-packages/neutron_lbaas/drivers/f5/driver_v2.py", line 78, in create 2016-06-14 13:56:39.359 28348 ERROR neutron_lbaas.services.loadbalancer.plugin self.driver.f5.loadbalancer.create(context, lb) 2016-06-14 13:56:39.359 28348 ERROR neutron_lbaas.services.loadbalancer.plugin File "/usr/lib/python2.7/site-packages/oslo_log/helpers.py", line 46, in wrapper 2016-06-14 13:56:39.359 28348 ERROR neutron_lbaas.services.loadbalancer.plugin return method(_args, *_kwargs) 2016-06-14 13:56:39.359 28348 ERROR neutron_lbaas.services.loadbalancer.plugin File "build/bdist.linux-x86_64/egg/f5lbaasdriver/v2/bigip/driver_v2.py", line 156, in create 2016-06-14 13:56:39.359 28348 ERROR neutron_lbaas.services.loadbalancer.plugin raise e 2016-06-14 13:56:39.359 28348 ERROR neutron_lbaas.services.loadbalancer.plugin KeyError: 'common_networks' 2016-06-14 13:56:39.359 28348 ERROR neutron_lbaas.services.loadbalancer.plugin 2016-06-14 13:56:39.375 28348 ERROR neutron.api.v2.resource [req-2817dba5-3e15-4827-b00e-1b23e3c9d746 3b9ec28e5638493f9a59638b979b97f9 2055efb66fcf4c0f813e59e5b99684b9 - - -] create failed 2016-06-14 13:56:39.375 28348 ERROR neutron.api.v2.resource Traceback (most recent call last): 2016-06-14 13:56:39.375 28348 ERROR neutron.api.v2.resource File "/usr/lib/python2.7/site-packages/neutron/api/v2/resource.py", line 83, in resource 2016-06-14 13:56:39.375 28348 ERROR neutron.api.v2.resource result = method(request=request, *args) 2016-06-14 13:56:39.375 28348 ERROR neutron.api.v2.resource File "/usr/lib/python2.7/site-packages/oslo_db/api.py", line 146, in wrapper 2016-06-14 13:56:39.375 28348 ERROR neutron.api.v2.resource ectxt.value = e.inner_exc 2016-06-14 13:56:39.375 28348 ERROR neutron.api.v2.resource File "/usr/lib/python2.7/site-packages/osloutils/excutils.py", line 195, in exit 2016-06-14 13:56:39.375 28348 ERROR neutron.api.v2.resource six.reraise(self.type, self.value, self.tb) 2016-06-14 13:56:39.375 28348 ERROR neutron.api.v2.resource File "/usr/lib/python2.7/site-packages/oslo_db/api.py", line 136, in wrapper 2016-06-14 13:56:39.375 28348 ERROR neutron.api.v2.resource return f(_args, _kwargs) 2016-06-14 13:56:39.375 28348 ERROR neutron.api.v2.resource File "/usr/lib/python2.7/site-packages/neutron/api/v2/base.py", line 516, in create 2016-06-14 13:56:39.375 28348 ERROR neutron.api.v2.resource obj = do_create(body) 2016-06-14 13:56:39.375 28348 ERROR neutron.api.v2.resource File "/usr/lib/python2.7/site-packages/neutron/api/v2/base.py", line 498, in do_create 2016-06-14 13:56:39.375 28348 ERROR neutron.api.v2.resource request.context, reservation.reservation_id) 2016-06-14 13:56:39.375 28348 ERROR neutron.api.v2.resource File "/usr/lib/python2.7/site-packages/osloutils/excutils.py", line 195, in exit 2016-06-14 13:56:39.375 28348 ERROR neutron.api.v2.resource six.reraise(self.type, self.value, self.tb) 2016-06-14 13:56:39.375 28348 ERROR neutron.api.v2.resource File "/usr/lib/python2.7/site-packages/neutron/api/v2/base.py", line 491, in do_create 2016-06-14 13:56:39.375 28348 ERROR neutron.api.v2.resource return obj_creator(request.context, **kwargs) 2016-06-14 13:56:39.375 28348 ERROR neutron.api.v2.resource File "/usr/lib/python2.7/site-packages/neutron_lbaas/services/loadbalancer/plugin.py", line 524, in create_loadbalancer 2016-06-14 13:56:39.375 28348 ERROR neutron.api.v2.resource self._call_driver_operation(context, create_method, lb_db) 2016-06-14 13:56:39.375 28348 ERROR neutron.api.v2.resource File "/usr/lib/python2.7/site-packages/neutron_lbaas/services/loadbalancer/plugin.py", line 479, in _call_driver_operation 2016-06-14 13:56:39.375 28348 ERROR neutron.api.v2.resource raise loadbalancerv2.DriverError() 2016-06-14 13:56:39.375 28348 ERROR neutron.api.v2.resource DriverError: An error happened in the dri