Re: [ovs-dev] [PATCH 4/4] ovsdb: Add unixctl commands for OVSDB replication
On Fri, Jun 24, 2016 at 4:44 PM, Ben Pfaffwrote: > From: Mario Cabrera > > Set and get the server to replicate from: > > ovsdb-server/set-remote-ovsdb-server {server} > ovsdb-server/get-remote-ovsdb-server > > Set and get the replicated table blacklist: > > ovsdb-server/set-sync-excluded-tables {DB:table,...} > ovsdb-server/get-sync-excluded-tables > > Connect to the configured server and start replication: > > ovsdb-server/connect-remote-ovsdb-server > > Disconnect from the remote server and stop replication, without dropping > the replicated data: > > ovsdb-server/disconnect-remote-ovsdb-server > > Signed-off-by: Mario Cabrera Acked-by: Andy Zhou I was able to fix this patch up and rebased it to master. All tests passed. I will apply it to master in a short while. ___ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev
Re: [ovs-dev] [PATCH 4/4] ovsdb: Add unixctl commands for OVSDB replication
Yes, all the unit tests pass for me. This patch adds 6 unit tests, one for each unixctl command. Which one is failing for you? -Mario -Original Message- From: Ben Pfaff [mailto:b...@ovn.org] Sent: Friday, June 24, 2016 6:17 PM To: dev@openvswitch.org Cc: Cabrera Vega, Mario AlbertoSubject: Re: [PATCH 4/4] ovsdb: Add unixctl commands for OVSDB replication On Fri, Jun 24, 2016 at 04:44:05PM -0700, Ben Pfaff wrote: > From: Mario Cabrera > > Set and get the server to replicate from: > > ovsdb-server/set-remote-ovsdb-server {server} > ovsdb-server/get-remote-ovsdb-server > > Set and get the replicated table blacklist: > > ovsdb-server/set-sync-excluded-tables {DB:table,...} > ovsdb-server/get-sync-excluded-tables > > Connect to the configured server and start replication: > > ovsdb-server/connect-remote-ovsdb-server > > Disconnect from the remote server and stop replication, without > dropping the replicated data: > > ovsdb-server/disconnect-remote-ovsdb-server > > Signed-off-by: Mario Cabrera When I apply this, the new unit test fails. Does it pass for you? ___ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev
Re: [ovs-dev] [PATCH 4/4] ovsdb: Add unixctl commands for OVSDB replication
On Fri, Jun 24, 2016 at 04:44:05PM -0700, Ben Pfaff wrote: > From: Mario Cabrera> > Set and get the server to replicate from: > > ovsdb-server/set-remote-ovsdb-server {server} > ovsdb-server/get-remote-ovsdb-server > > Set and get the replicated table blacklist: > > ovsdb-server/set-sync-excluded-tables {DB:table,...} > ovsdb-server/get-sync-excluded-tables > > Connect to the configured server and start replication: > > ovsdb-server/connect-remote-ovsdb-server > > Disconnect from the remote server and stop replication, without dropping > the replicated data: > > ovsdb-server/disconnect-remote-ovsdb-server > > Signed-off-by: Mario Cabrera When I apply this, the new unit test fails. Does it pass for you? ___ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev
[ovs-dev] [PATCH 4/4] ovsdb: Add unixctl commands for OVSDB replication
From: Mario CabreraSet and get the server to replicate from: ovsdb-server/set-remote-ovsdb-server {server} ovsdb-server/get-remote-ovsdb-server Set and get the replicated table blacklist: ovsdb-server/set-sync-excluded-tables {DB:table,...} ovsdb-server/get-sync-excluded-tables Connect to the configured server and start replication: ovsdb-server/connect-remote-ovsdb-server Disconnect from the remote server and stop replication, without dropping the replicated data: ovsdb-server/disconnect-remote-ovsdb-server Signed-off-by: Mario Cabrera --- ovsdb/ovsdb-server.1.in | 21 ++ ovsdb/ovsdb-server.c| 97 + ovsdb/replication.c | 13 +++- ovsdb/replication.h | 3 + tests/ovsdb-server.at | 188 5 files changed, 321 insertions(+), 1 deletion(-) diff --git a/ovsdb/ovsdb-server.1.in b/ovsdb/ovsdb-server.1.in index 4bbbace..f21b734 100644 --- a/ovsdb/ovsdb-server.1.in +++ b/ovsdb/ovsdb-server.1.in @@ -188,6 +188,27 @@ again (with \fBovsdb\-server/add\-db\fR). Outputs a list of the currently configured databases added either through the command line or through the \fBovsdb\-server/add\-db\fR command. . +.IP "\fBovsdb\-server/set\-remote\-ovsdb\-server \fIserver" +Sets the remote \fIserver\fR from which \fBovsdb\-server\fR connects through +\fBovsdb\-server/connect\-remote\-ovsdb\-server\fR. +. +.IP "\fBovsdb\-server/get\-remote\-ovsdb\-server" +Gets the remote server from which \fBovsdb\-server\fR is currently synchronizing +its databases. +. +.IP "\fBovsdb\-server/connect\-remote\-ovsdb\-server" +Causes \fBovsdb\-server\fR to synchronize its databases with the server +specified by \fBovsdb\-server/set\-remote\-ovsdb\-server\fR. +. +.IP "\fBovsdb\-server/disconnect\-remote\-ovsdb\-server" +Causes \fBovsdb\-server\fR to stop synchronizing its databases with a remote server. +. +.IP "\fBovsdb\-server/set\-sync\-excluded\-tables \fIdb\fB:\fItable\fR[\fB,\fIdb\fB:\fItable\fR]..." +Sets the \fItable\fR whitin \fIdb\fR that will be excluded from synchronization. +. +.IP "\fBovsdb\-server/get\-sync\-excluded\-tables" +Gets the tables that are currently excluded from synchronization. +. .so lib/vlog-unixctl.man .so lib/memory-unixctl.man .so lib/coverage-unixctl.man diff --git a/ovsdb/ovsdb-server.c b/ovsdb/ovsdb-server.c index 1b9de19..c06e8fd 100644 --- a/ovsdb/ovsdb-server.c +++ b/ovsdb/ovsdb-server.c @@ -77,6 +77,12 @@ static unixctl_cb_func ovsdb_server_reconnect; static unixctl_cb_func ovsdb_server_perf_counters_clear; static unixctl_cb_func ovsdb_server_perf_counters_show; static unixctl_cb_func ovsdb_server_disable_monitor2; +static unixctl_cb_func ovsdb_server_set_remote_ovsdb_server; +static unixctl_cb_func ovsdb_server_get_remote_ovsdb_server; +static unixctl_cb_func ovsdb_server_connect_remote_ovsdb_server; +static unixctl_cb_func ovsdb_server_disconnect_remote_ovsdb_server; +static unixctl_cb_func ovsdb_server_set_sync_excluded_tables; +static unixctl_cb_func ovsdb_server_get_sync_excluded_tables; struct server_config { struct sset *remotes; @@ -334,6 +340,19 @@ main(int argc, char *argv[]) unixctl_command_register("ovsdb-server/perf-counters-clear", "", 0, 0, ovsdb_server_perf_counters_clear, NULL); +unixctl_command_register("ovsdb-server/set-remote-ovsdb-server", "", 0, 1, + ovsdb_server_set_remote_ovsdb_server, NULL); +unixctl_command_register("ovsdb-server/get-remote-ovsdb-server", "", 0, 0, + ovsdb_server_get_remote_ovsdb_server, NULL); +unixctl_command_register("ovsdb-server/connect-remote-ovsdb-server", "", 0, 0, + ovsdb_server_connect_remote_ovsdb_server, NULL); +unixctl_command_register("ovsdb-server/disconnect-remote-ovsdb-server", "", 0, 0, + ovsdb_server_disconnect_remote_ovsdb_server, NULL); +unixctl_command_register("ovsdb-server/set-sync-excluded-tables", "", 0, 1, + ovsdb_server_set_sync_excluded_tables, NULL); +unixctl_command_register("ovsdb-server/get-sync-excluded-tables", "", 0, 0, + ovsdb_server_get_sync_excluded_tables, NULL); + /* Simulate the behavior of OVS release prior to version 2.5 that * does not support the monitor2 method. */ unixctl_command_register("ovsdb-server/disable-monitor2", "", 0, 0, @@ -1019,6 +1038,84 @@ report_error_if_changed(char *error, char **last_errorp) } static void +ovsdb_server_set_remote_ovsdb_server(struct unixctl_conn *conn, + int argc OVS_UNUSED, const char *argv[], + void *arg_ OVS_UNUSED) +{ +set_remote_ovsdb_server(argv[1]); +connect_to_remote_server = false; +unixctl_command_reply(conn,
[ovs-dev] [PATCH 4/4] ovsdb: Add unixctl commands for OVSDB replication
Set and get the server to replicate from: ovsdb-server/set-remote-ovsdb-server {server} ovsdb-server/get-remote-ovsdb-server Set and get the replicated table blacklist: ovsdb-server/set-sync-excluded-tables {DB:table,...} ovsdb-server/get-sync-excluded-tables Connect to the configured server and start replication: ovsdb-server/connect-remote-ovsdb-server Disconnect from the remote server and stop replication, without dropping the replicated data: ovsdb-server/disconnect-remote-ovsdb-server Signed-off-by: Mario Cabrera--- ovsdb/ovsdb-server.1.in | 21 ++ ovsdb/ovsdb-server.c| 97 + ovsdb/replication.c | 13 +++- ovsdb/replication.h | 3 + tests/ovsdb-server.at | 188 5 files changed, 321 insertions(+), 1 deletion(-) diff --git a/ovsdb/ovsdb-server.1.in b/ovsdb/ovsdb-server.1.in index 1025ade..4a8b551 100644 --- a/ovsdb/ovsdb-server.1.in +++ b/ovsdb/ovsdb-server.1.in @@ -185,6 +185,27 @@ again (with \fBovsdb\-server/add\-db\fR). Outputs a list of the currently configured databases added either through the command line or through the \fBovsdb\-server/add\-db\fR command. . +.IP "\fBovsdb\-server/set\-remote\-ovsdb\-server \fIserver" +Sets the remote \fIserver\fR from which \fBovsdb\-server\fR connects through +\fBovsdb\-server/connect\-remote\-ovsdb\-server\fR. +. +.IP "\fBovsdb\-server/get\-remote\-ovsdb\-server" +Gets the remote server from which \fBovsdb\-server\fR is currently synchronizing +its databases. +. +.IP "\fBovsdb\-server/connect\-remote\-ovsdb\-server" +Causes \fBovsdb\-server\fR to synchronize its databases with the server +specified by \fBovsdb\-server/set\-remote\-ovsdb\-server\fR. +. +.IP "\fBovsdb\-server/disconnect\-remote\-ovsdb\-server" +Causes \fBovsdb\-server\fR to stop synchronizing its databases with a remote server. +. +.IP "\fBovsdb\-server/set\-sync\-excluded\-tables \fIdb\fB:\fItable\fR[\fB,\fIdb\fB:\fItable\fR]..." +Sets the \fItable\fR whitin \fIdb\fR that will be excluded from synchronization. +. +.IP "\fBovsdb\-server/get\-sync\-excluded\-tables" +Gets the tables that are currently excluded from synchronization. +. .so lib/vlog-unixctl.man .so lib/memory-unixctl.man .so lib/coverage-unixctl.man diff --git a/ovsdb/ovsdb-server.c b/ovsdb/ovsdb-server.c index 93beaf0..bb2364e 100644 --- a/ovsdb/ovsdb-server.c +++ b/ovsdb/ovsdb-server.c @@ -77,6 +77,12 @@ static unixctl_cb_func ovsdb_server_reconnect; static unixctl_cb_func ovsdb_server_perf_counters_clear; static unixctl_cb_func ovsdb_server_perf_counters_show; static unixctl_cb_func ovsdb_server_disable_monitor2; +static unixctl_cb_func ovsdb_server_set_remote_ovsdb_server; +static unixctl_cb_func ovsdb_server_get_remote_ovsdb_server; +static unixctl_cb_func ovsdb_server_connect_remote_ovsdb_server; +static unixctl_cb_func ovsdb_server_disconnect_remote_ovsdb_server; +static unixctl_cb_func ovsdb_server_set_sync_excluded_tables; +static unixctl_cb_func ovsdb_server_get_sync_excluded_tables; struct server_config { struct sset *remotes; @@ -333,6 +339,19 @@ main(int argc, char *argv[]) unixctl_command_register("ovsdb-server/perf-counters-clear", "", 0, 0, ovsdb_server_perf_counters_clear, NULL); +unixctl_command_register("ovsdb-server/set-remote-ovsdb-server", "", 0, 1, + ovsdb_server_set_remote_ovsdb_server, NULL); +unixctl_command_register("ovsdb-server/get-remote-ovsdb-server", "", 0, 0, + ovsdb_server_get_remote_ovsdb_server, NULL); +unixctl_command_register("ovsdb-server/connect-remote-ovsdb-server", "", 0, 0, + ovsdb_server_connect_remote_ovsdb_server, NULL); +unixctl_command_register("ovsdb-server/disconnect-remote-ovsdb-server", "", 0, 0, + ovsdb_server_disconnect_remote_ovsdb_server, NULL); +unixctl_command_register("ovsdb-server/set-sync-excluded-tables", "", 0, 1, + ovsdb_server_set_sync_excluded_tables, NULL); +unixctl_command_register("ovsdb-server/get-sync-excluded-tables", "", 0, 0, + ovsdb_server_get_sync_excluded_tables, NULL); + /* Simulate the behavior of OVS release prior to version 2.5 that * does not support the monitor2 method. */ unixctl_command_register("ovsdb-server/disable-monitor2", "", 0, 0, @@ -1018,6 +1037,84 @@ report_error_if_changed(char *error, char **last_errorp) } static void +ovsdb_server_set_remote_ovsdb_server(struct unixctl_conn *conn, + int argc OVS_UNUSED, const char *argv[], + void *arg_ OVS_UNUSED) +{ +set_remote_ovsdb_server(argv[1]); +connect_to_remote_server = false; +unixctl_command_reply(conn, NULL); +} + +static void