Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

Cannot start neutron-server if I set the mechanism_driver to arista

We want to use the Arista switches in our openstack infrastructure.

For the time being we have MLAG configuration in our two Arista switches. So basically we want to have those vlan/vxlan be automatically created to our Arista devices as well.

So setting the mechanism_driver to arista: sudo grep arista /etc/neutron/plugins/ml2/ml2_conf.ini mechanism_drivers =arista

neutron-server will not start and it crashes:

2015-11-05 23:49:52.061 277680 INFO neutron.common.config [-] Logging enabled!
2015-11-05 23:49:52.061 277680 INFO neutron.common.config [-] /usr/bin/neutron-server version 2015.1.1
2015-11-05 23:49:52.068 277680 WARNING oslo_config.cfg [-] Option "nova_region_name" from group "DEFAULT" is deprecated. Use option "region_name" from group "nova".

2015-11-05 23:49:52.069 277680 INFO neutron.common.config [-] Config paste file: /usr/share/neutron/api-paste.ini
2015-11-05 23:49:52.093 277680 INFO neutron.manager [-] Loading core plugin: ml2
2015-11-05 23:49:52.254 277680 INFO neutron.plugins.ml2.managers [-] Configured type driver names: ['vxlan', 'gre', 'flat', 'vlan', 'local']
2015-11-05 23:49:52.258 277680 INFO neutron.plugins.ml2.drivers.type_flat [-] Arbitrary flat physical_network names allowed
2015-11-05 23:49:52.264 277680 INFO neutron.plugins.ml2.drivers.type_vlan [-] Network VLAN ranges: {'bond2': [(100, 299)]}
2015-11-05 23:49:52.271 277680 INFO neutron.plugins.ml2.drivers.type_local [-] ML2 LocalTypeDriver initialization complete
2015-11-05 23:49:52.279 277680 INFO neutron.plugins.ml2.managers [-] Loaded type driver names: ['flat', 'vlan', 'gre', 'local', 'vxlan']
2015-11-05 23:49:52.280 277680 INFO neutron.plugins.ml2.managers [-] Registered types: ['flat', 'vlan', 'local', 'gre', 'vxlan']
2015-11-05 23:49:52.280 277680 INFO neutron.plugins.ml2.managers [-] Tenant network_types: ['vxlan', 'vlan']
2015-11-05 23:49:52.281 277680 INFO neutron.plugins.ml2.managers [-] Configured extension driver names: []
2015-11-05 23:49:52.281 277680 INFO neutron.plugins.ml2.managers [-] Loaded extension driver names: []
2015-11-05 23:49:52.282 277680 INFO neutron.plugins.ml2.managers [-] Registered extension drivers: []
2015-11-05 23:49:52.282 277680 INFO neutron.plugins.ml2.managers [-] Configured mechanism driver names: ['arista']
2015-11-05 23:49:52.300 277680 ERROR stevedore.extension [-] Could not load 'arista': No module named AristaDriver
2015-11-05 23:49:52.300 277680 ERROR stevedore.extension [-] No module named AristaDriver
2015-11-05 23:49:52.300 277680 TRACE stevedore.extension Traceback (most recent call last):
2015-11-05 23:49:52.300 277680 TRACE stevedore.extension   File "/usr/lib/python2.7/site-packages/stevedore/extension.py", line 162, in _load_plugins
2015-11-05 23:49:52.300 277680 TRACE stevedore.extension     verify_requirements,
2015-11-05 23:49:52.300 277680 TRACE stevedore.extension   File "/usr/lib/python2.7/site-packages/stevedore/named.py", line 123, in _load_one_plugin
2015-11-05 23:49:52.300 277680 TRACE stevedore.extension     verify_requirements,
2015-11-05 23:49:52.300 277680 TRACE stevedore.extension   File "/usr/lib/python2.7/site-packages/stevedore/extension.py", line 185, in _load_one_plugin
2015-11-05 23:49:52.300 277680 TRACE stevedore.extension     plugin = ep.load(require=verify_requirements)
2015-11-05 23:49:52.300 277680 TRACE stevedore.extension   File "/usr/lib/python2.7/site-packages/pkg_resources.py", line 2260, in load
2015-11-05 23:49:52.300 277680 TRACE stevedore.extension     entry = __import__(self.module_name, globals(),globals(), ['__name__'])
2015-11-05 23:49:52.300 277680 TRACE stevedore.extension ImportError: No module named AristaDriver
2015-11-05 23:49:52.300 277680 TRACE stevedore.extension
2015-11-05 23:49:52.303 277680 ERROR networking_arista.ml2.arista_ml2 [-] Required option eapi_host is not set
2015-11-05 23:49:52.303 277680 ERROR stevedore.extension [-] Could not load 'arista': Required option eapi_host is not set
2015-11-05 23:49:52.303 277680 ERROR stevedore.extension [-] Required option eapi_host is not set
2015-11-05 23:49:52.303 277680 TRACE stevedore.extension Traceback (most recent call last):
2015-11-05 23:49:52.303 277680 TRACE stevedore.extension   File "/usr/lib/python2.7/site-packages/stevedore/extension.py", line 162, in _load_plugins
2015-11-05 23:49:52.303 277680 TRACE stevedore.extension     verify_requirements,
2015-11-05 23:49:52.303 277680 TRACE stevedore.extension   File "/usr/lib/python2.7/site-packages/stevedore/named.py", line 123, in _load_one_plugin
2015-11-05 23:49:52.303 277680 TRACE stevedore.extension     verify_requirements,
2015-11-05 23:49:52.303 277680 TRACE stevedore.extension   File "/usr/lib/python2.7/site-packages/stevedore/extension.py", line 187, in _load_one_plugin
2015-11-05 23:49:52.303 277680 TRACE stevedore.extension     obj = plugin(*invoke_args, **invoke_kwds)
2015-11-05 23:49:52.303 277680 TRACE stevedore.extension   File "/usr/lib/python2.7/site-packages/neutron/plugins/ml2/drivers/arista/mechanism_arista.py", line 46, in __init__
2015-11-05 23:49:52.303 277680 TRACE stevedore.extension     self.rpc = rpc or arista_ml2.AristaRPCWrapper()
2015-11-05 23:49:52.303 277680 TRACE stevedore.extension   File "/usr/lib/python2.7/site-packages/networking_arista/ml2/arista_ml2.py", line 43, in __init__
2015-11-05 23:49:52.303 277680 TRACE stevedore.extension     self._server = jsonrpclib.Server(self._eapi_host_url())
2015-11-05 23:49:52.303 277680 TRACE stevedore.extension   File "/usr/lib/python2.7/site-packages/networking_arista/ml2/arista_ml2.py", line 500, in _eapi_host_url
2015-11-05 23:49:52.303 277680 TRACE stevedore.extension     self._validate_config()
2015-11-05 23:49:52.303 277680 TRACE stevedore.extension   File "/usr/lib/python2.7/site-packages/networking_arista/ml2/arista_ml2.py", line 514, in _validate_config
2015-11-05 23:49:52.303 277680 TRACE stevedore.extension     raise arista_exc.AristaConfigError(msg=msg)
2015-11-05 23:49:52.303 277680 TRACE stevedore.extension AristaConfigError: Required option eapi_host is not set
2015-11-05 23:49:52.303 277680 TRACE stevedore.extension
2015-11-05 23:49:52.307 277680 ERROR neutron.common.config [-] Unable to load neutron from configuration file /usr/share/neutron/api-paste.ini.
2015-11-05 23:49:52.307 277680 TRACE neutron.common.config Traceback (most recent call last):
2015-11-05 23:49:52.307 277680 TRACE neutron.common.config   File "/usr/lib/python2.7/site-packages/neutron/common/config.py", line 227, in load_paste_app
2015-11-05 23:49:52.307 277680 TRACE neutron.common.config     app = deploy.loadapp("config:%s" % config_path, name=app_name)
2015-11-05 23:49:52.307 277680 TRACE neutron.common.config   File "/usr/lib/python2.7/site-packages/paste/deploy/loadwsgi.py", line 247, in loadapp
2015-11-05 23:49:52.307 277680 TRACE neutron.common.config     return loadobj(APP, uri, name=name, **kw)
2015-11-05 23:49:52.307 277680 TRACE neutron.common.config   File "/usr/lib/python2.7/site-packages/paste/deploy/loadwsgi.py", line 272, in loadobj
2015-11-05 23:49:52.307 277680 TRACE neutron.common.config     return context.create()
2015-11-05 23:49:52.307 277680 TRACE neutron.common.config   File "/usr/lib/python2.7/site-packages/paste/deploy/loadwsgi.py", line 710, in create
2015-11-05 23:49:52.307 277680 TRACE neutron.common.config     return self.object_type.invoke(self)
2015-11-05 23:49:52.307 277680 TRACE neutron.common.config   File "/usr/lib/python2.7/site-packages/paste/deploy/loadwsgi.py", line 144, in invoke
2015-11-05 23:49:52.307 277680 TRACE neutron.common.config     **context.local_conf)
2015-11-05 23:49:52.307 277680 TRACE neutron.common.config   File "/usr/lib/python2.7/site-packages/paste/deploy/util.py", line 56, in fix_call
2015-11-05 23:49:52.307 277680 TRACE neutron.common.config     val = callable(*args, **kw)
2015-11-05 23:49:52.307 277680 TRACE neutron.common.config   File "/usr/lib/python2.7/site-packages/paste/urlmap.py", line 25, in urlmap_factory
2015-11-05 23:49:52.307 277680 TRACE neutron.common.config     app = loader.get_app(app_name, global_conf=global_conf)
2015-11-05 23:49:52.307 277680 TRACE neutron.common.config   File "/usr/lib/python2.7/site-packages/paste/deploy/loadwsgi.py", line 350, in get_app
2015-11-05 23:49:52.307 277680 TRACE neutron.common.config     name=name, global_conf=global_conf).create()
2015-11-05 23:49:52.307 277680 TRACE neutron.common.config   File "/usr/lib/python2.7/site-packages/paste/deploy/loadwsgi.py", line 710, in create
2015-11-05 23:49:52.307 277680 TRACE neutron.common.config     return self.object_type.invoke(self)
2015-11-05 23:49:52.307 277680 TRACE neutron.common.config   File "/usr/lib/python2.7/site-packages/paste/deploy/loadwsgi.py", line 144, in invoke
2015-11-05 23:49:52.307 277680 TRACE neutron.common.config     **context.local_conf)
2015-11-05 23:49:52.307 277680 TRACE neutron.common.config   File "/usr/lib/python2.7/site-packages/paste/deploy/util.py", line 56, in fix_call
2015-11-05 23:49:52.307 277680 TRACE neutron.common.config     val = callable(*args, **kw)
2015-11-05 23:49:52.307 277680 TRACE neutron.common.config   File "/usr/lib/python2.7/site-packages/neutron/auth.py", line 71, in pipeline_factory
2015-11-05 23:49:52.307 277680 TRACE neutron.common.config     app = loader.get_app(pipeline[-1])
2015-11-05 23:49:52.307 277680 TRACE neutron.common.config   File "/usr/lib/python2.7/site-packages/paste/deploy/loadwsgi.py", line 350, in get_app
2015-11-05 23:49:52.307 277680 TRACE neutron.common.config     name=name, global_conf=global_conf).create()
2015-11-05 23:49:52.307 277680 TRACE neutron.common.config   File "/usr/lib/python2.7/site-packages/paste/deploy/loadwsgi.py", line 710, in create
2015-11-05 23:49:52.307 277680 TRACE neutron.common.config     return self.object_type.invoke(self)
2015-11-05 23:49:52.307 277680 TRACE neutron.common.config   File "/usr/lib/python2.7/site-packages/paste/deploy/loadwsgi.py", line 146, in invoke
2015-11-05 23:49:52.307 277680 TRACE neutron.common.config     return fix_call(context.object, context.global_conf, **context.local_conf)
2015-11-05 23:49:52.307 277680 TRACE neutron.common.config   File "/usr/lib/python2.7/site-packages/paste/deploy/util.py", line 56, in fix_call
2015-11-05 23:49:52.307 277680 TRACE neutron.common.config     val = callable(*args, **kw)
2015-11-05 23:49:52.307 277680 TRACE neutron.common.config   File "/usr/lib/python2.7/site-packages/neutron/api/v2/router.py", line 71, in factory
2015-11-05 23:49:52.307 277680 TRACE neutron.common.config     return cls(**local_config)
2015-11-05 23:49:52.307 277680 TRACE neutron.common.config   File "/usr/lib/python2.7/site-packages/neutron/api/v2/router.py", line 75, in __init__
2015-11-05 23:49:52.307 277680 TRACE neutron.common.config     plugin = manager.NeutronManager.get_plugin()
2015-11-05 23:49:52.307 277680 TRACE neutron.common.config   File "/usr/lib/python2.7/site-packages/neutron/manager.py", line 222, in get_plugin
2015-11-05 23:49:52.307 277680 TRACE neutron.common.config     return weakref.proxy(cls.get_instance().plugin)
2015-11-05 23:49:52.307 277680 TRACE neutron.common.config   File "/usr/lib/python2.7/site-packages/neutron/manager.py", line 216, in get_instance
2015-11-05 23:49:52.307 277680 TRACE neutron.common.config     cls._create_instance()
2015-11-05 23:49:52.307 277680 TRACE neutron.common.config   File "/usr/lib/python2.7/site-packages/oslo_concurrency/lockutils.py", line 445, in inner
2015-11-05 23:49:52.307 277680 TRACE neutron.common.config     return f(*args, **kwargs)
2015-11-05 23:49:52.307 277680 TRACE neutron.common.config   File "/usr/lib/python2.7/site-packages/neutron/manager.py", line 202, in _create_instance
2015-11-05 23:49:52.307 277680 TRACE neutron.common.config     cls._instance = cls()
...

2015-11-05 23:49:52.307 277680 TRACE neutron.common.config     self._init_plugins(extensions)
2015-11-05 23:49:52.307 277680 TRACE neutron.common.config   File "/usr/lib/python2.7/site-packages/stevedore/named.py", line 112, in _init_plugins
2015-11-05 23:49:52.307 277680 TRACE neutron.common.config     self.extensions = [self[n] for n in self._names]
2015-11-05 23:49:52.307 277680 TRACE neutron.common.config   File "/usr/lib/python2.7/site-packages/stevedore/extension.py", line 283, in __getitem__
2015-11-05 23:49:52.307 277680 TRACE neutron.common.config     return self._extensions_by_name[name]
2015-11-05 23:49:52.307 277680 TRACE neutron.common.config KeyError: 'arista'
2015-11-05 23:49:52.307 277680 TRACE neutron.common.config
2015-11-05 23:49:52.311 277680 ERROR neutron.service [-] Unrecoverable error: please check log for details.
2015-11-05 23:49:52.311 277680 TRACE neutron.service Traceback (most recent call last):
2015-11-05 23:49:52.311 277680 TRACE neutron.service   File "/usr/lib/python2.7/site-packages/neutron/service.py", line 103, in serve_wsgi
2015-11-05 23:49:52.311 277680 TRACE neutron.service     service.start()
2015-11-05 23:49:52.311 277680 TRACE neutron.service   File "/usr/lib/python2.7/site-packages/neutron/service.py", line 74, in start
2015-11-05 23:49:52.311 277680 TRACE neutron.service     self.wsgi_app = _run_wsgi(self.app_name)
2015-11-05 23:49:52.311 277680 TRACE neutron.service   File "/usr/lib/python2.7/site-packages/neutron/service.py", line 169, in _run_wsgi
2015-11-05 23:49:52.311 277680 TRACE neutron.service     app = config.load_paste_app(app_name)
2015-11-05 23:49:52.311 277680 TRACE neutron.service   File "/usr/lib/python2.7/site-packages/neutron/common/config.py", line 234, in load_paste_app
2015-11-05 23:49:52.311 277680 TRACE neutron.service     raise RuntimeError(msg)
2015-11-05 23:49:52.311 277680 TRACE neutron.service RuntimeError: Unable to load neutron from configuration file /usr/share/neutron/api-paste.ini.
2015-11-05 23:49:52.311 277680 TRACE neutron.service

I have the arista driver installed in my network node: python-networking_arista-2015.1.5-0.el7.noarch

This is what I have in my ml2_conf_arista.ini : sudo cat ~/ml2_conf_arista.ini

[ml2_arista] eapi_host =172.17.21.2 eapi_username =eapi eapi_password =eapi use_fqdn = True sync_interval = 45 region_name = MainRegion

[l3_arista]

primary_l3_host_username = eapi primary_l3_host_password = eapi secondary_l3_host = 172.17.21.3 mlag_config = True l3_sync_interval = 45

Any idea guys?