F5Networks / f5-openstack-agent

The F5 Agent for OpenStack Neutron allows you to deploy BIG-IP services in an OpenStack environment.
http://clouddocs.f5.com/products/openstack/agent/latest
Apache License 2.0
14 stars 38 forks source link

Port creation causes exception -- unexpected kwarg 'binding_profile' #939

Closed pjbreaux closed 6 years ago

pjbreaux commented 7 years ago

OpenStack Release

mitaka

Description

The agent fails to create ports on a particular subnet, due to an unexpected keyword agument given to the create_port_on_subnet function in icontrol_driver. Here's the full traceback. All loadbalancers fail to create and go active:

2017-09-19 12:40:29.808 22892 ERROR f5_openstack_agent.lbaasv2.drivers.bigip.icontrol_driver [req-d07a01bb-ffb3-4603-bf87-40d2b7ae3ed3 c49b8bff6a174be7b4c08f79c54dc34d 8da726cebd874bf78c71c45b60d67295 - - -] P
rep-network exception: icontrol_driver: create_port_on_subnet() got an unexpected keyword argument 'binding_profile'
2017-09-19 12:40:29.808 22892 DEBUG f5_openstack_agent.lbaasv2.drivers.bigip.icontrol_driver [req-d07a01bb-ffb3-4603-bf87-40d2b7ae3ed3 c49b8bff6a174be7b4c08f79c54dc34d 8da726cebd874bf78c71c45b60d67295 - - -]
   _prep_service_networking took 0.60143 secs _common_service_handler /usr/lib/python2.7/site-packages/f5_openstack_agent/lbaasv2/drivers/bigip/icontrol_driver.py:1238
2017-09-19 12:40:29.809 22892 ERROR f5_openstack_agent.lbaasv2.drivers.bigip.icontrol_driver [req-d07a01bb-ffb3-4603-bf87-40d2b7ae3ed3 c49b8bff6a174be7b4c08f79c54dc34d 8da726cebd874bf78c71c45b60d67295 - - -] c
reate_port_on_subnet() got an unexpected keyword argument 'binding_profile'
Traceback (most recent call last):

  File "/usr/lib/python2.7/site-packages/oslo_messaging/rpc/dispatcher.py", line 138, in _dispatch_and_reply
    incoming.message))

  File "/usr/lib/python2.7/site-packages/oslo_messaging/rpc/dispatcher.py", line 185, in _dispatch
    return self._do_dispatch(endpoint, method, ctxt, args)

  File "/usr/lib/python2.7/site-packages/oslo_messaging/rpc/dispatcher.py", line 127, in _do_dispatch
    result = func(ctxt, **new_args)

  File "/usr/lib/python2.7/site-packages/oslo_log/helpers.py", line 46, in wrapper
    return method(*args, **kwargs)

TypeError: create_port_on_subnet() got an unexpected keyword argument 'binding_profile'
2017-09-19 12:40:29.809 22892 ERROR f5_openstack_agent.lbaasv2.drivers.bigip.icontrol_driver Traceback (most recent call last):
2017-09-19 12:40:29.809 22892 ERROR f5_openstack_agent.lbaasv2.drivers.bigip.icontrol_driver   File "/usr/lib/python2.7/site-packages/f5_openstack_agent/lbaasv2/drivers/bigip/icontrol_driver.py", line 1234, in _common_service_handler
2017-09-19 12:40:29.809 22892 ERROR f5_openstack_agent.lbaasv2.drivers.bigip.icontrol_driver     raise error
2017-09-19 12:40:29.809 22892 ERROR f5_openstack_agent.lbaasv2.drivers.bigip.icontrol_driver TypeError: create_port_on_subnet() got an unexpected keyword argument 'binding_profile'
2017-09-19 12:40:29.809 22892 ERROR f5_openstack_agent.lbaasv2.drivers.bigip.icontrol_driver Traceback (most recent call last):
2017-09-19 12:40:29.809 22892 ERROR f5_openstack_agent.lbaasv2.drivers.bigip.icontrol_driver
2017-09-19 12:40:29.809 22892 ERROR f5_openstack_agent.lbaasv2.drivers.bigip.icontrol_driver   File "/usr/lib/python2.7/site-packages/oslo_messaging/rpc/dispatcher.py", line 138, in _dispatch_and_reply
2017-09-19 12:40:29.809 22892 ERROR f5_openstack_agent.lbaasv2.drivers.bigip.icontrol_driver     incoming.message))
2017-09-19 12:40:29.809 22892 ERROR f5_openstack_agent.lbaasv2.drivers.bigip.icontrol_driver
2017-09-19 12:40:29.809 22892 ERROR f5_openstack_agent.lbaasv2.drivers.bigip.icontrol_driver   File "/usr/lib/python2.7/site-packages/oslo_messaging/rpc/dispatcher.py", line 185, in _dispatch
2017-09-19 12:40:29.809 22892 ERROR f5_openstack_agent.lbaasv2.drivers.bigip.icontrol_driver     return self._do_dispatch(endpoint, method, ctxt, args)
2017-09-19 12:40:29.809 22892 ERROR f5_openstack_agent.lbaasv2.drivers.bigip.icontrol_driver
2017-09-19 12:40:29.809 22892 ERROR f5_openstack_agent.lbaasv2.drivers.bigip.icontrol_driver   File "/usr/lib/python2.7/site-packages/oslo_messaging/rpc/dispatcher.py", line 127, in _do_dispatch
2017-09-19 12:40:29.809 22892 ERROR f5_openstack_agent.lbaasv2.drivers.bigip.icontrol_driver     result = func(ctxt, **new_args)
2017-09-19 12:40:29.809 22892 ERROR f5_openstack_agent.lbaasv2.drivers.bigip.icontrol_driver
2017-09-19 12:40:29.809 22892 ERROR f5_openstack_agent.lbaasv2.drivers.bigip.icontrol_driver   File "/usr/lib/python2.7/site-packages/oslo_log/helpers.py", line 46, in wrapper
2017-09-19 12:40:29.809 22892 ERROR f5_openstack_agent.lbaasv2.drivers.bigip.icontrol_driver     return method(*args, **kwargs)
2017-09-19 12:40:29.809 22892 ERROR f5_openstack_agent.lbaasv2.drivers.bigip.icontrol_driver
2017-09-19 12:40:29.809 22892 ERROR f5_openstack_agent.lbaasv2.drivers.bigip.icontrol_driver TypeError: create_port_on_subnet() got an unexpected keyword argument 'binding_profile'
2017-09-19 12:40:29.809 22892 ERROR f5_openstack_agent.lbaasv2.drivers.bigip.icontrol_driver
2017-09-19 12:40:29.809 22892 ERROR f5_openstack_agent.lbaasv2.drivers.bigip.icontrol_driver
f5openstackdevautobot commented 7 years ago

We can validate expected and exclude unexpected args in our function.

f5openstackdevautobot commented 7 years ago

That's best practice where **kwargs are used.

richbrowne commented 7 years ago

This code fails because the f5-openstack-lbaasv2-driver is not at the right version. The RPC API is changed and this won't work without it. I don't know what I was thinking when I said there isn't a dependency from the agent to the driver. It is the other way around actually.

Rich