Skip to content

Commit

Permalink
ovsdb: Change the way connection duration time is reported in Manager…
Browse files Browse the repository at this point in the history
… table.

Commit 0b3e7a8 (ovsdb-server: Write manager status information to Manager
table.) attempted to provide managers with the ability to debug manager-related
connection problems, but it turns out that reporting "time_in_state" is not
very useful, because the state is constantly changing. What people really want
is the time each manager has been connected or disconnected, depending on the
current connection state.

Replace "time_in_state" key with "time_connected" and "time_disconnected"
keys. Only one exists at a time, and time is in seconds.

Bug #4833.
  • Loading branch information
Andrew Evans committed Mar 9, 2011
1 parent 24190e8 commit a4613b0
Show file tree
Hide file tree
Showing 3 changed files with 8 additions and 4 deletions.
5 changes: 4 additions & 1 deletion ovsdb/jsonrpc-server.c
Original file line number Diff line number Diff line change
Expand Up @@ -470,7 +470,10 @@ ovsdb_jsonrpc_session_get_status(const struct ovsdb_jsonrpc_remote *remote,

jsonrpc_session_get_reconnect_stats(js, &rstats);
status->state = rstats.state;
status->state_elapsed = rstats.state_elapsed;
status->conn_secs = (rstats.is_connected
? rstats.current_connection_duration
: rstats.current_disconnect_duration
) / 1000;

return;
}
Expand Down
2 changes: 1 addition & 1 deletion ovsdb/jsonrpc-server.h
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ void ovsdb_jsonrpc_server_set_remotes(struct ovsdb_jsonrpc_server *,
struct ovsdb_jsonrpc_remote_status {
const char *state;
int last_error;
unsigned int state_elapsed;
unsigned int conn_secs;
bool is_connected;
};
void ovsdb_jsonrpc_server_get_remote_status(
Expand Down
5 changes: 3 additions & 2 deletions ovsdb/ovsdb-server.c
Original file line number Diff line number Diff line change
Expand Up @@ -495,8 +495,9 @@ update_remote_row(const struct ovsdb_row *row, struct ovsdb_txn *txn,

keys[n] = xstrdup("state");
values[n++] = xstrdup(status->state);
keys[n] = xstrdup("time_in_state");
values[n++] = xasprintf("%u", status->state_elapsed);
keys[n] = xstrdup(status->is_connected ? "time_connected"
: "time_disconnected");
values[n++] = xasprintf("%u", status->conn_secs);
if (status->last_error) {
keys[n] = xstrdup("last_error");
values[n++] =
Expand Down

0 comments on commit a4613b0

Please sign in to comment.