diff --git a/templates/ovndbcluster/bin/cleanup.sh b/templates/ovndbcluster/bin/cleanup.sh index bd3588eb..1004f5e5 100755 --- a/templates/ovndbcluster/bin/cleanup.sh +++ b/templates/ovndbcluster/bin/cleanup.sh @@ -14,9 +14,9 @@ # License for the specific language governing permissions and limitations # under the License. set -ex +source $(dirname $0)/functions DB_NAME="OVN_Northbound" -DB_TYPE="{{ .DB_TYPE }}" if [[ "${DB_TYPE}" == "sb" ]]; then DB_NAME="OVN_Southbound" fi @@ -42,5 +42,5 @@ fi # leaving the database file intact for -0 pod. if [[ "$(hostname)" != "{{ .SERVICE_NAME }}-0" ]]; then # now that we left, the database file is no longer valid - rm -f /etc/ovn/ovn${DB_TYPE}_db.db + cleanup_db_file fi diff --git a/templates/ovndbcluster/bin/functions b/templates/ovndbcluster/bin/functions new file mode 100644 index 00000000..eb901a26 --- /dev/null +++ b/templates/ovndbcluster/bin/functions @@ -0,0 +1,20 @@ +# Copyright 2024 Red Hat Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. + +DB_TYPE="{{ .DB_TYPE }}" +DB_FILE=/etc/ovn/ovn${DB_TYPE}_db.db + +function cleanup_db_file() { + rm -f $DB_FILE +} diff --git a/templates/ovndbcluster/bin/setup.sh b/templates/ovndbcluster/bin/setup.sh index 89d0b61c..1d79b445 100755 --- a/templates/ovndbcluster/bin/setup.sh +++ b/templates/ovndbcluster/bin/setup.sh @@ -14,7 +14,8 @@ # License for the specific language governing permissions and limitations # under the License. set -ex -DB_TYPE="{{ .DB_TYPE }}" +source $(dirname $0)/functions + DB_PORT="{{ .DB_PORT }}" {{- if .TLS }} DB_SCHEME="pssl" @@ -80,6 +81,12 @@ set "$@" --ovn-${DB_TYPE}-log=-vconsole:{{ .OVN_LOG_LEVEL }} # with a nearly empty log file set "$@" --ovn-${DB_TYPE}-logfile=/dev/null +# If db file is empty, remove it; otherwise service won't start. +# See https://issues.redhat.com/browse/FDP-689 for more details. +if ! [ -s $DB_FILE ]; then + cleanup_db_file +fi + # don't log to file (we already log to console) $@ ${OPTS} run_${DB_TYPE}_ovsdb -- -vfile:off &