Remove n-cells, n-net and n-cauth

Remove nova cells v1 support, which also allows/necessitates removing
support for nova networks (which was only supported with cells v1) and
nova-consoleauth (which was required by cells v1 but is unnecessary
otherwise).

The Depends-On isn't really necessary, but it's here to make sure this
doesn't merge until we _really_ have killed cells v1.

I honestly expected this patch would be bigger.

Change-Id: I90316208d1af42c1659d3bee386f95e38aaf2c56
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
Depends-On: Ib0e0b708c46e4330e51f8f8fdfbb02d45aaf0f44
This commit is contained in:
Stephen Finucane 2019-05-21 14:17:11 +01:00
parent 984c3ae33b
commit 4b8cba77fe
14 changed files with 23 additions and 262 deletions

View File

@ -408,7 +408,6 @@
# Nova services # Nova services
n-api: true n-api: true
n-api-meta: true n-api-meta: true
n-cauth: true
n-cond: true n-cond: true
n-cpu: true n-cpu: true
n-novnc: true n-novnc: true
@ -689,11 +688,8 @@
# being experimental any more, so we can keep this list somewhat # being experimental any more, so we can keep this list somewhat
# pruned. # pruned.
# #
# * nova-cells-v1: maintained by nova for cells v1 (nova-cells service);
# it's in experimental here (and in nova) for testing cells v1
# changes to devstack w/o gating on it for all devstack changes.
# * nova-next: maintained by nova for unreleased/undefaulted # * nova-next: maintained by nova for unreleased/undefaulted
# things like cellsv2 and placement-api # things
# * neutron-fullstack-with-uwsgi: maintained by neutron for fullstack test # * neutron-fullstack-with-uwsgi: maintained by neutron for fullstack test
# when neutron-api is served by uwsgi, it's in exprimental for testing. # when neutron-api is served by uwsgi, it's in exprimental for testing.
# the next cycle we can remove this job if things turn out to be # the next cycle we can remove this job if things turn out to be
@ -706,10 +702,6 @@
experimental: experimental:
jobs: jobs:
- nova-cells-v1:
irrelevant-files:
- ^.*\.rst$
- ^doc/.*$
- nova-next - nova-next
- neutron-fullstack-with-uwsgi - neutron-fullstack-with-uwsgi
- neutron-functional-with-uwsgi - neutron-functional-with-uwsgi

View File

@ -145,8 +145,8 @@ follows:
* Global configuration that may be referenced in ``local.conf``, i.e. ``DEST``, ``DATA_DIR`` * Global configuration that may be referenced in ``local.conf``, i.e. ``DEST``, ``DATA_DIR``
* Global service configuration like ``ENABLED_SERVICES`` * Global service configuration like ``ENABLED_SERVICES``
* Variables used by multiple services that do not have a clear owner, i.e. * Variables used by multiple services that do not have a clear owner, i.e.
``VOLUME_BACKING_FILE_SIZE`` (nova-compute, nova-volumes and cinder) or ``VOLUME_BACKING_FILE_SIZE`` (nova-compute and cinder) or
``PUBLIC_NETWORK_NAME`` (nova-network and neutron) ``PUBLIC_NETWORK_NAME`` (only neutron but formerly nova-network too)
* Variables that can not be cleanly declared in a project file due to * Variables that can not be cleanly declared in a project file due to
dependency ordering, i.e. the order of sourcing the project files can dependency ordering, i.e. the order of sourcing the project files can
not be changed for other reasons but the earlier file needs to dereference a not be changed for other reasons but the earlier file needs to dereference a

View File

@ -663,20 +663,6 @@ Xenserver
If you would like to use Xenserver as the hypervisor, please refer to If you would like to use Xenserver as the hypervisor, please refer to
the instructions in ``./tools/xen/README.md``. the instructions in ``./tools/xen/README.md``.
Cells
~~~~~
`Cells <https://wiki.openstack.org/wiki/Blueprint-nova-compute-cells>`__ is
an alternative scaling option. To setup a cells environment add the
following to your ``localrc`` section:
::
enable_service n-cell
Be aware that there are some features currently missing in cells, one
notable one being security groups.
Cinder Cinder
~~~~~~ ~~~~~~

View File

@ -120,11 +120,8 @@ cluster controller's DevStack in ``local.conf``:
[[local|localrc]] [[local|localrc]]
HOST_IP=192.168.42.11 HOST_IP=192.168.42.11
FLAT_INTERFACE=eth0
FIXED_RANGE=10.4.128.0/20 FIXED_RANGE=10.4.128.0/20
FIXED_NETWORK_SIZE=4096
FLOATING_RANGE=192.168.42.128/25 FLOATING_RANGE=192.168.42.128/25
MULTI_HOST=1
LOGFILE=/opt/stack/logs/stack.sh.log LOGFILE=/opt/stack/logs/stack.sh.log
ADMIN_PASSWORD=labstack ADMIN_PASSWORD=labstack
DATABASE_PASSWORD=supersecret DATABASE_PASSWORD=supersecret
@ -160,11 +157,8 @@ machines, create a ``local.conf`` with:
[[local|localrc]] [[local|localrc]]
HOST_IP=192.168.42.12 # change this per compute node HOST_IP=192.168.42.12 # change this per compute node
FLAT_INTERFACE=eth0
FIXED_RANGE=10.4.128.0/20 FIXED_RANGE=10.4.128.0/20
FIXED_NETWORK_SIZE=4096
FLOATING_RANGE=192.168.42.128/25 FLOATING_RANGE=192.168.42.128/25
MULTI_HOST=1
LOGFILE=/opt/stack/logs/stack.sh.log LOGFILE=/opt/stack/logs/stack.sh.log
ADMIN_PASSWORD=labstack ADMIN_PASSWORD=labstack
DATABASE_PASSWORD=supersecret DATABASE_PASSWORD=supersecret

View File

@ -87,11 +87,8 @@ do the following:
- Set ``FLOATING_RANGE`` to a range not used on the local network, i.e. - Set ``FLOATING_RANGE`` to a range not used on the local network, i.e.
192.168.1.224/27. This configures IP addresses ending in 225-254 to 192.168.1.224/27. This configures IP addresses ending in 225-254 to
be used as floating IPs. be used as floating IPs.
- Set ``FIXED_RANGE`` and ``FIXED_NETWORK_SIZE`` to configure the - Set ``FIXED_RANGE`` to configure the internal address space used by the
internal address space used by the instances. instances.
- Set ``FLAT_INTERFACE`` to the Ethernet interface that connects the
host to your local network. This is the interface that should be
configured with the static IP address mentioned above.
- Set the administrative password. This password is used for the - Set the administrative password. This password is used for the
**admin** and **demo** accounts set up as OpenStack users. **admin** and **demo** accounts set up as OpenStack users.
- Set the MySQL administrative password. The default here is a random - Set the MySQL administrative password. The default here is a random
@ -108,8 +105,6 @@ do the following:
[[local|localrc]] [[local|localrc]]
FLOATING_RANGE=192.168.1.224/27 FLOATING_RANGE=192.168.1.224/27
FIXED_RANGE=10.11.12.0/24 FIXED_RANGE=10.11.12.0/24
FIXED_NETWORK_SIZE=256
FLAT_INTERFACE=eth0
ADMIN_PASSWORD=supersecret ADMIN_PASSWORD=supersecret
DATABASE_PASSWORD=iheartdatabases DATABASE_PASSWORD=iheartdatabases
RABBIT_PASSWORD=flopsymopsy RABBIT_PASSWORD=flopsymopsy

View File

@ -1,6 +1,6 @@
conntrack-tools conntrack-tools
curl curl
dnsmasq # for nova-network dnsmasq # for q-dhcp
dnsmasq-utils # for dhcp_release dnsmasq-utils # for dhcp_release
ebtables ebtables
gawk gawk

View File

@ -469,7 +469,7 @@ EOF
# ping check # ping check
# Uses globals ``ENABLED_SERVICES``, ``TOP_DIR``, ``MULTI_HOST``, ``PRIVATE_NETWORK`` # Uses globals ``ENABLED_SERVICES``, ``TOP_DIR``, ``PRIVATE_NETWORK``
# ping_check <ip> [boot-timeout] [from_net] [expected] # ping_check <ip> [boot-timeout] [from_net] [expected]
function ping_check { function ping_check {
local ip=$1 local ip=$1
@ -483,12 +483,9 @@ function ping_check {
# if we don't specify a from_net we're expecting things to work # if we don't specify a from_net we're expecting things to work
# fine from our local box. # fine from our local box.
if [[ -n "$from_net" ]]; then if [[ -n "$from_net" ]]; then
# TODO(stephenfin): Is there any way neutron could be disabled now?
if is_service_enabled neutron; then if is_service_enabled neutron; then
ping_cmd="$TOP_DIR/tools/ping_neutron.sh $from_net" ping_cmd="$TOP_DIR/tools/ping_neutron.sh $from_net"
elif [[ "$MULTI_HOST" = "True" && "$from_net" = "$PRIVATE_NETWORK_NAME" ]]; then
# there is no way to address the multihost / private case, bail here for compatibility.
# TODO: remove this cruft and redo code to handle this at the caller level.
return
fi fi
fi fi

View File

@ -1929,10 +1929,6 @@ function enable_service {
# For backward compatibility if we have **swift** in ENABLED_SERVICES all the # For backward compatibility if we have **swift** in ENABLED_SERVICES all the
# **s-** services will be enabled. This will be deprecated in the future. # **s-** services will be enabled. This will be deprecated in the future.
# #
# Cells within nova is enabled if **n-cell** is in ``ENABLED_SERVICES``.
# We also need to make sure to treat **n-cell-region** and **n-cell-child**
# as enabled in this case.
#
# Uses global ``ENABLED_SERVICES`` # Uses global ``ENABLED_SERVICES``
# is_service_enabled service [service ...] # is_service_enabled service [service ...]
function is_service_enabled { function is_service_enabled {
@ -1955,7 +1951,6 @@ function is_service_enabled {
# TODO(dtroyer): Remove these legacy special-cases after the is_XXX_enabled() # TODO(dtroyer): Remove these legacy special-cases after the is_XXX_enabled()
# are implemented # are implemented
[[ ${service} == n-cell-* && ,${ENABLED_SERVICES} =~ ,"n-cell" ]] && enabled=0
[[ ${service} == n-cpu-* && ,${ENABLED_SERVICES} =~ ,"n-cpu" ]] && enabled=0 [[ ${service} == n-cpu-* && ,${ENABLED_SERVICES} =~ ,"n-cpu" ]] && enabled=0
[[ ${service} == "nova" && ,${ENABLED_SERVICES} =~ ,"n-" ]] && enabled=0 [[ ${service} == "nova" && ,${ENABLED_SERVICES} =~ ,"n-" ]] && enabled=0
[[ ${service} == "glance" && ,${ENABLED_SERVICES} =~ ,"g-" ]] && enabled=0 [[ ${service} == "glance" && ,${ENABLED_SERVICES} =~ ,"g-" ]] && enabled=0

View File

@ -50,8 +50,6 @@
# See "Neutron Network Configuration" below for additional variables # See "Neutron Network Configuration" below for additional variables
# that must be set in localrc for connectivity across hosts with # that must be set in localrc for connectivity across hosts with
# Neutron. # Neutron.
#
# With Neutron networking the NETWORK_MANAGER variable is ignored.
# Settings # Settings
# -------- # --------

168
lib/nova
View File

@ -50,11 +50,9 @@ NOVA_AUTH_CACHE_DIR=${NOVA_AUTH_CACHE_DIR:-/var/cache/nova}
NOVA_CONF_DIR=/etc/nova NOVA_CONF_DIR=/etc/nova
NOVA_CONF=$NOVA_CONF_DIR/nova.conf NOVA_CONF=$NOVA_CONF_DIR/nova.conf
NOVA_CELLS_CONF=$NOVA_CONF_DIR/nova-cells.conf
NOVA_COND_CONF=$NOVA_CONF_DIR/nova.conf NOVA_COND_CONF=$NOVA_CONF_DIR/nova.conf
NOVA_CPU_CONF=$NOVA_CONF_DIR/nova-cpu.conf NOVA_CPU_CONF=$NOVA_CONF_DIR/nova-cpu.conf
NOVA_FAKE_CONF=$NOVA_CONF_DIR/nova-fake.conf NOVA_FAKE_CONF=$NOVA_CONF_DIR/nova-fake.conf
NOVA_CELLS_DB=${NOVA_CELLS_DB:-nova_cell}
NOVA_API_DB=${NOVA_API_DB:-nova_api} NOVA_API_DB=${NOVA_API_DB:-nova_api}
NOVA_UWSGI=$NOVA_BIN_DIR/nova-api-wsgi NOVA_UWSGI=$NOVA_BIN_DIR/nova-api-wsgi
NOVA_METADATA_UWSGI=$NOVA_BIN_DIR/nova-metadata-wsgi NOVA_METADATA_UWSGI=$NOVA_BIN_DIR/nova-metadata-wsgi
@ -111,7 +109,6 @@ QEMU_CONF=/etc/libvirt/qemu.conf
# Set default defaults here as some hypervisor drivers override these # Set default defaults here as some hypervisor drivers override these
PUBLIC_INTERFACE_DEFAULT=br100 PUBLIC_INTERFACE_DEFAULT=br100
FLAT_NETWORK_BRIDGE_DEFAULT=br100
# Set ``GUEST_INTERFACE_DEFAULT`` to some interface on the box so that # Set ``GUEST_INTERFACE_DEFAULT`` to some interface on the box so that
# the default isn't completely crazy. This will match ``eth*``, ``em*``, or # the default isn't completely crazy. This will match ``eth*``, ``em*``, or
# the new ``p*`` interfaces, then basically picks the first # the new ``p*`` interfaces, then basically picks the first
@ -137,44 +134,6 @@ if is_service_enabled nova && [[ -r $NOVA_PLUGINS/hypervisor-$VIRT_DRIVER ]]; th
source $NOVA_PLUGINS/hypervisor-$VIRT_DRIVER source $NOVA_PLUGINS/hypervisor-$VIRT_DRIVER
fi fi
# Nova Network Configuration
# --------------------------
NETWORK_MANAGER=${NETWORK_MANAGER:-${NET_MAN:-FlatDHCPManager}}
VLAN_INTERFACE=${VLAN_INTERFACE:-$GUEST_INTERFACE_DEFAULT}
FLAT_NETWORK_BRIDGE=${FLAT_NETWORK_BRIDGE:-$FLAT_NETWORK_BRIDGE_DEFAULT}
# If you are using the FlatDHCP network mode on multiple hosts, set the
# ``FLAT_INTERFACE`` variable but make sure that the interface doesn't already
# have an IP or you risk breaking things.
#
# **DHCP Warning**: If your flat interface device uses DHCP, there will be a
# hiccup while the network is moved from the flat interface to the flat network
# bridge. This will happen when you launch your first instance. Upon launch
# you will lose all connectivity to the node, and the VM launch will probably
# fail.
#
# If you are running on a single node and don't need to access the VMs from
# devices other than that node, you can set ``FLAT_INTERFACE=``
# This will stop nova from bridging any interfaces into ``FLAT_NETWORK_BRIDGE``.
FLAT_INTERFACE=${FLAT_INTERFACE:-$GUEST_INTERFACE_DEFAULT}
# ``MULTI_HOST`` is a mode where each compute node runs its own network node. This
# allows network operations and routing for a VM to occur on the server that is
# running the VM - removing a SPOF and bandwidth bottleneck.
MULTI_HOST=$(trueorfalse False MULTI_HOST)
# ``NOVA_ALLOW_MOVE_TO_SAME_HOST`` can be set to False in multi node DevStack,
# where there are at least two nova-computes.
NOVA_ALLOW_MOVE_TO_SAME_HOST=$(trueorfalse True NOVA_ALLOW_MOVE_TO_SAME_HOST)
# Test floating pool and range are used for testing. They are defined
# here until the admin APIs can replace nova-manage
TEST_FLOATING_POOL=${TEST_FLOATING_POOL:-test}
TEST_FLOATING_RANGE=${TEST_FLOATING_RANGE:-192.168.253.0/29}
# Other Nova configurations # Other Nova configurations
# ---------------------------- # ----------------------------
@ -183,6 +142,10 @@ TEST_FLOATING_RANGE=${TEST_FLOATING_RANGE:-192.168.253.0/29}
# and Glance. # and Glance.
NOVA_USE_SERVICE_TOKEN=$(trueorfalse False NOVA_USE_SERVICE_TOKEN) NOVA_USE_SERVICE_TOKEN=$(trueorfalse False NOVA_USE_SERVICE_TOKEN)
# ``NOVA_ALLOW_MOVE_TO_SAME_HOST`` can be set to False in multi node DevStack,
# where there are at least two nova-computes.
NOVA_ALLOW_MOVE_TO_SAME_HOST=$(trueorfalse True NOVA_ALLOW_MOVE_TO_SAME_HOST)
# Enable debugging levels for iscsid service (goes from 0-8) # Enable debugging levels for iscsid service (goes from 0-8)
ISCSID_DEBUG=$(trueorfalse False ISCSID_DEBUG) ISCSID_DEBUG=$(trueorfalse False ISCSID_DEBUG)
ISCSID_DEBUG_LEVEL=${ISCSID_DEBUG_LEVEL:-4} ISCSID_DEBUG_LEVEL=${ISCSID_DEBUG_LEVEL:-4}
@ -198,13 +161,6 @@ function is_nova_enabled {
return 1 return 1
} }
# Test if any Nova Cell services are enabled
# is_nova_enabled
function is_n-cell_enabled {
[[ ,${ENABLED_SERVICES} =~ ,"n-cell" ]] && return 0
return 1
}
# is_nova_console_proxy_compute_tls_enabled() - Test if the Nova Console Proxy # is_nova_console_proxy_compute_tls_enabled() - Test if the Nova Console Proxy
# service has TLS enabled # service has TLS enabled
function is_nova_console_proxy_compute_tls_enabled { function is_nova_console_proxy_compute_tls_enabled {
@ -501,10 +457,6 @@ function create_nova_conf {
if [ -n "$NOVA_INSTANCES_PATH" ]; then if [ -n "$NOVA_INSTANCES_PATH" ]; then
iniset $NOVA_CONF DEFAULT instances_path "$NOVA_INSTANCES_PATH" iniset $NOVA_CONF DEFAULT instances_path "$NOVA_INSTANCES_PATH"
fi fi
if [ "$MULTI_HOST" != "False" ]; then
iniset $NOVA_CONF DEFAULT multi_host "True"
iniset $NOVA_CONF DEFAULT send_arp_for_ha "True"
fi
if [ "$SYSLOG" != "False" ]; then if [ "$SYSLOG" != "False" ]; then
iniset $NOVA_CONF DEFAULT use_syslog "True" iniset $NOVA_CONF DEFAULT use_syslog "True"
fi fi
@ -551,21 +503,6 @@ function create_nova_conf {
iniset $NOVA_CONF DEFAULT graceful_shutdown_timeout "$SERVICE_GRACEFUL_SHUTDOWN_TIMEOUT" iniset $NOVA_CONF DEFAULT graceful_shutdown_timeout "$SERVICE_GRACEFUL_SHUTDOWN_TIMEOUT"
# Setup logging for nova-dhcpbridge command line
sudo cp "$NOVA_CONF" "$NOVA_CONF_DIR/nova-dhcpbridge.conf"
if is_service_enabled n-net; then
local service="n-dhcp"
local logfile="${service}.log.${CURRENT_LOG_TIME}"
local real_logfile="${LOGDIR}/${logfile}"
if [[ -n ${LOGDIR} ]]; then
bash -c "cd '$LOGDIR' && ln -sf '$logfile' ${service}.log"
iniset "$NOVA_CONF_DIR/nova-dhcpbridge.conf" DEFAULT log_file "$real_logfile"
fi
iniset $NOVA_CONF DEFAULT dhcpbridge_flagfile "$NOVA_CONF_DIR/nova-dhcpbridge.conf"
fi
if [ "$NOVA_USE_SERVICE_TOKEN" == "True" ]; then if [ "$NOVA_USE_SERVICE_TOKEN" == "True" ]; then
init_nova_service_user_conf init_nova_service_user_conf
fi fi
@ -748,42 +685,6 @@ function conductor_conf {
echo "${NOVA_CONF_DIR}/nova_cell${cell}.conf" echo "${NOVA_CONF_DIR}/nova_cell${cell}.conf"
} }
function init_nova_cells {
if is_service_enabled n-cell; then
cp $NOVA_CONF $NOVA_CELLS_CONF
iniset $NOVA_CELLS_CONF database connection `database_connection_url $NOVA_CELLS_DB`
rpc_backend_add_vhost child_cell
iniset_rpc_backend nova $NOVA_CELLS_CONF DEFAULT child_cell
iniset $NOVA_CELLS_CONF DEFAULT dhcpbridge_flagfile $NOVA_CELLS_CONF
iniset $NOVA_CELLS_CONF cells enable True
iniset $NOVA_CELLS_CONF cells cell_type compute
iniset $NOVA_CELLS_CONF cells name child
iniset $NOVA_CONF cells enable True
iniset $NOVA_CONF cells cell_type api
iniset $NOVA_CONF cells name region
if is_service_enabled n-api-meta; then
NOVA_ENABLED_APIS=$(echo $NOVA_ENABLED_APIS | sed "s/,metadata//")
iniset $NOVA_CONF DEFAULT enabled_apis $NOVA_ENABLED_APIS
iniset $NOVA_CELLS_CONF DEFAULT enabled_apis metadata
fi
# Cells v1 conductor should be the nova-cells.conf
NOVA_COND_CONF=$NOVA_CELLS_CONF
time_start "dbsync"
$NOVA_BIN_DIR/nova-manage --config-file $NOVA_CELLS_CONF db sync
time_stop "dbsync"
$NOVA_BIN_DIR/nova-manage --config-file $NOVA_CELLS_CONF cell create --name=region --cell_type=parent --username=$RABBIT_USERID --hostname=$RABBIT_HOST --port=5672 --password=$RABBIT_PASSWORD --virtual_host=/ --woffset=0 --wscale=1
$NOVA_BIN_DIR/nova-manage cell create --name=child --cell_type=child --username=$RABBIT_USERID --hostname=$RABBIT_HOST --port=5672 --password=$RABBIT_PASSWORD --virtual_host=child_cell --woffset=0 --wscale=1
# Creates the single cells v2 cell for the child cell (v1) nova db.
$NOVA_BIN_DIR/nova-manage --config-file $NOVA_CELLS_CONF cell_v2 create_cell \
--transport-url $(get_transport_url child_cell) --name 'cell1'
fi
}
# create_nova_cache_dir() - Part of the init_nova() process # create_nova_cache_dir() - Part of the init_nova() process
function create_nova_cache_dir { function create_nova_cache_dir {
# Create cache dir # Create cache dir
@ -791,18 +692,6 @@ function create_nova_cache_dir {
rm -f $NOVA_AUTH_CACHE_DIR/* rm -f $NOVA_AUTH_CACHE_DIR/*
} }
function create_nova_conf_nova_network {
local public_interface=${PUBLIC_INTERFACE:-$PUBLIC_INTERFACE_DEFAULT}
iniset $NOVA_CONF DEFAULT network_manager "nova.network.manager.$NETWORK_MANAGER"
iniset $NOVA_CONF DEFAULT public_interface "$public_interface"
iniset $NOVA_CONF DEFAULT vlan_interface "$VLAN_INTERFACE"
iniset $NOVA_CONF DEFAULT flat_network_bridge "$FLAT_NETWORK_BRIDGE"
if [ -n "$FLAT_INTERFACE" ]; then
iniset $NOVA_CONF DEFAULT flat_interface "$FLAT_INTERFACE"
fi
iniset $NOVA_CONF DEFAULT use_neutron False
}
# create_nova_keys_dir() - Part of the init_nova() process # create_nova_keys_dir() - Part of the init_nova() process
function create_nova_keys_dir { function create_nova_keys_dir {
# Create keys dir # Create keys dir
@ -834,10 +723,6 @@ function init_nova {
# Migrate nova and nova_cell0 databases. # Migrate nova and nova_cell0 databases.
$NOVA_BIN_DIR/nova-manage --config-file $NOVA_CONF db sync $NOVA_BIN_DIR/nova-manage --config-file $NOVA_CONF db sync
if is_service_enabled n-cell; then
recreate_database $NOVA_CELLS_DB
fi
# Run online migrations on the new databases # Run online migrations on the new databases
# Needed for flavor conversion # Needed for flavor conversion
$NOVA_BIN_DIR/nova-manage --config-file $NOVA_CONF db online_data_migrations $NOVA_BIN_DIR/nova-manage --config-file $NOVA_CONF db online_data_migrations
@ -942,15 +827,6 @@ function start_nova_api {
export PATH=$old_path export PATH=$old_path
} }
# Detect and setup conditions under which singleconductor setup is
# needed. Notably cellsv1.
function _set_singleconductor {
# NOTE(danms): Don't setup conductor fleet for cellsv1
if is_service_enabled n-cell; then
CELLSV2_SETUP="singleconductor"
fi
}
# start_nova_compute() - Start the compute process # start_nova_compute() - Start the compute process
function start_nova_compute { function start_nova_compute {
@ -958,11 +834,7 @@ function start_nova_compute {
local old_path=$PATH local old_path=$PATH
export PATH=$NOVA_BIN_DIR:$PATH export PATH=$NOVA_BIN_DIR:$PATH
if is_service_enabled n-cell; then local compute_cell_conf=$NOVA_CONF
local compute_cell_conf=$NOVA_CELLS_CONF
else
local compute_cell_conf=$NOVA_CONF
fi
cp $compute_cell_conf $NOVA_CPU_CONF cp $compute_cell_conf $NOVA_CPU_CONF
@ -1025,22 +897,7 @@ function start_nova_rest {
export PATH=$NOVA_BIN_DIR:$PATH export PATH=$NOVA_BIN_DIR:$PATH
local api_cell_conf=$NOVA_CONF local api_cell_conf=$NOVA_CONF
if is_service_enabled n-cell; then local compute_cell_conf=$NOVA_CONF
local compute_cell_conf=$NOVA_CELLS_CONF
else
local compute_cell_conf=$NOVA_CONF
fi
# ``run_process`` checks ``is_service_enabled``, it is not needed here
run_process n-cell-region "$NOVA_BIN_DIR/nova-cells --config-file $api_cell_conf"
run_process n-cell-child "$NOVA_BIN_DIR/nova-cells --config-file $compute_cell_conf"
if is_service_enabled n-net; then
if ! running_in_container; then
enable_kernel_bridge_firewall
fi
fi
run_process n-net "$NOVA_BIN_DIR/nova-network --config-file $compute_cell_conf"
run_process n-sch "$NOVA_BIN_DIR/nova-scheduler --config-file $compute_cell_conf" run_process n-sch "$NOVA_BIN_DIR/nova-scheduler --config-file $compute_cell_conf"
if [ "$NOVA_USE_MOD_WSGI" == "False" ]; then if [ "$NOVA_USE_MOD_WSGI" == "False" ]; then
@ -1049,9 +906,6 @@ function start_nova_rest {
run_process n-api-meta "$NOVA_BIN_DIR/uwsgi --procname-prefix nova-api-meta --ini $NOVA_METADATA_UWSGI_CONF" run_process n-api-meta "$NOVA_BIN_DIR/uwsgi --procname-prefix nova-api-meta --ini $NOVA_METADATA_UWSGI_CONF"
fi fi
# nova-consoleauth always runs globally
run_process n-cauth "$NOVA_BIN_DIR/nova-consoleauth --config-file $api_cell_conf"
export PATH=$old_path export PATH=$old_path
} }
@ -1129,11 +983,7 @@ function is_nova_ready {
# happen between here and the script ending. However, in multinode # happen between here and the script ending. However, in multinode
# tests this can very often not be the case. So ensure that the # tests this can very often not be the case. So ensure that the
# compute is up before we move on. # compute is up before we move on.
if is_service_enabled n-cell; then
# cells v1 can't complete the check below because it munges
# hostnames with cell information (grumble grumble).
return
fi
# TODO(sdague): honestly, this probably should be a plug point for # TODO(sdague): honestly, this probably should be a plug point for
# an external system. # an external system.
if [[ "$VIRT_DRIVER" == 'xenserver' ]]; then if [[ "$VIRT_DRIVER" == 'xenserver' ]]; then
@ -1145,8 +995,6 @@ function is_nova_ready {
} }
function start_nova { function start_nova {
# this catches the cells v1 case early
_set_singleconductor
start_nova_rest start_nova_rest
start_nova_console_proxies start_nova_console_proxies
start_nova_conductor start_nova_conductor
@ -1174,7 +1022,7 @@ function stop_nova_compute {
function stop_nova_rest { function stop_nova_rest {
# Kill the non-compute nova processes # Kill the non-compute nova processes
for serv in n-api n-api-meta n-net n-sch n-cauth n-cell n-cell; do for serv in n-api n-api-meta n-sch; do
stop_process $serv stop_process $serv
done done
} }

View File

@ -24,9 +24,6 @@ set +o xtrace
# Defaults # Defaults
# -------- # --------
# Allow ``build_domU.sh`` to specify the flat network bridge via kernel args
FLAT_NETWORK_BRIDGE_DEFAULT=$(sed -e 's/.* flat_network_bridge=\([[:alnum:]]*\).*$/\1/g' /proc/cmdline)
VNCSERVER_PROXYCLIENT_ADDRESS=${VNCSERVER_PROXYCLIENT_ADDRESS=169.254.0.1} VNCSERVER_PROXYCLIENT_ADDRESS=${VNCSERVER_PROXYCLIENT_ADDRESS=169.254.0.1}

View File

@ -342,7 +342,7 @@ function configure_tempest {
iniset $TEMPEST_CONFIG compute flavor_ref $flavor_ref iniset $TEMPEST_CONFIG compute flavor_ref $flavor_ref
iniset $TEMPEST_CONFIG compute flavor_ref_alt $flavor_ref_alt iniset $TEMPEST_CONFIG compute flavor_ref_alt $flavor_ref_alt
iniset $TEMPEST_CONFIG validation connect_method $ssh_connect_method iniset $TEMPEST_CONFIG validation connect_method $ssh_connect_method
if ! is_service_enabled n-cell && ! is_service_enabled neutron; then if ! is_service_enabled neutron; then
iniset $TEMPEST_CONFIG compute fixed_network_name $PRIVATE_NETWORK_NAME iniset $TEMPEST_CONFIG compute fixed_network_name $PRIVATE_NETWORK_NAME
fi fi
@ -391,24 +391,6 @@ function configure_tempest {
iniset $TEMPEST_CONFIG compute-feature-enabled scheduler_enabled_filters ${NOVA_FILTERS} iniset $TEMPEST_CONFIG compute-feature-enabled scheduler_enabled_filters ${NOVA_FILTERS}
fi fi
if is_service_enabled n-cell; then
# Cells doesn't support shelving/unshelving
iniset $TEMPEST_CONFIG compute-feature-enabled shelve False
# Cells doesn't support hot-plugging virtual interfaces.
iniset $TEMPEST_CONFIG compute-feature-enabled interface_attach False
# Cells v1 doesn't support the rescue/unrescue tests in Tempest
iniset $TEMPEST_CONFIG compute-feature-enabled rescue False
if [[ -z "$DEFAULT_INSTANCE_TYPE" ]]; then
# Cells supports resize but does not currently work with devstack
# because of the custom flavors created for Tempest runs which are
# not in the cells database.
# TODO(mriedem): work on adding a nova-manage command to sync
# flavors into the cells database.
iniset $TEMPEST_CONFIG compute-feature-enabled resize False
fi
fi
if [[ $ENABLE_VOLUME_MULTIATTACH == "True" ]]; then if [[ $ENABLE_VOLUME_MULTIATTACH == "True" ]]; then
iniset $TEMPEST_CONFIG compute-feature-enabled volume_multiattach True iniset $TEMPEST_CONFIG compute-feature-enabled volume_multiattach True
fi fi
@ -554,8 +536,7 @@ function configure_tempest {
iniset $TEMPEST_CONFIG compute-feature-enabled shelve False iniset $TEMPEST_CONFIG compute-feature-enabled shelve False
iniset $TEMPEST_CONFIG compute-feature-enabled snapshot False iniset $TEMPEST_CONFIG compute-feature-enabled snapshot False
iniset $TEMPEST_CONFIG compute-feature-enabled suspend False iniset $TEMPEST_CONFIG compute-feature-enabled suspend False
elif ! is_service_enabled n-cell; then else
# cells v1 does not support swapping volumes
iniset $TEMPEST_CONFIG compute-feature-enabled swap_volume True iniset $TEMPEST_CONFIG compute-feature-enabled swap_volume True
fi fi
fi fi

View File

@ -1167,10 +1167,11 @@ if is_service_enabled neutron; then
fi fi
fi fi
# Nova # Nova
# ---- # ----
if is_service_enabled n-net q-dhcp; then if is_service_enabled q-dhcp; then
# Delete traces of nova networks from prior runs # Delete traces of nova networks from prior runs
# Do not kill any dnsmasq instance spawned by NetworkManager # Do not kill any dnsmasq instance spawned by NetworkManager
netman_pid=$(pidof NetworkManager || true) netman_pid=$(pidof NetworkManager || true)
@ -1182,12 +1183,6 @@ if is_service_enabled n-net q-dhcp; then
clean_iptables clean_iptables
if is_service_enabled n-net; then
rm -rf ${NOVA_STATE_PATH}/networks
sudo mkdir -p ${NOVA_STATE_PATH}/networks
safe_chown -R ${STACK_USER} ${NOVA_STATE_PATH}/networks
fi
# Force IP forwarding on, just in case # Force IP forwarding on, just in case
sudo sysctl -w net.ipv4.ip_forward=1 sudo sysctl -w net.ipv4.ip_forward=1
fi fi
@ -1226,13 +1221,11 @@ if is_service_enabled nova; then
init_nova init_nova
# Additional Nova configuration that is dependent on other services # Additional Nova configuration that is dependent on other services
# TODO(stephenfin): Is it possible for neutron to *not* be enabled now? If
# not, remove the if here
if is_service_enabled neutron; then if is_service_enabled neutron; then
configure_neutron_nova configure_neutron_nova
elif is_service_enabled n-net; then
create_nova_conf_nova_network
fi fi
init_nova_cells
fi fi
@ -1314,20 +1307,6 @@ elif is_service_enabled q-svc; then
echo_summary "Starting Neutron" echo_summary "Starting Neutron"
configure_neutron_after_post_config configure_neutron_after_post_config
start_neutron_service_and_check start_neutron_service_and_check
elif is_service_enabled $DATABASE_BACKENDS && is_service_enabled n-net; then
NM_CONF=${NOVA_CONF}
if is_service_enabled n-cell; then
NM_CONF=${NOVA_CELLS_CONF}
fi
# Create a small network
$NOVA_BIN_DIR/nova-manage --config-file $NM_CONF network create "$PRIVATE_NETWORK_NAME" $FIXED_RANGE 1 $FIXED_NETWORK_SIZE $NETWORK_CREATE_ARGS
# Create some floating ips
$NOVA_BIN_DIR/nova-manage --config-file $NM_CONF floating create $FLOATING_RANGE --pool=$PUBLIC_NETWORK_NAME
# Create a second pool
$NOVA_BIN_DIR/nova-manage --config-file $NM_CONF floating create --ip_range=$TEST_FLOATING_RANGE --pool=$TEST_FLOATING_POOL
fi fi
# Start placement before any of the service that are likely to want # Start placement before any of the service that are likely to want

View File

@ -65,7 +65,7 @@ if ! isset ENABLED_SERVICES ; then
# Keystone - nothing works without keystone # Keystone - nothing works without keystone
ENABLED_SERVICES=key ENABLED_SERVICES=key
# Nova - services to support libvirt based openstack clouds # Nova - services to support libvirt based openstack clouds
ENABLED_SERVICES+=,n-api,n-cpu,n-cond,n-sch,n-novnc,n-cauth,n-api-meta ENABLED_SERVICES+=,n-api,n-cpu,n-cond,n-sch,n-novnc,n-api-meta
# Placement service needed for Nova # Placement service needed for Nova
ENABLED_SERVICES+=,placement-api,placement-client ENABLED_SERVICES+=,placement-api,placement-client
# Glance services needed for Nova # Glance services needed for Nova
@ -846,7 +846,6 @@ ENABLE_DEBUG_LOG_LEVEL=$(trueorfalse True ENABLE_DEBUG_LOG_LEVEL)
FLOATING_RANGE=${FLOATING_RANGE:-172.24.4.0/24} FLOATING_RANGE=${FLOATING_RANGE:-172.24.4.0/24}
IPV4_ADDRS_SAFE_TO_USE=${IPV4_ADDRS_SAFE_TO_USE:-10.0.0.0/22} IPV4_ADDRS_SAFE_TO_USE=${IPV4_ADDRS_SAFE_TO_USE:-10.0.0.0/22}
FIXED_RANGE=${FIXED_RANGE:-$IPV4_ADDRS_SAFE_TO_USE} FIXED_RANGE=${FIXED_RANGE:-$IPV4_ADDRS_SAFE_TO_USE}
FIXED_NETWORK_SIZE=${FIXED_NETWORK_SIZE:-256}
HOST_IP_IFACE=${HOST_IP_IFACE:-} HOST_IP_IFACE=${HOST_IP_IFACE:-}
HOST_IP=${HOST_IP:-} HOST_IP=${HOST_IP:-}
HOST_IPV6=${HOST_IPV6:-} HOST_IPV6=${HOST_IPV6:-}