This command will be useful to query if the ovsdb-server instance is active or backup.
Signed-off-by: Numan Siddique <nusid...@redhat.com> --- ovsdb/ovsdb-server.1.in | 4 ++++ ovsdb/ovsdb-server.c | 17 +++++++++++++++++ tests/ovsdb-server.at | 19 +++++++++++++++++++ 3 files changed, 40 insertions(+) v1 -> v2 ------- * Added the test case * Updated the document diff --git a/ovsdb/ovsdb-server.1.in b/ovsdb/ovsdb-server.1.in index d1ba83b..723fb76 100644 --- a/ovsdb/ovsdb-server.1.in +++ b/ovsdb/ovsdb-server.1.in @@ -205,6 +205,10 @@ 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/is\-backup\-server" +Outputs true if \fBovsdb\-server\fR is currently synchronizing +its databases from the active server. +. .IP "\fBovsdb\-server/set\-active\-ovsdb\-server \fIserver" Sets the active \fIserver\fR from which \fBovsdb\-server\fR connects through \fBovsdb\-server/connect\-active\-ovsdb\-server\fR. diff --git a/ovsdb/ovsdb-server.c b/ovsdb/ovsdb-server.c index e08c341..283ec1b 100644 --- a/ovsdb/ovsdb-server.c +++ b/ovsdb/ovsdb-server.c @@ -81,6 +81,7 @@ static unixctl_cb_func ovsdb_server_set_active_ovsdb_server; static unixctl_cb_func ovsdb_server_get_active_ovsdb_server; static unixctl_cb_func ovsdb_server_connect_active_ovsdb_server; static unixctl_cb_func ovsdb_server_disconnect_active_ovsdb_server; +static unixctl_cb_func ovsdb_server_is_backup_server; static unixctl_cb_func ovsdb_server_set_sync_excluded_tables; static unixctl_cb_func ovsdb_server_get_sync_excluded_tables; @@ -361,6 +362,9 @@ main(int argc, char *argv[]) unixctl_command_register("ovsdb-server/disconnect-active-ovsdb-server", "", 0, 0, ovsdb_server_disconnect_active_ovsdb_server, NULL); + unixctl_command_register("ovsdb-server/is-backup-server", "", + 0, 0, ovsdb_server_is_backup_server, + NULL); unixctl_command_register("ovsdb-server/set-sync-excluded-tables", "", 0, 1, ovsdb_server_set_sync_excluded_tables, NULL); @@ -1104,6 +1108,19 @@ ovsdb_server_disconnect_active_ovsdb_server(struct unixctl_conn *conn, } static void +ovsdb_server_is_backup_server(struct unixctl_conn *conn, + int argc OVS_UNUSED, + const char *argv[] OVS_UNUSED, + void *arg_ OVS_UNUSED) +{ + struct ds s; + ds_init(&s); + ds_put_format(&s, "%s\n", is_backup_server ? "true": "false"); + unixctl_command_reply(conn, ds_cstr(&s)); + ds_destroy(&s); +} + +static void ovsdb_server_set_sync_excluded_tables(struct unixctl_conn *conn, int argc OVS_UNUSED, const char *argv[], diff --git a/tests/ovsdb-server.at b/tests/ovsdb-server.at index 0436de8..2f0d175 100644 --- a/tests/ovsdb-server.at +++ b/tests/ovsdb-server.at @@ -1105,6 +1105,25 @@ AT_CHECK([ovs-appctl -t ovsdb-server ovsdb-server/get-active-ovsdb-server], ]) AT_CLEANUP +#ovsdb-server/is-backup-server command +AT_SETUP([ovsdb-server/is-backup-server]) +AT_KEYWORDS([ovsdb server replication is-backup]) +ordinal_schema > schema +AT_CHECK([ovsdb-tool create db schema], [0], [ignore], [ignore]) +on_exit 'kill `cat *.pid`' +AT_CHECK([ovsdb-server --detach --no-chdir --pidfile --sync-from=tcp:127.0.0.1:9999 db]) + +AT_CHECK([ovs-appctl -t ovsdb-server ovsdb-server/is-backup-server], + [0], [true +]) + +ovs-appctl -t ovsdb-server ovsdb-server/disconnect-active-ovsdb-server + +AT_CHECK([ovs-appctl -t ovsdb-server ovsdb-server/is-backup-server], + [0], [false +]) +AT_CLEANUP + #ovsdb-server/get-sync-excluded-tables command AT_SETUP([ovsdb-server/get-sync-excluded-tables]) AT_KEYWORDS([ovsdb server replication get-excluded-tables]) -- 2.7.4 _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev