Begin new lib/neutron
Background for this work can be read on the mailing list:
http://lists.openstack.org/pipermail/openstack-dev/2016-May/094063.html
Usage of the new Neutron is by setting the following in
ENABLED_SERVICES:
* neutron-api
* neutron-l3
* neutron-agent
* neutron-dhcp
* neutron-metadata-agent
For now, the new neutron library supports just the ML2 plugin, with the
Open vSwitch and Linux Bridge agents supported. All other Neutron
plugins should be creating their own DevStack plugin if they wish for
DevStack to support them. Many of them already do.
Other notable changes compared to neutron-legacy:
* Rely on the Neutron defaults, and force Neutron to make
sane defaults instead of all kinds of knobs in DevStack.
* Default to rootwrap daemon support
* Use the security group driver by default
* interface_driver can now use NEUTRON_AGENT (linuxbridge, openvswitch), since
they are entrypoints in neutron's setup.cfg
* Use NEUTRON_AGENT variable to determine which agent to run
Works with NEUTRON_AGENT set to either "linuxbridge" or "openvswitch"
Default is openvswitch for the time being.
* Set ML2 configuration for VXLAN support
* Remove Xen hypervisor stuff - it should be a plugin
* Move L3 crud into separate service file:
There's a lot of L3 configuration that was in the main neutron file, but
a lot of it is self contained and can be moved into its own file.
The new l3 service file will contain all the previous L3 plumbing and
configuration that the OpenStack Gate expects, while also eventually
moving the whole l3 network creation step into a single hook that can be
overridden by plugins.
* Introduce a check for a function "neutron_plugin_create_initial_networks" which
will become the mechanism through which different topologies, and
networking plugins can create and wire the initial networks that are
created during a stack.sh run.
The new lib/neutron is considered experimental, and followup patches
will build upon this one. Existing users of lib/neutron-legacy should
remain unharmed.
Co-Authored-By: Hirofumi Ichihara <ichihara.hirofumi@lab.ntt.co.jp>
Co-Authored-By: Dean Troyer <dtroyer@gmail.com>
Change-Id: I31b6362c6d9992f425f2dedbbeff2568390a93da
diff --git a/stack.sh b/stack.sh
index 3de9af2..760f4f2 100755
--- a/stack.sh
+++ b/stack.sh
@@ -559,6 +559,7 @@
source $TOP_DIR/lib/cinder
source $TOP_DIR/lib/swift
source $TOP_DIR/lib/heat
+source $TOP_DIR/lib/neutron
source $TOP_DIR/lib/neutron-legacy
source $TOP_DIR/lib/ldap
source $TOP_DIR/lib/dstat
@@ -1075,7 +1076,7 @@
configure_neutron
# Run init_neutron only on the node hosting the Neutron API server
- if is_service_enabled $DATABASE_BACKENDS && is_service_enabled q-svc; then
+ if is_service_enabled $DATABASE_BACKENDS && is_service_enabled neutron; then
init_neutron
fi
fi
@@ -1142,7 +1143,7 @@
# Additional Nova configuration that is dependent on other services
if is_service_enabled neutron; then
- create_nova_conf_neutron
+ configure_neutron_nova
elif is_service_enabled n-net; then
create_nova_conf_nova_network
fi
@@ -1219,7 +1220,11 @@
start_nova_api
fi
-if is_service_enabled q-svc; then
+if is_service_enabled neutron-api; then
+ echo_summary "Starting Neutron"
+ start_neutron_api
+ # check_neutron_third_party_integration
+elif is_service_enabled q-svc; then
echo_summary "Starting Neutron"
start_neutron_service_and_check
check_neutron_third_party_integration
@@ -1240,7 +1245,7 @@
fi
if is_service_enabled neutron; then
- start_neutron_agents
+ start_neutron
fi
# Once neutron agents are started setup initial network elements
if is_service_enabled q-svc && [[ "$NEUTRON_CREATE_INITIAL_NETWORKS" == "True" ]]; then
@@ -1248,6 +1253,7 @@
create_neutron_initial_network
setup_neutron_debug
fi
+
if is_service_enabled nova; then
echo_summary "Starting Nova"
start_nova