On Wed, Oct 20, 2021 at 2:45 PM Terry Wilson <twil...@redhat.com> wrote:
>
> ovsdb-tool join-cluster requires a remote addr, so the existing
> code that tried to join a cluster without it when there was an
> existing $DB_FILE would fail.
>
> Instead, if we are trying to specifically join a cluster and there
> is an existing $DB_FILE, back it up and remove the original before
> continuing to join the cluster.
>
> Signed-off-by: Terry Wilson <twil...@redhat.com>
> ---
>  utilities/ovs-lib.in | 10 ++++------
>  1 file changed, 4 insertions(+), 6 deletions(-)
>
> diff --git a/utilities/ovs-lib.in b/utilities/ovs-lib.in
> index 3eda01d3c..06f4319d5 100644
> --- a/utilities/ovs-lib.in
> +++ b/utilities/ovs-lib.in
> @@ -519,13 +519,11 @@ join_cluster() {
>      LOCAL_ADDR="$3"
>      REMOTE_ADDR="$4"
>
> -    if test ! -e "$DB_FILE"; then
> -        ovsdb_tool join-cluster "$DB_FILE" "$SCHEMA_NAME" "$LOCAL_ADDR" 
> "$REMOTE_ADDR"
> -    elif ovsdb_tool db-is-standalone "$DB_FILE"; then
> -        # Backup standalone database and join cluster.
> +    if test -e "$DB_FILE" && ovsdb_tool db-is-standalone "$DB_FILE"; then
>          backup_db || return 1
> -        action "Joining $DB_FILE to cluster" \
> -               ovsdb_tool join-cluster "$DB_FILE" "$SCHEMA_NAME" 
> "$LOCAL_ADDR"
> +        rm $DB_FILE
> +    else
> +        ovsdb_tool join-cluster "$DB_FILE" "$SCHEMA_NAME" "$LOCAL_ADDR" 
> "$REMOTE_ADDR"
>      fi
>  }
>
> --
> 2.31.1

I tested this and it fixes things for me when upgrading where the
non-inital controller nodes had existing DBs, but looking at it again,
the behavior would change in the case where there was a DB_FILE that
was *not* standalone. I'll re-spin this.

Terry

_______________________________________________
dev mailing list
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to