Merge "cinder: Double [DEFAULT]/rpc_response_timeout to 120"
diff --git a/doc/source/systemd.rst b/doc/source/systemd.rst
index 4f83b36..7853520 100644
--- a/doc/source/systemd.rst
+++ b/doc/source/systemd.rst
@@ -196,31 +196,6 @@
.. _`remote-pdb`: https://pypi.org/project/remote-pdb/
-Known Issues
-============
-
-Be careful about systemd python libraries. There are 3 of them on
-pypi, and they are all very different. They unfortunately all install
-into the ``systemd`` namespace, which can cause some issues.
-
-- ``systemd-python`` - this is the upstream maintained library, it has
- a version number like systemd itself (currently ``234``). This is
- the one you want.
-- ``systemd`` - a python 3 only library, not what you want.
-- ``python-systemd`` - another library you don't want. Installing it
- on a system will break ansible's ability to run. The package has now
- been renamed to ``cysystemd``, which avoids the namespace collision.
-
-
-If we were using user units, the ``[Service]`` - ``Group=`` parameter
-doesn't seem to work with user units, even though the documentation
-says that it should. This means that we will need to do an explicit
-``/usr/bin/sg``. This has the downside of making the SYSLOG_IDENTIFIER
-be ``sg``. We can explicitly set that with ``SyslogIdentifier=``, but
-it's really unfortunate that we're going to need this work
-around. This is currently not a problem because we're only using
-system units.
-
Future Work
===========
diff --git a/files/debs/general b/files/debs/general
index 4bf1ff4..d64417f 100644
--- a/files/debs/general
+++ b/files/debs/general
@@ -28,6 +28,7 @@
psmisc
python3-dev
python3-pip
+python3-systemd
python3-venv
tar
tcpdump
diff --git a/files/rpms-suse/general b/files/rpms-suse/general
index 0af2b5b..0de0876 100644
--- a/files/rpms-suse/general
+++ b/files/rpms-suse/general
@@ -20,10 +20,10 @@
pcre-devel # python-pcre
postgresql-devel # psycopg2
psmisc
+python3-systemd
python-cmd2 # dist:opensuse-12.3
python-devel # pyOpenSSL
python-xml
-systemd-devel # for systemd-python
tar
tcpdump
unzip
diff --git a/files/rpms/general b/files/rpms/general
index c42ce52..cfcd7ff 100644
--- a/files/rpms/general
+++ b/files/rpms/general
@@ -25,8 +25,8 @@
psmisc
python3-devel
python3-pip
+python3-systemd
redhat-rpm-config # missing dep for gcc hardening flags, see rhbz#1217376
-systemd-devel # for systemd-python
tar
tcpdump
unzip
diff --git a/functions b/functions
index e679b0f..fc87a55 100644
--- a/functions
+++ b/functions
@@ -759,16 +759,14 @@
local loopback_disk_size=${3}
local key
- # Create a loopback disk and format it to XFS.
- if [[ -e ${disk_image} ]]; then
- if egrep -q ${storage_data_dir} /proc/mounts; then
- sudo umount ${storage_data_dir}
- sudo rm -f ${disk_image}
- fi
- fi
+ key=$(echo $disk_image | sed 's#/.##')
+ key="devstack-$key"
- sudo mkdir -p ${storage_data_dir}/drives/images
+ destroy_disk $disk_image $storage_data_dir
+ # Create an empty file of the correct size (and ensure the
+ # directory structure up to that path exists)
+ sudo mkdir -p $(dirname ${disk_image})
sudo truncate -s ${loopback_disk_size} ${disk_image}
# Make a fresh XFS filesystem. Use bigger inodes so xattr can fit in
@@ -778,16 +776,9 @@
# Swift and Ceph.
sudo mkfs.xfs -f -i size=1024 ${disk_image}
- # Unmount the target, if mounted
- if egrep -q $storage_data_dir /proc/mounts; then
- sudo umount $storage_data_dir
- fi
-
- # Clear any old fstab rules, install a new one for this disk, and mount it
- key=$(echo $disk_image | sed 's#/.##')
- key="devstack-$key"
- sudo sed -i '/.*comment=$key.*/ d' /etc/fstab
+ # Install a new loopback fstab entry for this disk image, and mount it
echo "$disk_image $storage_data_dir xfs loop,noatime,nodiratime,logbufs=8,comment=$key 0 0" | sudo tee -a /etc/fstab
+ sudo mkdir -p $storage_data_dir
sudo mount -v $storage_data_dir
}
@@ -795,6 +786,10 @@
function destroy_disk {
local disk_image=$1
local storage_data_dir=$2
+ local key
+
+ key=$(echo $disk_image | sed 's#/.##')
+ key="devstack-$key"
# Unmount the target, if mounted
if egrep -q $storage_data_dir /proc/mounts; then
@@ -802,10 +797,10 @@
fi
# Clear any fstab rules
- sed -i '/.*comment=$key.*/ d' /etc/fstab
+ sudo sed -i '/.*comment=$key.*/ d' /etc/fstab
# Delete the file
- sudo rm $disk_image
+ sudo rm -f $disk_image
}
diff --git a/lib/neutron_plugins/ovn_agent b/lib/neutron_plugins/ovn_agent
index b7330db..b661f59 100644
--- a/lib/neutron_plugins/ovn_agent
+++ b/lib/neutron_plugins/ovn_agent
@@ -72,6 +72,7 @@
# Whether or not to build the openvswitch kernel module from ovs. This is required
# unless the distro kernel includes ovs+conntrack support.
OVN_BUILD_MODULES=$(trueorfalse False OVN_BUILD_MODULES)
+OVN_BUILD_FROM_SOURCE=$(trueorfalse False OVN_BUILD_FROM_SOURCE)
# Whether or not to install the ovs python module from ovs source. This can be
# used to test and validate new ovs python features. This should only be used
@@ -98,7 +99,10 @@
OVN_IGMP_SNOOPING_ENABLE=$(trueorfalse False OVN_IGMP_SNOOPING_ENABLE)
-OVS_PREFIX=/usr/local
+OVS_PREFIX=
+if [[ "$OVN_BUILD_FROM_SOURCE" == "True" ]]; then
+ OVS_PREFIX=/usr/local
+fi
OVS_SBINDIR=$OVS_PREFIX/sbin
OVS_BINDIR=$OVS_PREFIX/bin
OVS_RUNDIR=$OVS_PREFIX/var/run/openvswitch
@@ -116,6 +120,24 @@
STACK_GROUP="$( id --group --name "$STACK_USER" )"
+OVN_NORTHD_SERVICE=ovn-northd.service
+if is_ubuntu; then
+ # The ovn-central.service file on Ubuntu is responsible for starting
+ # ovn-northd and the OVN DBs (on CentOS this is done by ovn-northd.service)
+ OVN_NORTHD_SERVICE=ovn-central.service
+fi
+OVSDB_SERVER_SERVICE=ovsdb-server.service
+OVS_VSWITCHD_SERVICE=ovs-vswitchd.service
+OVN_CONTROLLER_SERVICE=ovn-controller.service
+OVN_CONTROLLER_VTEP_SERVICE=ovn-controller-vtep.service
+if [[ "$OVN_BUILD_FROM_SOURCE" == "True" ]]; then
+ OVSDB_SERVER_SERVICE=devstack@ovsdb-server.service
+ OVS_VSWITCHD_SERVICE=devstack@ovs-vswitchd.service
+ OVN_NORTHD_SERVICE=devstack@ovn-northd.service
+ OVN_CONTROLLER_SERVICE=devstack@ovn-controller.service
+ OVN_CONTROLLER_VTEP_SERVICE=devstack@ovn-controller-vtep.service
+fi
+
# Defaults Overwrite
# ------------------
@@ -131,10 +153,26 @@
# Utility Functions
# -----------------
+function wait_for_sock_file {
+ local count=0
+ while [ ! -S $1 ]; do
+ sleep 1
+ count=$((count+1))
+ if [ "$count" -gt 5 ]; then
+ die $LINENO "Socket $1 not found"
+ fi
+ done
+}
+
function use_new_ovn_repository {
if [ -z "$is_new_ovn" ]; then
local ovs_repo_dir=$DEST/$OVS_REPO_NAME
if [ ! -d $ovs_repo_dir ]; then
+ git_timed clone $OVS_REPO $ovs_repo_dir
+ pushd $ovs_repo_dir
+ git checkout $OVS_BRANCH
+ popd
+ else
clone_repository $OVS_REPO $ovs_repo_dir $OVS_BRANCH
fi
# Check the split commit exists in the current branch
@@ -153,14 +191,14 @@
# neutron-ovs-cleanup uses the OVSDB native interface.
function ovn_base_setup_bridge {
local bridge=$1
- local addbr_cmd="ovs-vsctl --no-wait -- --may-exist add-br $bridge -- set bridge $bridge protocols=OpenFlow13,OpenFlow15"
+ local addbr_cmd="sudo ovs-vsctl --no-wait -- --may-exist add-br $bridge -- set bridge $bridge protocols=OpenFlow13,OpenFlow15"
if [ "$OVS_DATAPATH_TYPE" != "system" ] ; then
addbr_cmd="$addbr_cmd -- set Bridge $bridge datapath_type=${OVS_DATAPATH_TYPE}"
fi
$addbr_cmd
- ovs-vsctl --no-wait br-set-external-id $bridge bridge-id $bridge
+ sudo ovs-vsctl --no-wait br-set-external-id $bridge bridge-id $bridge
}
function _start_process {
@@ -229,8 +267,8 @@
local ext_gw_ifc
ext_gw_ifc=$(get_ext_gw_interface)
- ovs-vsctl --may-exist add-br $ext_gw_ifc -- set bridge $ext_gw_ifc protocols=OpenFlow13,OpenFlow15
- ovs-vsctl set open . external-ids:ovn-bridge-mappings=$PHYSICAL_NETWORK:$ext_gw_ifc
+ sudo ovs-vsctl --may-exist add-br $ext_gw_ifc -- set bridge $ext_gw_ifc protocols=OpenFlow13,OpenFlow15
+ sudo ovs-vsctl set open . external-ids:ovn-bridge-mappings=$PHYSICAL_NETWORK:$ext_gw_ifc
if [ -n "$FLOATING_RANGE" ]; then
local cidr_len=${FLOATING_RANGE#*/}
sudo ip addr flush dev $ext_gw_ifc
@@ -337,34 +375,45 @@
# Check the OVN configuration
ovn_sanity_check
- # If OVS is already installed, remove it, because we're about to re-install
- # it from source.
- for package in openvswitch openvswitch-switch openvswitch-common; do
- if is_package_installed $package ; then
- uninstall_package $package
- fi
- done
-
# Install tox, used to generate the config (see devstack/override-defaults)
pip_install tox
- remove_ovs_packages
- sudo rm -f $OVS_RUNDIR/*
-
- compile_ovs $OVN_BUILD_MODULES
- if use_new_ovn_repository; then
- compile_ovn $OVN_BUILD_MODULES
- fi
-
- # Ensure that the OVS commands are accessible in the PATH
- OVS_BINDIR=${OVS_BINDIR:-/usr/local/bin}
- export PATH=$OVS_BINDIR:$PATH
sudo mkdir -p $OVS_RUNDIR
sudo chown $(whoami) $OVS_RUNDIR
- sudo mkdir -p $OVS_PREFIX/var/log/openvswitch
- sudo chown $(whoami) $OVS_PREFIX/var/log/openvswitch
- sudo mkdir -p $OVS_PREFIX/var/log/ovn
- sudo chown $(whoami) $OVS_PREFIX/var/log/ovn
+ # NOTE(lucasagomes): To keep things simpler, let's reuse the same
+ # RUNDIR for both OVS and OVN. This way we avoid having to specify the
+ # --db option in the ovn-{n,s}bctl commands while playing with DevStack
+ sudo ln -s $OVS_RUNDIR $OVN_RUNDIR
+
+ if [[ "$OVN_BUILD_FROM_SOURCE" == "True" ]]; then
+ # If OVS is already installed, remove it, because we're about to
+ # re-install it from source.
+ for package in openvswitch openvswitch-switch openvswitch-common; do
+ if is_package_installed $package ; then
+ uninstall_package $package
+ fi
+ done
+
+ remove_ovs_packages
+ sudo rm -f $OVS_RUNDIR/*
+
+ compile_ovs $OVN_BUILD_MODULES
+ if use_new_ovn_repository; then
+ compile_ovn $OVN_BUILD_MODULES
+ fi
+
+ sudo mkdir -p $OVS_PREFIX/var/log/openvswitch
+ sudo chown $(whoami) $OVS_PREFIX/var/log/openvswitch
+ sudo mkdir -p $OVS_PREFIX/var/log/ovn
+ sudo chown $(whoami) $OVS_PREFIX/var/log/ovn
+ else
+ fixup_ovn_centos
+ install_package $(get_packages openvswitch)
+ install_package $(get_packages ovn)
+ fi
+
+ # Ensure that the OVS commands are accessible in the PATH
+ export PATH=$OVS_BINDIR:$PATH
# Archive log files and create new
local log_archive_dir=$LOGDIR/archive
@@ -494,7 +543,7 @@
iniset $OVN_META_CONF DEFAULT nova_metadata_host $OVN_META_DATA_HOST
iniset $OVN_META_CONF DEFAULT metadata_workers $API_WORKERS
iniset $OVN_META_CONF DEFAULT state_path $NEUTRON_STATE_PATH
- iniset $OVN_META_CONF ovs ovsdb_connection unix:$OVS_RUNDIR/db.sock
+ iniset $OVN_META_CONF ovs ovsdb_connection tcp:$OVSDB_SERVER_LOCAL_HOST:6640
iniset $OVN_META_CONF ovn ovn_sb_connection $OVN_SB_REMOTE
if is_service_enabled tls-proxy; then
iniset $OVN_META_CONF ovn \
@@ -533,51 +582,58 @@
enable_service ovsdb-server
enable_service ovs-vswitchd
- if [ ! -f $OVS_DATADIR/conf.db ]; then
- ovsdb-tool create $OVS_DATADIR/conf.db $OVS_SHAREDIR/vswitch.ovsschema
- fi
-
- if is_service_enabled ovn-controller-vtep; then
- if [ ! -f $OVS_DATADIR/vtep.db ]; then
- ovsdb-tool create $OVS_DATADIR/vtep.db $OVS_SHAREDIR/vtep.ovsschema
+ if [[ "$OVN_BUILD_FROM_SOURCE" == "True" ]]; then
+ if [ ! -f $OVS_DATADIR/conf.db ]; then
+ ovsdb-tool create $OVS_DATADIR/conf.db $OVS_SHAREDIR/vswitch.ovsschema
fi
- fi
- local dbcmd="$OVS_SBINDIR/ovsdb-server --remote=punix:$OVS_RUNDIR/db.sock --remote=ptcp:6640:$OVSDB_SERVER_LOCAL_HOST --pidfile --detach --log-file"
- dbcmd+=" --remote=db:Open_vSwitch,Open_vSwitch,manager_options"
- if is_service_enabled ovn-controller-vtep; then
- dbcmd+=" --remote=db:hardware_vtep,Global,managers $OVS_DATADIR/vtep.db"
+ if is_service_enabled ovn-controller-vtep; then
+ if [ ! -f $OVS_DATADIR/vtep.db ]; then
+ ovsdb-tool create $OVS_DATADIR/vtep.db $OVS_SHAREDIR/vtep.ovsschema
+ fi
+ fi
+
+ local dbcmd="$OVS_SBINDIR/ovsdb-server --remote=punix:$OVS_RUNDIR/db.sock --remote=ptcp:6640:$OVSDB_SERVER_LOCAL_HOST --pidfile --detach --log-file"
+ dbcmd+=" --remote=db:Open_vSwitch,Open_vSwitch,manager_options"
+ if is_service_enabled ovn-controller-vtep; then
+ dbcmd+=" --remote=db:hardware_vtep,Global,managers $OVS_DATADIR/vtep.db"
+ fi
+ dbcmd+=" $OVS_DATADIR/conf.db"
+ _run_process ovsdb-server "$dbcmd"
+
+ # Note: ovn-controller will create and configure br-int once it is started.
+ # So, no need to create it now because nothing depends on that bridge here.
+ local ovscmd="$OVS_SBINDIR/ovs-vswitchd --log-file --pidfile --detach"
+ _run_process ovs-vswitchd "$ovscmd" "" "$STACK_GROUP" "root"
+ else
+ _start_process "$OVSDB_SERVER_SERVICE"
+ _start_process "$OVS_VSWITCHD_SERVICE"
fi
- dbcmd+=" $OVS_DATADIR/conf.db"
- _run_process ovsdb-server "$dbcmd"
echo "Configuring OVSDB"
if is_service_enabled tls-proxy; then
- ovs-vsctl --no-wait set-ssl \
+ sudo ovs-vsctl --no-wait set-ssl \
$INT_CA_DIR/private/$DEVSTACK_CERT_NAME.key \
$INT_CA_DIR/$DEVSTACK_CERT_NAME.crt \
$INT_CA_DIR/ca-chain.pem
fi
- ovs-vsctl --no-wait set open_vswitch . system-type="devstack"
- ovs-vsctl --no-wait set open_vswitch . external-ids:system-id="$OVN_UUID"
- ovs-vsctl --no-wait set open_vswitch . external-ids:ovn-remote="$OVN_SB_REMOTE"
- ovs-vsctl --no-wait set open_vswitch . external-ids:ovn-bridge="br-int"
- ovs-vsctl --no-wait set open_vswitch . external-ids:ovn-encap-type="geneve"
- ovs-vsctl --no-wait set open_vswitch . external-ids:ovn-encap-ip="$HOST_IP"
+
+ sudo ovs-vsctl --no-wait set-manager ptcp:6640:$OVSDB_SERVER_LOCAL_HOST
+ sudo ovs-vsctl --no-wait set open_vswitch . system-type="devstack"
+ sudo ovs-vsctl --no-wait set open_vswitch . external-ids:system-id="$OVN_UUID"
+ sudo ovs-vsctl --no-wait set open_vswitch . external-ids:ovn-remote="$OVN_SB_REMOTE"
+ sudo ovs-vsctl --no-wait set open_vswitch . external-ids:ovn-bridge="br-int"
+ sudo ovs-vsctl --no-wait set open_vswitch . external-ids:ovn-encap-type="geneve"
+ sudo ovs-vsctl --no-wait set open_vswitch . external-ids:ovn-encap-ip="$HOST_IP"
+ sudo ovs-vsctl --no-wait set open_vswitch . external-ids:hostname="$LOCAL_HOSTNAME"
# Select this chassis to host gateway routers
if [[ "$ENABLE_CHASSIS_AS_GW" == "True" ]]; then
- ovs-vsctl --no-wait set open_vswitch . external-ids:ovn-cms-options="enable-chassis-as-gw"
+ sudo ovs-vsctl --no-wait set open_vswitch . external-ids:ovn-cms-options="enable-chassis-as-gw"
fi
- # Note: ovn-controller will create and configure br-int once it is started.
- # So, no need to create it now because nothing depends on that bridge here.
-
- local ovscmd="$OVS_SBINDIR/ovs-vswitchd --log-file --pidfile --detach"
- _run_process ovs-vswitchd "$ovscmd" "" "$STACK_GROUP" "root"
-
if is_provider_network || [[ $Q_USE_PROVIDERNET_FOR_PUBLIC == "True" ]]; then
ovn_base_setup_bridge $OVS_PHYSICAL_BRIDGE
- ovs-vsctl set open . external-ids:ovn-bridge-mappings=${PHYSICAL_NETWORK}:${OVS_PHYSICAL_BRIDGE}
+ sudo ovs-vsctl set open . external-ids:ovn-bridge-mappings=${PHYSICAL_NETWORK}:${OVS_PHYSICAL_BRIDGE}
fi
if is_service_enabled ovn-controller-vtep ; then
@@ -595,20 +651,20 @@
}
function _start_ovn_services {
- _start_process "devstack@ovsdb-server.service"
- _start_process "devstack@ovs-vswitchd.service"
+ _start_process "$OVSDB_SERVER_SERVICE"
+ _start_process "$OVS_VSWITCHD_SERVICE"
- if is_service_enabled ovs-vtep ; then
- _start_process "devstack@ovs-vtep.service"
- fi
if is_service_enabled ovn-northd ; then
- _start_process "devstack@ovn-northd.service"
+ _start_process "$OVN_NORTHD_SERVICE"
fi
if is_service_enabled ovn-controller ; then
- _start_process "devstack@ovn-controller.service"
+ _start_process "$OVN_CONTROLLER_SERVICE"
fi
if is_service_enabled ovn-controller-vtep ; then
- _start_process "devstack@ovn-controller-vtep.service"
+ _start_process "$OVN_CONTROLLER_VTEP_SERVICE"
+ fi
+ if is_service_enabled ovs-vtep ; then
+ _start_process "devstack@ovs-vtep.service"
fi
if is_service_enabled q-ovn-metadata-agent; then
_start_process "devstack@q-ovn-metadata-agent.service"
@@ -627,39 +683,47 @@
fi
if is_service_enabled ovn-northd ; then
- if is_service_enabled tls-proxy; then
- local tls_args="\
- --ovn-nb-db-ssl-ca-cert=$INT_CA_DIR/ca-chain.pem \
- --ovn-nb-db-ssl-cert=$INT_CA_DIR/$DEVSTACK_CERT_NAME.crt \
- --ovn-nb-db-ssl-key=$INT_CA_DIR/private/$DEVSTACK_CERT_NAME.key \
- --ovn-sb-db-ssl-ca-cert=$INT_CA_DIR/ca-chain.pem \
- --ovn-sb-db-ssl-cert=$INT_CA_DIR/$DEVSTACK_CERT_NAME.crt \
- --ovn-sb-db-ssl-key=$INT_CA_DIR/private/$DEVSTACK_CERT_NAME.key \
- "
- else
- local tls_args=""
- fi
- local cmd="/bin/bash $SCRIPTDIR/ovn-ctl --no-monitor $tls_args start_northd"
- local stop_cmd="/bin/bash $SCRIPTDIR/ovn-ctl stop_northd"
+ if [[ "$OVN_BUILD_FROM_SOURCE" == "True" ]]; then
+ local cmd="/bin/bash $SCRIPTDIR/ovn-ctl --no-monitor start_northd"
+ local stop_cmd="/bin/bash $SCRIPTDIR/ovn-ctl stop_northd"
- _run_process ovn-northd "$cmd" "$stop_cmd"
- ovn-nbctl --db=unix:$OVS_RUNDIR/ovnnb_db.sock set-connection p${OVN_PROTO}:6641:$SERVICE_LISTEN_ADDRESS -- set connection . inactivity_probe=60000
- ovn-sbctl --db=unix:$OVS_RUNDIR/ovnsb_db.sock set-connection p${OVN_PROTO}:6642:$SERVICE_LISTEN_ADDRESS -- set connection . inactivity_probe=60000
+ _run_process ovn-northd "$cmd" "$stop_cmd"
+ else
+ _start_process "$OVN_NORTHD_SERVICE"
+ fi
+
+ # Wait for the service to be ready
+ wait_for_sock_file $OVS_RUNDIR/ovnnb_db.sock
+ wait_for_sock_file $OVS_RUNDIR/ovnsb_db.sock
+
+ if is_service_enabled tls-proxy; then
+ sudo ovn-nbctl --db=unix:$OVS_RUNDIR/ovnnb_db.sock set-ssl $INT_CA_DIR/private/$DEVSTACK_CERT_NAME.key $INT_CA_DIR/$DEVSTACK_CERT_NAME.crt $INT_CA_DIR/ca-chain.pem
+ sudo ovn-sbctl --db=unix:$OVS_RUNDIR/ovnsb_db.sock set-ssl $INT_CA_DIR/private/$DEVSTACK_CERT_NAME.key $INT_CA_DIR/$DEVSTACK_CERT_NAME.crt $INT_CA_DIR/ca-chain.pem
+ fi
+ sudo ovn-nbctl --db=unix:$OVS_RUNDIR/ovnnb_db.sock set-connection p${OVN_PROTO}:6641:$SERVICE_LISTEN_ADDRESS -- set connection . inactivity_probe=60000
+ sudo ovn-sbctl --db=unix:$OVS_RUNDIR/ovnsb_db.sock set-connection p${OVN_PROTO}:6642:$SERVICE_LISTEN_ADDRESS -- set connection . inactivity_probe=60000
sudo ovs-appctl -t $OVS_RUNDIR/ovnnb_db.ctl vlog/set console:off syslog:$OVN_DBS_LOG_LEVEL file:$OVN_DBS_LOG_LEVEL
sudo ovs-appctl -t $OVS_RUNDIR/ovnsb_db.ctl vlog/set console:off syslog:$OVN_DBS_LOG_LEVEL file:$OVN_DBS_LOG_LEVEL
fi
if is_service_enabled ovn-controller ; then
- local cmd="/bin/bash $SCRIPTDIR/ovn-ctl --no-monitor start_controller"
- local stop_cmd="/bin/bash $SCRIPTDIR/ovn-ctl stop_controller"
+ if [[ "$OVN_BUILD_FROM_SOURCE" == "True" ]]; then
+ local cmd="/bin/bash $SCRIPTDIR/ovn-ctl --no-monitor start_controller"
+ local stop_cmd="/bin/bash $SCRIPTDIR/ovn-ctl stop_controller"
- _run_process ovn-controller "$cmd" "$stop_cmd" "$STACK_GROUP" "root"
+ _run_process ovn-controller "$cmd" "$stop_cmd" "$STACK_GROUP" "root"
+ else
+ _start_process "$OVN_CONTROLLER_SERVICE"
+ fi
fi
if is_service_enabled ovn-controller-vtep ; then
- local cmd="$OVS_BINDIR/ovn-controller-vtep --log-file --pidfile --detach --ovnsb-db=$OVN_SB_REMOTE"
-
- _run_process ovn-controller-vtep "$cmd" "" "$STACK_GROUP" "root"
+ if [[ "$OVN_BUILD_FROM_SOURCE" == "True" ]]; then
+ local cmd="$OVS_BINDIR/ovn-controller-vtep --log-file --pidfile --detach --ovnsb-db=$OVN_SB_REMOTE"
+ _run_process ovn-controller-vtep "$cmd" "" "$STACK_GROUP" "root"
+ else
+ _start_process "$OVN_CONTROLLER_VTEP_SERVICE"
+ fi
fi
if is_service_enabled q-ovn-metadata-agent; then
@@ -668,13 +732,6 @@
setup_logging $OVN_META_CONF
fi
- # NOTE(lucasagomes): To keep things simpler, let's reuse the same
- # RUNDIR for both OVS and OVN. This way we avoid having to specify the
- # --db option in the ovn-{n,s}bctl commands while playing with DevStack
- if use_new_ovn_repository; then
- sudo ln -s $OVS_RUNDIR $OVN_RUNDIR
- fi
-
_start_ovn_services
}
@@ -683,26 +740,35 @@
modprobe -q -r vport_geneve vport_vxlan openvswitch || true
}
+function _stop_process {
+ local service=$1
+ echo "Stopping process $service"
+ if $SYSTEMCTL is-enabled $service; then
+ $SYSTEMCTL stop $service
+ $SYSTEMCTL disable $service
+ fi
+}
+
function stop_ovn {
if is_service_enabled q-ovn-metadata-agent; then
sudo pkill -9 -f haproxy || :
- stop_process neutron-ovn-metadata-agent
+ _stop_process "devstack@q-ovn-metadata-agent.service"
fi
if is_service_enabled ovn-controller-vtep ; then
- stop_process ovn-controller-vtep
+ _stop_process "$OVN_CONTROLLER_VTEP_SERVICE"
fi
if is_service_enabled ovn-controller ; then
- stop_process ovn-controller
+ _stop_process "$OVN_CONTROLLER_SERVICE"
fi
if is_service_enabled ovn-northd ; then
- stop_process ovn-northd
+ _stop_process "$OVN_NORTHD_SERVICE"
fi
if is_service_enabled ovs-vtep ; then
- stop_process ovs-vtep
+ _stop_process "devstack@ovs-vtep.service"
fi
- stop_process ovs-vswitchd
- stop_process ovsdb-server
+ _stop_process "$OVS_VSWITCHD_SERVICE"
+ _stop_process "$OVSDB_SERVER_SERVICE"
_stop_ovs_dp
}
diff --git a/lib/swift b/lib/swift
index a981dfc..790fb99 100644
--- a/lib/swift
+++ b/lib/swift
@@ -741,7 +741,9 @@
function install_swift {
git_clone $SWIFT_REPO $SWIFT_DIR $SWIFT_BRANCH
- setup_develop $SWIFT_DIR
+ # keystonemiddleware needs to be installed via keystone extras as defined
+ # in setup.cfg, see bug #1909018 for more details.
+ setup_develop $SWIFT_DIR keystone
if [ "$SWIFT_USE_MOD_WSGI" == "True" ]; then
install_apache_wsgi
fi
diff --git a/stack.sh b/stack.sh
index bb4dfa2..036afd7 100755
--- a/stack.sh
+++ b/stack.sh
@@ -761,7 +761,6 @@
# Install subunit for the subunit output stream
pip_install -U os-testr
-pip_install_gr systemd-python
# the default rate limit of 1000 messages / 30 seconds is not
# sufficient given how verbose our logging is.
iniset -sudo /etc/systemd/journald.conf "Journal" "RateLimitBurst" "0"
diff --git a/tools/fixup_stuff.sh b/tools/fixup_stuff.sh
index cd7ee59..25f7268 100755
--- a/tools/fixup_stuff.sh
+++ b/tools/fixup_stuff.sh
@@ -184,6 +184,14 @@
sudo zypper up -y p11-kit ca-certificates-mozilla
}
+function fixup_ovn_centos {
+ if [[ $os_VENDOR != "CentOS" ]]; then
+ return
+ fi
+ # OVN packages are part of this release for CentOS
+ yum_install centos-release-openstack-victoria
+}
+
function fixup_all {
fixup_keystone
fixup_ubuntu