[openstack-dev] [devstack] [neutron] How to tell a compute host the control host is running Neutron

Dean Troyer dtroyer at gmail.com
Tue Mar 4 04:32:43 UTC 2014

On Mon, Mar 3, 2014 at 8:36 PM, Kyle Mestery <mestery at noironetworks.com>wrote:
> In all cases today with Open Source plugins, Neutron agents have run on
> the hosts. For OpenDaylight, this is not the case. OpenDaylight integrates
> with Neutron as a ML2 MechanismDriver. But it has no Neutron code on the
> compute hosts. OpenDaylight itself communicates directly to those compute
> hosts to program Open vSwitch.

> devstack doesn't provide a way for me to express this today. On the
> compute hosts in the above scenario, there is no "q-*" services enabled, so
> the "is_neutron_enabled" function returns 1, meaning no neutron.

True and working as designed.

> And then devstack sets Nova up to use nova-networking, which fails.

This only happens if you have enabled nova-network.  Since it is on by
default you must disable it.

> The patch I have submitted [1] modifies "is_neutron_enabled" to check for
> the meta neutron service being enabled, which will then configure nova to
> use Neutron instead of nova-networking on the hosts. If this sounds wonky
> and incorrect, I'm open to suggestions on how to make this happen.

>From the review:

is_neutron_enabled() is doing exactly what it is expected to do, return
success if it finds any "q-*" service listed in ENABLED_SERVICES. If no
neutron services are configured on a compute host, then this must not say
they are.

Putting 'neutron' in ENABLED_SERVICES does nothing and should do nothing.

Since you are not implementing the ODS as a Neutron plugin (as far as
DevStack is concerned) you should then treat it as a system service and
configure it that way, adding 'opendaylight' to ENABLED_SERVICES whenever
you want something to know it is being used.

> Note: I have another patch [2] which enables an OpenDaylight service,
> including configuration of OVS on hosts. But I cannot check if the
> "opendaylight" service is enabled, because this will only run on a single
> node, and again, not on each compute host.

I don't understand this conclusion. in multi-node each node gets its own
specific ENABLED_SERVICES list, you can check that on each node to
determine how to configure that node.  That is what I'm trying to explain
in that last paragraph above, maybe not too clearly.



Dean Troyer
dtroyer at gmail.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstack.org/pipermail/openstack-dev/attachments/20140303/fd5eeb73/attachment.html>

More information about the OpenStack-dev mailing list