[ovs-dev] [PATCH monitor_cond 05/12] lib: replace monitor2 with monitor_cond
Liran Schour
lirans at il.ibm.com
Tue Jan 5 13:13:58 UTC 2016
Replace monitor2 with monitor_cond with empty condition.
Signed-off-by: Liran Schour <lirans at 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 6086935..f288e92 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),
@@ -985,9 +985,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
@@ -3057,7 +3057,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 da418f0..c6dba77 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"
@@ -901,7 +898,7 @@ add_monitored_table(int argc, char *argv[],
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);
@@ -912,6 +909,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;
@@ -972,13 +970,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);
@@ -1056,21 +1049,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 {
@@ -1343,7 +1329,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 ad780af..8ddfdc7 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
More information about the dev
mailing list