[RFE] Using networking-infoblox with opencontrail

Bug #1677169 reported by Danil Zhigalin on 2017-03-29
10
This bug affects 2 people
Affects Status Importance Assigned to Milestone
networking-infoblox
Undecided
Unassigned

Bug Description

Hello,

We are using opencontrail in our infrastructure as Neutron plugin. We would also like to use
networking-infoblox because infoblox is our IPAM and it would be very convenient to have them integrated. First of all we tested networking-infoblox in conjunction with OpenStack mitaka with neutron ML2. It worked fine and then we tried to integrate it in another OpenStack Mitaka that uses Contrail as its core plugin. Unfortunately it didn't work. infoblox-ipam-agent failed to start and spat this stack in log:

6dec191c360 - - - - -] Infoblox grid has been synced up.
2017-03-29 08:20:04.972 1232 INFO neutron.manager [req-4bfe3310-6a21-4208-af9b-a6dec191c360 - - - - -] Loading core plugin: neutron_plugin_contrail.plugins.opencontrail.contrail_plugin.NeutronPluginContrailCoreV2
2017-03-29 08:20:04.984 1232 CRITICAL neutron [req-4bfe3310-6a21-4208-af9b-a6dec191c360 - - - - -] NoSuchOptError: no such option in group DEFAULT: keystone_authtoken
2017-03-29 08:20:04.984 1232 ERROR neutron Traceback (most recent call last):
2017-03-29 08:20:04.984 1232 ERROR neutron File "/usr/local/bin/infoblox-ipam-agent", line 10, in <module>
2017-03-29 08:20:04.984 1232 ERROR neutron sys.exit(main())
2017-03-29 08:20:04.984 1232 ERROR neutron File "/usr/local/lib/python2.7/dist-packages/networking_infoblox/neutron/cmd/eventlet/infoblox_ipam_agent.py", line 43, in main
2017-03-29 08:20:04.984 1232 ERROR neutron notification.NotificationService(),
2017-03-29 08:20:04.984 1232 ERROR neutron File "/usr/local/lib/python2.7/dist-packages/networking_infoblox/neutron/common/notification.py", line 95, in __init__
2017-03-29 08:20:04.984 1232 ERROR neutron self._init_notification_listener()
2017-03-29 08:20:04.984 1232 ERROR neutron File "/usr/local/lib/python2.7/dist-packages/networking_infoblox/neutron/common/notification.py", line 107, in _init_notification_listener
2017-03-29 08:20:04.984 1232 ERROR neutron self.grid_manager)]
2017-03-29 08:20:04.984 1232 ERROR neutron File "/usr/local/lib/python2.7/dist-packages/networking_infoblox/neutron/common/notification.py", line 67, in __init__
2017-03-29 08:20:04.984 1232 ERROR neutron self.context, grid_manager=grid_manager)
2017-03-29 08:20:04.984 1232 ERROR neutron File "/usr/local/lib/python2.7/dist-packages/networking_infoblox/neutron/common/notification_handler.py", line 45, in __init__
2017-03-29 08:20:04.984 1232 ERROR neutron self.plugin = plugin if plugin else manager.NeutronManager.get_plugin()
2017-03-29 08:20:04.984 1232 ERROR neutron File "/usr/lib/python2.7/dist-packages/neutron/manager.py", line 233, in get_plugin
2017-03-29 08:20:04.984 1232 ERROR neutron return weakref.proxy(cls.get_instance().plugin)
2017-03-29 08:20:04.984 1232 ERROR neutron File "/usr/lib/python2.7/dist-packages/neutron/manager.py", line 227, in get_instance
2017-03-29 08:20:04.984 1232 ERROR neutron cls._create_instance()
2017-03-29 08:20:04.984 1232 ERROR neutron File "/usr/lib/python2.7/dist-packages/oslo_concurrency/lockutils.py", line 271, in inner
2017-03-29 08:20:04.984 1232 ERROR neutron return f(*args, **kwargs)
2017-03-29 08:20:04.984 1232 ERROR neutron File "/usr/lib/python2.7/dist-packages/neutron/manager.py", line 213, in _create_instance
2017-03-29 08:20:04.984 1232 ERROR neutron cls._instance = cls()
2017-03-29 08:20:04.984 1232 ERROR neutron File "/usr/lib/python2.7/dist-packages/neutron/manager.py", line 116, in __init__
2017-03-29 08:20:04.984 1232 ERROR neutron plugin_provider)
2017-03-29 08:20:04.984 1232 ERROR neutron File "/usr/lib/python2.7/dist-packages/neutron/manager.py", line 149, in _get_plugin_instance
2017-03-29 08:20:04.984 1232 ERROR neutron return plugin_class()
2017-03-29 08:20:04.984 1232 ERROR neutron File "/usr/lib/python2.7/dist-packages/neutron_plugin_contrail/plugins/opencontrail/contrail_plugin_base.py", line 196, in __init__
2017-03-29 08:20:04.984 1232 ERROR neutron self._parse_class_args()
2017-03-29 08:20:04.984 1232 ERROR neutron File "/usr/lib/python2.7/dist-packages/neutron_plugin_contrail/plugins/opencontrail/contrail_plugin_base.py", line 185, in _parse_class_args
2017-03-29 08:20:04.984 1232 ERROR neutron self._build_auth_details()
2017-03-29 08:20:04.984 1232 ERROR neutron File "/usr/lib/python2.7/dist-packages/neutron_plugin_contrail/plugins/opencontrail/contrail_plugin.py", line 85, in _build_auth_details
2017-03-29 08:20:04.984 1232 ERROR neutron kcfg = cfg.CONF.keystone_authtoken
2017-03-29 08:20:04.984 1232 ERROR neutron File "/usr/lib/python2.7/dist-packages/oslo_config/cfg.py", line 2183, in __getattr__
2017-03-29 08:20:04.984 1232 ERROR neutron raise NoSuchOptError(name)
2017-03-29 08:20:04.984 1232 ERROR neutron NoSuchOptError: no such option in group DEFAULT: keystone_authtoken
2017-03-29 08:20:04.984 1232 ERROR neutron

as far as I could debug it with pdb, keystone_authtoken is indeed in the cfg.CONF namespace.

(Pdb) kcfg = cfg.CONF.keystone_authtoken << Exception is happening here
*** NoSuchOptError: no such option in group DEFAULT: keystone_authtoken

> /usr/lib/python2.7/dist-packages/neutron_plugin_contrail/plugins/opencontrail/contrail_plugin.py(85)_build_auth_details()

(Pdb) cfg.CONF.__dict__['_namespace']._parsed[1]['keystone_authtoken']
{'username': ['neutron'], 'project_name': ['services'], 'region_name': ['RegionOne'], 'tenant_name': ['services'], 'user_domain_name': ['Default'], 'admin_tenant_name': ['services'], 'auth_port': ['35357'], 'auth_protocol': ['http'], 'auth_uri': ['http://172.21.63.2:5000/'], 'admin_user': ['neutron'], 'auth_url': ['http://172.21.63.2:35357/'], 'admin_password': ['7A7lQRgtqBZnWHCKnTBEPVRP'], 'auth_host': ['172.21.63.2'], 'memcached_servers': ['172.21.63.4:11211'], 'password': ['7A7lQRgtqBZnWHCKnTBEPVRP'], 'project_domain_name': ['Default']}

So I don't understand what causes this error. Is there some limitation that is not letting it go further?

Just to summarize, if this is not expected to work with any other core plugins other then ML2, would be nice to have it in the future.

To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers