[ovs-dev] [PATCH v2] Backup and remove existing DB when joining cluster

Dumitru Ceara dceara at redhat.com
Fri Nov 5 11:07:06 UTC 2021


On 10/20/21 10:56 PM, Terry Wilson 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 <twilson at redhat.com>
> ---
>  utilities/ovs-lib.in | 9 ++++-----
>  1 file changed, 4 insertions(+), 5 deletions(-)
> 
> diff --git a/utilities/ovs-lib.in b/utilities/ovs-lib.in
> index 3eda01d3c..a710f053a 100644
> --- a/utilities/ovs-lib.in
> +++ b/utilities/ovs-lib.in
> @@ -519,13 +519,12 @@ join_cluster() {
>      LOCAL_ADDR="$3"
>      REMOTE_ADDR="$4"
>  
> +    if test -e "$DB_FILE" && ovsdb_tool db-is-standalone "$DB_FILE"; then
> +        backup_db || return 1
> +        rm $DB_FILE

I think this is OK, but it's a behavior change (improvement I'd say),
should we mention it somewhere public (NEWS?) in case users had scripts
that handled migration from standalone to clustered externally?

Also, it's probably useful to log something here to make it more visible
that we backed up the standalone DB and removed the original file.
Wdyt?

> +    fi
>      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.
> -        backup_db || return 1
> -        action "Joining $DB_FILE to cluster" \
> -               ovsdb_tool join-cluster "$DB_FILE" "$SCHEMA_NAME" "$LOCAL_ADDR"
>      fi
>  }
>  
> 

Thanks,
Dumitru



More information about the dev mailing list