diff mbox series

[ovs-dev] ovn-ctl: Add support for ovsdb-server --disable-file-column-diff.

Message ID 20210121192327.418636-1-i.maximets@ovn.org
State Accepted
Headers show
Series [ovs-dev] ovn-ctl: Add support for ovsdb-server --disable-file-column-diff. | expand

Commit Message

Ilya Maximets Jan. 21, 2021, 7:23 p.m. UTC
There is a change of a database file format in OVS version 2.15 that
doesn't allow older versions of ovsdb-server to read the database file
modified by the ovsdb-server version 2.15 or later.  This also affects
runtime communications between servers in active-backup and cluster
service models.

For the upgrade scenario OVS introduced special command line argument
for ovsdb-server: --disable-file-column-diff.
More datails in ovsdb(7) or here:
  https://docs.openvswitch.org/en/latest/ref/ovsdb.7/#upgrading-from-version-2-14-and-earlier-to-2-15-and-later

In order to support upgrades of OVN databases introducing new option
'--ovsdb-disable-file-column-diff' for ovn-ctl script that will pass
aforementioned argument to ovsdb-server processes.

To simplify upgrades for users, ovn-ctl will add requested argument
to ovsdb-server only if ovsdb-server actually supports it.

Signed-off-by: Ilya Maximets <i.maximets@ovn.org>
---
 NEWS              |  3 +++
 utilities/ovn-ctl | 12 ++++++++++++
 2 files changed, 15 insertions(+)

Comments

Han Zhou Jan. 25, 2021, 2:11 a.m. UTC | #1
On Thu, Jan 21, 2021 at 11:23 AM Ilya Maximets <i.maximets@ovn.org> wrote:
>
> There is a change of a database file format in OVS version 2.15 that
> doesn't allow older versions of ovsdb-server to read the database file
> modified by the ovsdb-server version 2.15 or later.  This also affects
> runtime communications between servers in active-backup and cluster
> service models.
>
> For the upgrade scenario OVS introduced special command line argument
> for ovsdb-server: --disable-file-column-diff.
> More datails in ovsdb(7) or here:
>
https://docs.openvswitch.org/en/latest/ref/ovsdb.7/#upgrading-from-version-2-14-and-earlier-to-2-15-and-later
>
> In order to support upgrades of OVN databases introducing new option
> '--ovsdb-disable-file-column-diff' for ovn-ctl script that will pass
> aforementioned argument to ovsdb-server processes.
>
> To simplify upgrades for users, ovn-ctl will add requested argument
> to ovsdb-server only if ovsdb-server actually supports it.
>
> Signed-off-by: Ilya Maximets <i.maximets@ovn.org>
> ---
>  NEWS              |  3 +++
>  utilities/ovn-ctl | 12 ++++++++++++
>  2 files changed, 15 insertions(+)
>
> diff --git a/NEWS b/NEWS
> index e89c5f408..d4619dd74 100644
> --- a/NEWS
> +++ b/NEWS
> @@ -10,6 +10,9 @@ Post-v20.12.0
>      "ovn-installed".  This external-id is set by ovn-controller only
after all
>      openflow operations corresponding to the OVS interface being added
have
>      been processed.
> +  - ovn-ctl: Added new command line argument
'--ovsdb-disable-file-column-diff'
> +    to support ovsdb-server upgrades from version 2.14 and earlier to
> +    2.15 and later.  See ovsdb(7) for more details.
>
>  OVN v20.12.0 - 18 Dec 2020
>  --------------------------
> diff --git a/utilities/ovn-ctl b/utilities/ovn-ctl
> index 111930886..967db6d6c 100755
> --- a/utilities/ovn-ctl
> +++ b/utilities/ovn-ctl
> @@ -251,6 +251,11 @@ $cluster_remote_port
>
>      [ "$OVN_USER" != "" ] && set "$@" --user "$OVN_USER"
>
> +    if test X"$OVSDB_DISABLE_FILE_COLUMN_DIFF" = Xyes; then
> +        (ovsdb-server --help | grep -q disable-file-column-diff) \

Do we really need this above line? The ovs-ctl tool is part of the OVS
release, so there shouldn't be a situation that ovs-ctl supports this new
option while the ovsdb-server doesn't, right? Of course it is not harmful
either, but we don't handle other options this way.
Other than this:
Acked-by: Han Zhou <hzhou@ovn.org>

> +            && set "$@" --disable-file-column-diff
> +    fi
> +
>      if test X"$detach" != Xno; then
>          set "$@" --detach --monitor
>      else
> @@ -715,6 +720,8 @@ set_defaults () {
>      OVSDB_NB_WRAPPER=
>      OVSDB_SB_WRAPPER=
>
> +    OVSDB_DISABLE_FILE_COLUMN_DIFF=no
> +
>      OVN_USER=
>
>      OVN_CONTROLLER_LOG="-vconsole:emer -vsyslog:err -vfile:info"
> @@ -932,6 +939,11 @@ Options:
>    --ovs-user="user[:group]"      pass the --user flag to ovs daemons
>    --ovsdb-nb-wrapper=WRAPPER     run with a wrapper like valgrind for
debugging
>    --ovsdb-sb-wrapper=WRAPPER     run with a wrapper like valgrind for
debugging
> +  --ovsdb-disable-file-column-diff=no|yes
> +                                 Specifies whether or not ovsdb-server
> +                                 processes should be started with
> +                                 --disable-file-column-diff.
> +                                 More details in ovsdb(7).  (default: no)
>    -h, --help                     display this help message
>
>  File location options:
> --
> 2.26.2
>
> _______________________________________________
> dev mailing list
> dev@openvswitch.org
> https://mail.openvswitch.org/mailman/listinfo/ovs-dev
Ilya Maximets Jan. 25, 2021, 10:57 a.m. UTC | #2
On 1/25/21 3:11 AM, Han Zhou wrote:
> 
> 
> On Thu, Jan 21, 2021 at 11:23 AM Ilya Maximets <i.maximets@ovn.org <mailto:i.maximets@ovn.org>> wrote:
>>
>> There is a change of a database file format in OVS version 2.15 that
>> doesn't allow older versions of ovsdb-server to read the database file
>> modified by the ovsdb-server version 2.15 or later.  This also affects
>> runtime communications between servers in active-backup and cluster
>> service models.
>>
>> For the upgrade scenario OVS introduced special command line argument
>> for ovsdb-server: --disable-file-column-diff.
>> More datails in ovsdb(7) or here:
>>   https://docs.openvswitch.org/en/latest/ref/ovsdb.7/#upgrading-from-version-2-14-and-earlier-to-2-15-and-later <https://docs.openvswitch.org/en/latest/ref/ovsdb.7/#upgrading-from-version-2-14-and-earlier-to-2-15-and-later>
>>
>> In order to support upgrades of OVN databases introducing new option
>> '--ovsdb-disable-file-column-diff' for ovn-ctl script that will pass
>> aforementioned argument to ovsdb-server processes.
>>
>> To simplify upgrades for users, ovn-ctl will add requested argument
>> to ovsdb-server only if ovsdb-server actually supports it.
>>
>> Signed-off-by: Ilya Maximets <i.maximets@ovn.org <mailto:i.maximets@ovn.org>>
>> ---
>>  NEWS              |  3 +++
>>  utilities/ovn-ctl | 12 ++++++++++++
>>  2 files changed, 15 insertions(+)
>>
>> diff --git a/NEWS b/NEWS
>> index e89c5f408..d4619dd74 100644
>> --- a/NEWS
>> +++ b/NEWS
>> @@ -10,6 +10,9 @@ Post-v20.12.0
>>      "ovn-installed".  This external-id is set by ovn-controller only after all
>>      openflow operations corresponding to the OVS interface being added have
>>      been processed.
>> +  - ovn-ctl: Added new command line argument '--ovsdb-disable-file-column-diff'
>> +    to support ovsdb-server upgrades from version 2.14 and earlier to
>> +    2.15 and later.  See ovsdb(7) for more details.
>>
>>  OVN v20.12.0 - 18 Dec 2020
>>  --------------------------
>> diff --git a/utilities/ovn-ctl b/utilities/ovn-ctl
>> index 111930886..967db6d6c 100755
>> --- a/utilities/ovn-ctl
>> +++ b/utilities/ovn-ctl
>> @@ -251,6 +251,11 @@ $cluster_remote_port
>>
>>      [ "$OVN_USER" != "" ] && set "$@" --user "$OVN_USER"
>>
>> +    if test X"$OVSDB_DISABLE_FILE_COLUMN_DIFF" = Xyes; then
>> +        (ovsdb-server --help | grep -q disable-file-column-diff) \
> 
> Do we really need this above line? The ovs-ctl tool is part of the OVS release, so there shouldn't be a situation that ovs-ctl supports this new option while the ovsdb-server doesn't, right? Of course it is not harmful either, but we don't handle other options this way.

That is true for ovs-ctl, but this change is for ovN-ctl which is part of
OVN distribution and could be used with different versions of OVS, e.g
with 2.13 LTS that doesn't support this option and doesn't need it for
the upgrade scenario.

> Other than this:
> Acked-by: Han Zhou <hzhou@ovn.org <mailto:hzhou@ovn.org>>
> 
>> +            && set "$@" --disable-file-column-diff
>> +    fi
>> +
>>      if test X"$detach" != Xno; then
>>          set "$@" --detach --monitor
>>      else
>> @@ -715,6 +720,8 @@ set_defaults () {
>>      OVSDB_NB_WRAPPER=
>>      OVSDB_SB_WRAPPER=
>>
>> +    OVSDB_DISABLE_FILE_COLUMN_DIFF=no
>> +
>>      OVN_USER=
>>
>>      OVN_CONTROLLER_LOG="-vconsole:emer -vsyslog:err -vfile:info"
>> @@ -932,6 +939,11 @@ Options:
>>    --ovs-user="user[:group]"      pass the --user flag to ovs daemons
>>    --ovsdb-nb-wrapper=WRAPPER     run with a wrapper like valgrind for debugging
>>    --ovsdb-sb-wrapper=WRAPPER     run with a wrapper like valgrind for debugging
>> +  --ovsdb-disable-file-column-diff=no|yes
>> +                                 Specifies whether or not ovsdb-server
>> +                                 processes should be started with
>> +                                 --disable-file-column-diff.
>> +                                 More details in ovsdb(7).  (default: no)
>>    -h, --help                     display this help message
>>
>>  File location options:
>> --
>> 2.26.2
Han Zhou Jan. 25, 2021, 11:21 p.m. UTC | #3
On Mon, Jan 25, 2021 at 2:57 AM Ilya Maximets <i.maximets@ovn.org> wrote:
>
> On 1/25/21 3:11 AM, Han Zhou wrote:
> >
> >
> > On Thu, Jan 21, 2021 at 11:23 AM Ilya Maximets <i.maximets@ovn.org
<mailto:i.maximets@ovn.org>> wrote:
> >>
> >> There is a change of a database file format in OVS version 2.15 that
> >> doesn't allow older versions of ovsdb-server to read the database file
> >> modified by the ovsdb-server version 2.15 or later.  This also affects
> >> runtime communications between servers in active-backup and cluster
> >> service models.
> >>
> >> For the upgrade scenario OVS introduced special command line argument
> >> for ovsdb-server: --disable-file-column-diff.
> >> More datails in ovsdb(7) or here:
> >>
https://docs.openvswitch.org/en/latest/ref/ovsdb.7/#upgrading-from-version-2-14-and-earlier-to-2-15-and-later
<
https://docs.openvswitch.org/en/latest/ref/ovsdb.7/#upgrading-from-version-2-14-and-earlier-to-2-15-and-later
>
> >>
> >> In order to support upgrades of OVN databases introducing new option
> >> '--ovsdb-disable-file-column-diff' for ovn-ctl script that will pass
> >> aforementioned argument to ovsdb-server processes.
> >>
> >> To simplify upgrades for users, ovn-ctl will add requested argument
> >> to ovsdb-server only if ovsdb-server actually supports it.
> >>
> >> Signed-off-by: Ilya Maximets <i.maximets@ovn.org <mailto:
i.maximets@ovn.org>>
> >> ---
> >>  NEWS              |  3 +++
> >>  utilities/ovn-ctl | 12 ++++++++++++
> >>  2 files changed, 15 insertions(+)
> >>
> >> diff --git a/NEWS b/NEWS
> >> index e89c5f408..d4619dd74 100644
> >> --- a/NEWS
> >> +++ b/NEWS
> >> @@ -10,6 +10,9 @@ Post-v20.12.0
> >>      "ovn-installed".  This external-id is set by ovn-controller only
after all
> >>      openflow operations corresponding to the OVS interface being
added have
> >>      been processed.
> >> +  - ovn-ctl: Added new command line argument
'--ovsdb-disable-file-column-diff'
> >> +    to support ovsdb-server upgrades from version 2.14 and earlier to
> >> +    2.15 and later.  See ovsdb(7) for more details.
> >>
> >>  OVN v20.12.0 - 18 Dec 2020
> >>  --------------------------
> >> diff --git a/utilities/ovn-ctl b/utilities/ovn-ctl
> >> index 111930886..967db6d6c 100755
> >> --- a/utilities/ovn-ctl
> >> +++ b/utilities/ovn-ctl
> >> @@ -251,6 +251,11 @@ $cluster_remote_port
> >>
> >>      [ "$OVN_USER" != "" ] && set "$@" --user "$OVN_USER"
> >>
> >> +    if test X"$OVSDB_DISABLE_FILE_COLUMN_DIFF" = Xyes; then
> >> +        (ovsdb-server --help | grep -q disable-file-column-diff) \
> >
> > Do we really need this above line? The ovs-ctl tool is part of the OVS
release, so there shouldn't be a situation that ovs-ctl supports this new
option while the ovsdb-server doesn't, right? Of course it is not harmful
either, but we don't handle other options this way.
>
> That is true for ovs-ctl, but this change is for ovN-ctl which is part of
> OVN distribution and could be used with different versions of OVS, e.g
> with 2.13 LTS that doesn't support this option and doesn't need it for
> the upgrade scenario.
>
Ah, my bad. Thanks for explaining.

> > Other than this:
> > Acked-by: Han Zhou <hzhou@ovn.org <mailto:hzhou@ovn.org>>
> >
> >> +            && set "$@" --disable-file-column-diff
> >> +    fi
> >> +
> >>      if test X"$detach" != Xno; then
> >>          set "$@" --detach --monitor
> >>      else
> >> @@ -715,6 +720,8 @@ set_defaults () {
> >>      OVSDB_NB_WRAPPER=
> >>      OVSDB_SB_WRAPPER=
> >>
> >> +    OVSDB_DISABLE_FILE_COLUMN_DIFF=no
> >> +
> >>      OVN_USER=
> >>
> >>      OVN_CONTROLLER_LOG="-vconsole:emer -vsyslog:err -vfile:info"
> >> @@ -932,6 +939,11 @@ Options:
> >>    --ovs-user="user[:group]"      pass the --user flag to ovs daemons
> >>    --ovsdb-nb-wrapper=WRAPPER     run with a wrapper like valgrind for
debugging
> >>    --ovsdb-sb-wrapper=WRAPPER     run with a wrapper like valgrind for
debugging
> >> +  --ovsdb-disable-file-column-diff=no|yes
> >> +                                 Specifies whether or not ovsdb-server
> >> +                                 processes should be started with
> >> +                                 --disable-file-column-diff.
> >> +                                 More details in ovsdb(7).  (default:
no)
> >>    -h, --help                     display this help message
> >>
> >>  File location options:
> >> --
> >> 2.26.2
Numan Siddique Jan. 27, 2021, 10:59 a.m. UTC | #4
On Tue, Jan 26, 2021 at 4:52 AM Han Zhou <hzhou@ovn.org> wrote:
>
> On Mon, Jan 25, 2021 at 2:57 AM Ilya Maximets <i.maximets@ovn.org> wrote:
> >
> > On 1/25/21 3:11 AM, Han Zhou wrote:
> > >
> > >
> > > On Thu, Jan 21, 2021 at 11:23 AM Ilya Maximets <i.maximets@ovn.org
> <mailto:i.maximets@ovn.org>> wrote:
> > >>
> > >> There is a change of a database file format in OVS version 2.15 that
> > >> doesn't allow older versions of ovsdb-server to read the database file
> > >> modified by the ovsdb-server version 2.15 or later.  This also affects
> > >> runtime communications between servers in active-backup and cluster
> > >> service models.
> > >>
> > >> For the upgrade scenario OVS introduced special command line argument
> > >> for ovsdb-server: --disable-file-column-diff.
> > >> More datails in ovsdb(7) or here:
> > >>
> https://docs.openvswitch.org/en/latest/ref/ovsdb.7/#upgrading-from-version-2-14-and-earlier-to-2-15-and-later
> <
> https://docs.openvswitch.org/en/latest/ref/ovsdb.7/#upgrading-from-version-2-14-and-earlier-to-2-15-and-later
> >
> > >>
> > >> In order to support upgrades of OVN databases introducing new option
> > >> '--ovsdb-disable-file-column-diff' for ovn-ctl script that will pass
> > >> aforementioned argument to ovsdb-server processes.
> > >>
> > >> To simplify upgrades for users, ovn-ctl will add requested argument
> > >> to ovsdb-server only if ovsdb-server actually supports it.
> > >>
> > >> Signed-off-by: Ilya Maximets <i.maximets@ovn.org <mailto:
> i.maximets@ovn.org>>
> > >> ---
> > >>  NEWS              |  3 +++
> > >>  utilities/ovn-ctl | 12 ++++++++++++
> > >>  2 files changed, 15 insertions(+)
> > >>
> > >> diff --git a/NEWS b/NEWS
> > >> index e89c5f408..d4619dd74 100644
> > >> --- a/NEWS
> > >> +++ b/NEWS
> > >> @@ -10,6 +10,9 @@ Post-v20.12.0
> > >>      "ovn-installed".  This external-id is set by ovn-controller only
> after all
> > >>      openflow operations corresponding to the OVS interface being
> added have
> > >>      been processed.
> > >> +  - ovn-ctl: Added new command line argument
> '--ovsdb-disable-file-column-diff'
> > >> +    to support ovsdb-server upgrades from version 2.14 and earlier to
> > >> +    2.15 and later.  See ovsdb(7) for more details.
> > >>
> > >>  OVN v20.12.0 - 18 Dec 2020
> > >>  --------------------------
> > >> diff --git a/utilities/ovn-ctl b/utilities/ovn-ctl
> > >> index 111930886..967db6d6c 100755
> > >> --- a/utilities/ovn-ctl
> > >> +++ b/utilities/ovn-ctl
> > >> @@ -251,6 +251,11 @@ $cluster_remote_port
> > >>
> > >>      [ "$OVN_USER" != "" ] && set "$@" --user "$OVN_USER"
> > >>
> > >> +    if test X"$OVSDB_DISABLE_FILE_COLUMN_DIFF" = Xyes; then
> > >> +        (ovsdb-server --help | grep -q disable-file-column-diff) \
> > >
> > > Do we really need this above line? The ovs-ctl tool is part of the OVS
> release, so there shouldn't be a situation that ovs-ctl supports this new
> option while the ovsdb-server doesn't, right? Of course it is not harmful
> either, but we don't handle other options this way.
> >
> > That is true for ovs-ctl, but this change is for ovN-ctl which is part of
> > OVN distribution and could be used with different versions of OVS, e.g
> > with 2.13 LTS that doesn't support this option and doesn't need it for
> > the upgrade scenario.
> >
> Ah, my bad. Thanks for explaining.
>
> > > Other than this:
> > > Acked-by: Han Zhou <hzhou@ovn.org <mailto:hzhou@ovn.org>>

Thanks Ilya and Han.

I applied this patch to master.

Numan

> > >
> > >> +            && set "$@" --disable-file-column-diff
> > >> +    fi
> > >> +
> > >>      if test X"$detach" != Xno; then
> > >>          set "$@" --detach --monitor
> > >>      else
> > >> @@ -715,6 +720,8 @@ set_defaults () {
> > >>      OVSDB_NB_WRAPPER=
> > >>      OVSDB_SB_WRAPPER=
> > >>
> > >> +    OVSDB_DISABLE_FILE_COLUMN_DIFF=no
> > >> +
> > >>      OVN_USER=
> > >>
> > >>      OVN_CONTROLLER_LOG="-vconsole:emer -vsyslog:err -vfile:info"
> > >> @@ -932,6 +939,11 @@ Options:
> > >>    --ovs-user="user[:group]"      pass the --user flag to ovs daemons
> > >>    --ovsdb-nb-wrapper=WRAPPER     run with a wrapper like valgrind for
> debugging
> > >>    --ovsdb-sb-wrapper=WRAPPER     run with a wrapper like valgrind for
> debugging
> > >> +  --ovsdb-disable-file-column-diff=no|yes
> > >> +                                 Specifies whether or not ovsdb-server
> > >> +                                 processes should be started with
> > >> +                                 --disable-file-column-diff.
> > >> +                                 More details in ovsdb(7).  (default:
> no)
> > >>    -h, --help                     display this help message
> > >>
> > >>  File location options:
> > >> --
> > >> 2.26.2
> _______________________________________________
> dev mailing list
> dev@openvswitch.org
> https://mail.openvswitch.org/mailman/listinfo/ovs-dev
>
diff mbox series

Patch

diff --git a/NEWS b/NEWS
index e89c5f408..d4619dd74 100644
--- a/NEWS
+++ b/NEWS
@@ -10,6 +10,9 @@  Post-v20.12.0
     "ovn-installed".  This external-id is set by ovn-controller only after all
     openflow operations corresponding to the OVS interface being added have
     been processed.
+  - ovn-ctl: Added new command line argument '--ovsdb-disable-file-column-diff'
+    to support ovsdb-server upgrades from version 2.14 and earlier to
+    2.15 and later.  See ovsdb(7) for more details.
 
 OVN v20.12.0 - 18 Dec 2020
 --------------------------
diff --git a/utilities/ovn-ctl b/utilities/ovn-ctl
index 111930886..967db6d6c 100755
--- a/utilities/ovn-ctl
+++ b/utilities/ovn-ctl
@@ -251,6 +251,11 @@  $cluster_remote_port
 
     [ "$OVN_USER" != "" ] && set "$@" --user "$OVN_USER"
 
+    if test X"$OVSDB_DISABLE_FILE_COLUMN_DIFF" = Xyes; then
+        (ovsdb-server --help | grep -q disable-file-column-diff) \
+            && set "$@" --disable-file-column-diff
+    fi
+
     if test X"$detach" != Xno; then
         set "$@" --detach --monitor
     else
@@ -715,6 +720,8 @@  set_defaults () {
     OVSDB_NB_WRAPPER=
     OVSDB_SB_WRAPPER=
 
+    OVSDB_DISABLE_FILE_COLUMN_DIFF=no
+
     OVN_USER=
 
     OVN_CONTROLLER_LOG="-vconsole:emer -vsyslog:err -vfile:info"
@@ -932,6 +939,11 @@  Options:
   --ovs-user="user[:group]"      pass the --user flag to ovs daemons
   --ovsdb-nb-wrapper=WRAPPER     run with a wrapper like valgrind for debugging
   --ovsdb-sb-wrapper=WRAPPER     run with a wrapper like valgrind for debugging
+  --ovsdb-disable-file-column-diff=no|yes
+                                 Specifies whether or not ovsdb-server
+                                 processes should be started with
+                                 --disable-file-column-diff.
+                                 More details in ovsdb(7).  (default: no)
   -h, --help                     display this help message
 
 File location options: