Replace monitor2 with monitor_cond with empty condition. Signed-off-by: Liran Schour <lir...@il.ibm.com> --- lib/ovsdb-idl.c | 28 ++++++++++++++-------------- ovsdb/jsonrpc-server.c | 14 +++++++------- ovsdb/jsonrpc-server.h | 2 +- ovsdb/ovsdb-client.c | 27 ++++++--------------------- ovsdb/ovsdb-server.c | 20 +++++++++++--------- tests/ovs-vswitchd.at | 8 ++++---- tests/ovsdb-idl.at | 10 +++++----- 7 files changed, 48 insertions(+), 61 deletions(-)
diff --git a/lib/ovsdb-idl.c b/lib/ovsdb-idl.c index 7e84138..18d4b8b 100644 --- a/lib/ovsdb-idl.c +++ b/lib/ovsdb-idl.c @@ -79,8 +79,8 @@ enum ovsdb_idl_state { IDL_S_SCHEMA_REQUESTED, IDL_S_MONITOR_REQUESTED, IDL_S_MONITORING, - IDL_S_MONITOR2_REQUESTED, - IDL_S_MONITORING2 + IDL_S_MONITOR_COND_REQUESTED, + IDL_S_MONITORING_COND }; struct ovsdb_idl { @@ -153,7 +153,7 @@ static struct vlog_rate_limit semantic_rl = VLOG_RATE_LIMIT_INIT(1, 5); static void ovsdb_idl_clear(struct ovsdb_idl *); static void ovsdb_idl_send_schema_request(struct ovsdb_idl *); static void ovsdb_idl_send_monitor_request(struct ovsdb_idl *); -static void ovsdb_idl_send_monitor2_request(struct ovsdb_idl *); +static void ovsdb_idl_send_monitor_cond_request(struct ovsdb_idl *); static void ovsdb_idl_parse_update(struct ovsdb_idl *, const struct json *, enum ovsdb_update_version); static struct ovsdb_error *ovsdb_idl_parse_update__(struct ovsdb_idl *, @@ -392,20 +392,20 @@ ovsdb_idl_run(struct ovsdb_idl *idl) case IDL_S_SCHEMA_REQUESTED: /* Reply to our "get_schema" request. */ idl->schema = json_clone(msg->result); - ovsdb_idl_send_monitor2_request(idl); - idl->state = IDL_S_MONITOR2_REQUESTED; + ovsdb_idl_send_monitor_cond_request(idl); + idl->state = IDL_S_MONITOR_COND_REQUESTED; break; case IDL_S_MONITOR_REQUESTED: - case IDL_S_MONITOR2_REQUESTED: - /* Reply to our "monitor" or "monitor2" request. */ + case IDL_S_MONITOR_COND_REQUESTED: + /* Reply to our "monitor" or "monitor_cond" request. */ idl->change_seqno++; ovsdb_idl_clear(idl); if (idl->state == IDL_S_MONITOR_REQUESTED) { idl->state = IDL_S_MONITORING; ovsdb_idl_parse_update(idl, msg->result, OVSDB_UPDATE); - } else { /* IDL_S_MONITOR2_REQUESTED. */ - idl->state = IDL_S_MONITORING2; + } else { /* IDL_S_MONITOR_COND_REQUESTED. */ + idl->state = IDL_S_MONITORING_COND; ovsdb_idl_parse_update(idl, msg->result, OVSDB_UPDATE2); } @@ -416,7 +416,7 @@ ovsdb_idl_run(struct ovsdb_idl *idl) break; case IDL_S_MONITORING: - case IDL_S_MONITORING2: + case IDL_S_MONITORING_COND: default: OVS_NOT_REACHED(); } @@ -442,7 +442,7 @@ ovsdb_idl_run(struct ovsdb_idl *idl) /* Someone else stole our lock. */ ovsdb_idl_parse_lock_notify(idl, msg->params, false); } else if (msg->type == JSONRPC_ERROR - && idl->state == IDL_S_MONITOR2_REQUESTED + && idl->state == IDL_S_MONITOR_COND_REQUESTED && idl->request_id && json_equal(idl->request_id, msg->id)) { if (msg->error && !strcmp(json_string(msg->error), @@ -1012,9 +1012,9 @@ log_parse_update_error(struct ovsdb_error *error) } static void -ovsdb_idl_send_monitor2_request(struct ovsdb_idl *idl) +ovsdb_idl_send_monitor_cond_request(struct ovsdb_idl *idl) { - ovsdb_idl_send_monitor_request__(idl, "monitor2"); + ovsdb_idl_send_monitor_request__(idl, "monitor_cond"); } static void @@ -3033,7 +3033,7 @@ ovsdb_idl_update_has_lock(struct ovsdb_idl *idl, bool new_has_lock) { if (new_has_lock && !idl->has_lock) { if (idl->state == IDL_S_MONITORING || - idl->state == IDL_S_MONITORING2) { + idl->state == IDL_S_MONITORING_COND) { idl->change_seqno++; } else { /* We're setting up a session, so don't signal that the database diff --git a/ovsdb/jsonrpc-server.c b/ovsdb/jsonrpc-server.c index e4500da..3439f40 100644 --- a/ovsdb/jsonrpc-server.c +++ b/ovsdb/jsonrpc-server.c @@ -46,9 +46,9 @@ VLOG_DEFINE_THIS_MODULE(ovsdb_jsonrpc_server); struct ovsdb_jsonrpc_remote; struct ovsdb_jsonrpc_session; -/* Set false to defeature monitor2, causing jsonrpc to respond to monitor2 - * method with an error. */ -static bool monitor2_enable__ = true; +/* Set false to defeature monitor_cond, causing jsonrpc to respond to + * monitor_cond method with an error. */ +static bool monitor_cond_enable__ = true; /* Message rate-limiting. */ static struct vlog_rate_limit rl = VLOG_RATE_LIMIT_INIT(1, 5); @@ -850,8 +850,8 @@ ovsdb_jsonrpc_session_got_request(struct ovsdb_jsonrpc_session *s, reply = execute_transaction(s, db, request); } } else if (!strcmp(request->method, "monitor") || - (monitor2_enable__ && !strcmp(request->method, "monitor2")) || - !strcmp(request->method, "monitor_cond")) { + (monitor_cond_enable__ && !strcmp(request->method, + "monitor_cond"))) { struct ovsdb *db = ovsdb_jsonrpc_lookup_db(s, request, &reply); if (!reply) { int l = strlen(request->method) - strlen("monitor"); @@ -1409,8 +1409,8 @@ ovsdb_jsonrpc_monitor_flush_all(struct ovsdb_jsonrpc_session *s) } void -ovsdb_jsonrpc_disable_monitor2(void) +ovsdb_jsonrpc_disable_monitor_cond(void) { /* Once disabled, it is not possible to re-enable it. */ - monitor2_enable__ = false; + monitor_cond_enable__ = false; } diff --git a/ovsdb/jsonrpc-server.h b/ovsdb/jsonrpc-server.h index 7a0bd31..ea50ff6 100644 --- a/ovsdb/jsonrpc-server.h +++ b/ovsdb/jsonrpc-server.h @@ -71,6 +71,6 @@ void ovsdb_jsonrpc_server_get_memory_usage(const struct ovsdb_jsonrpc_server *, struct ovsdb_jsonrpc_monitor; void ovsdb_jsonrpc_monitor_destroy(struct ovsdb_jsonrpc_monitor *); -void ovsdb_jsonrpc_disable_monitor2(void); +void ovsdb_jsonrpc_disable_monitor_cond(void); #endif /* ovsdb/jsonrpc-server.h */ diff --git a/ovsdb/ovsdb-client.c b/ovsdb/ovsdb-client.c index e48677e..ebcaa9a 100644 --- a/ovsdb/ovsdb-client.c +++ b/ovsdb/ovsdb-client.c @@ -260,9 +260,6 @@ usage(void) "\n monitor [SERVER] [DATABASE] ALL\n" " monitor all changes to all columns in all tables\n" " in DATBASE on SERVER.\n" - "\n monitor2 [SERVER] [DATABASE] ALL\n" - " same usage as monitor, but uses \"monitor2\" method over" - " the wire.\n" "\n monitor-cond [SERVER] [DATABASE] TABLE CONDITION [COLUMN,..]\n" " conditionally monitor contents of COLUMNS in TABLE in\n" " DATABASE on SERVER.\n" @@ -914,7 +911,7 @@ destroy_monitored_table(struct monitored_table *mts, size_t n) static void do_monitor__(struct jsonrpc *rpc, const char *database, - enum ovsdb_monitor_version version, const bool conditional, + enum ovsdb_monitor_version version, int argc, char *argv[]) { const char *server = jsonrpc_get_name(rpc); @@ -925,6 +922,7 @@ do_monitor__(struct jsonrpc *rpc, const char *database, struct json *monitor, *monitor_requests, *request_id; bool exiting = false; bool blocked = false; + bool conditional = version == OVSDB_MONITOR_V2 ? true : false; struct monitored_table *mts; size_t n_mts, allocated_mts; @@ -985,13 +983,8 @@ do_monitor__(struct jsonrpc *rpc, const char *database, monitor = json_array_create_3(json_string_create(database), json_null_create(), monitor_requests); - const char *method; - if (!conditional) { - method = version == OVSDB_MONITOR_V2 ? "monitor2" - : "monitor"; - } else { - method = "monitor_cond"; - } + const char *method = version == OVSDB_MONITOR_V2 ? + "monitor_cond" : "monitor"; request = jsonrpc_create_request(method, monitor, NULL); request_id = json_clone(request->id); @@ -1074,21 +1067,14 @@ static void do_monitor(struct jsonrpc *rpc, const char *database, int argc, char *argv[]) { - do_monitor__(rpc, database, OVSDB_MONITOR_V1, false, argc, argv); -} - -static void -do_monitor2(struct jsonrpc *rpc, const char *database, - int argc, char *argv[]) -{ - do_monitor__(rpc, database, OVSDB_MONITOR_V2, false, argc, argv); + do_monitor__(rpc, database, OVSDB_MONITOR_V1, argc, argv); } static void do_monitor_cond(struct jsonrpc *rpc, const char *database, int argc, char *argv[]) { - do_monitor__(rpc, database, OVSDB_MONITOR_V2, true, argc, argv); + do_monitor__(rpc, database, OVSDB_MONITOR_V2, argc, argv); } struct dump_table_aux { @@ -1361,7 +1347,6 @@ static const struct ovsdb_client_command all_commands[] = { { "list-columns", NEED_DATABASE, 0, 1, do_list_columns }, { "transact", NEED_RPC, 1, 1, do_transact }, { "monitor", NEED_DATABASE, 1, INT_MAX, do_monitor }, - { "monitor2", NEED_DATABASE, 1, INT_MAX, do_monitor2 }, { "monitor-cond", NEED_DATABASE, 2, 3, do_monitor_cond }, { "dump", NEED_DATABASE, 0, INT_MAX, do_dump }, { "help", NEED_NONE, 0, INT_MAX, do_help }, diff --git a/ovsdb/ovsdb-server.c b/ovsdb/ovsdb-server.c index 231ba2f..343fd59 100644 --- a/ovsdb/ovsdb-server.c +++ b/ovsdb/ovsdb-server.c @@ -79,7 +79,7 @@ static unixctl_cb_func ovsdb_server_compact; 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_disable_monitor_cond; struct server_config { struct sset *remotes; @@ -332,9 +332,9 @@ main(int argc, char *argv[]) ovsdb_server_perf_counters_clear, 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, - ovsdb_server_disable_monitor2, jsonrpc); + * does not support the monitor_cond method. */ + unixctl_command_register("ovsdb-server/disable-monitor-cond", "", 0, 0, + ovsdb_server_disable_monitor_cond, jsonrpc); main_loop(jsonrpc, &all_dbs, unixctl, &remotes, run_process, &exiting); @@ -1059,16 +1059,18 @@ ovsdb_server_perf_counters_clear(struct unixctl_conn *conn, int argc OVS_UNUSED, unixctl_command_reply(conn, NULL); } -/* "ovsdb-server/disable-monitor2": makes ovsdb-server drop all of its +/* "ovsdb-server/disable-monitor-cond": makes ovsdb-server drop all of its * JSON-RPC connections and reconnect. New sessions will not recognize - * the 'monitor2' method. */ + * the 'monitor_cond' method. */ static void -ovsdb_server_disable_monitor2(struct unixctl_conn *conn, int argc OVS_UNUSED, - const char *argv[] OVS_UNUSED, void *jsonrpc_) +ovsdb_server_disable_monitor_cond(struct unixctl_conn *conn, + int argc OVS_UNUSED, + const char *argv[] OVS_UNUSED, + void *jsonrpc_) { struct ovsdb_jsonrpc_server *jsonrpc = jsonrpc_; - ovsdb_jsonrpc_disable_monitor2(); + ovsdb_jsonrpc_disable_monitor_cond(); ovsdb_jsonrpc_server_reconnect(jsonrpc); unixctl_command_reply(conn, NULL); } diff --git a/tests/ovs-vswitchd.at b/tests/ovs-vswitchd.at index 492b944..34c6790 100644 --- a/tests/ovs-vswitchd.at +++ b/tests/ovs-vswitchd.at @@ -165,14 +165,14 @@ OVS_VSWITCHD_STOP(["/Not adding Unix domain socket controller/d"]) AT_CLEANUP dnl ---------------------------------------------------------------------- -dnl OVSDB server before release version 2.5 does not support the monitor2 +dnl OVSDB server before release version 2.5 does not support the monitor_cond dnl method. This test defeatures the OVSDB server to simulate an older dnl OVSDB server and make sure ovs-vswitchd can still work with it -AT_SETUP([ovs-vswitchd -- Compatible with OVSDB server - w/o monitor2)]) +AT_SETUP([ovs-vswitchd -- Compatible with OVSDB server - w/o monitor_cond)]) OVS_VSWITCHD_START -dnl defeature OVSDB server -- no monitor2 -AT_CHECK([ovs-appctl -t ovsdb-server ovsdb-server/disable-monitor2]) +dnl defeature OVSDB server -- no monitor_cond +AT_CHECK([ovs-appctl -t ovsdb-server ovsdb-server/disable-monitor-cond]) sleep 1 diff --git a/tests/ovsdb-idl.at b/tests/ovsdb-idl.at index ebf82a5..4baac46 100644 --- a/tests/ovsdb-idl.at +++ b/tests/ovsdb-idl.at @@ -588,13 +588,13 @@ test-ovsdb|ovsdb_idl|link1 table in idltest database lacks l2 column (database n # Check that ovsdb-idl sent on "monitor" request and that it didn't # mention that table or column, and (for paranoia) that it did mention another # table and column. -AT_CHECK([grep -c '"monitor\|monitor2"' stderr], [0], [1 +AT_CHECK([grep -c '"monitor\|monitor_cond"' stderr], [0], [1 ]) -AT_CHECK([grep '"monitor\|monitor2"' stderr | grep link2], [1]) -AT_CHECK([grep '"monitor\|monitor2"' stderr | grep l2], [1]) -AT_CHECK([grep '"monitor\|monitor2"' stderr | grep -c '"link1"'], [0], [1 +AT_CHECK([grep '"monitor\|monitor_cond"' stderr | grep link2], [1]) +AT_CHECK([grep '"monitor\|monitor_cond"' stderr | grep l2], [1]) +AT_CHECK([grep '"monitor\|monitor_cond"' stderr | grep -c '"link1"'], [0], [1 ]) -AT_CHECK([grep '"monitor\|monitor2"' stderr | grep -c '"ua"'], [0], [1 +AT_CHECK([grep '"monitor\|monitor_cond"' stderr | grep -c '"ua"'], [0], [1 ]) OVSDB_SERVER_SHUTDOWN AT_CLEANUP -- 2.1.4 _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev