#include <config.h>
-#include "ovsdb.h"
-
+#include <assert.h>
#include <errno.h>
#include <getopt.h>
#include <signal.h>
#include "daemon.h"
#include "dirs.h"
#include "file.h"
+#include "hash.h"
#include "json.h"
#include "jsonrpc.h"
#include "jsonrpc-server.h"
#include "leak-checker.h"
#include "list.h"
+#include "ovsdb.h"
#include "ovsdb-data.h"
#include "ovsdb-types.h"
#include "ovsdb-error.h"
daemonize_complete();
- unixctl_command_register("exit", ovsdb_server_exit, &exiting);
- unixctl_command_register("ovsdb-server/compact", ovsdb_server_compact,
- file);
- unixctl_command_register("ovsdb-server/reconnect", ovsdb_server_reconnect,
- jsonrpc);
+ unixctl_command_register("exit", "", 0, 0, ovsdb_server_exit, &exiting);
+ unixctl_command_register("ovsdb-server/compact", "", 0, 0,
+ ovsdb_server_compact, file);
+ unixctl_command_register("ovsdb-server/reconnect", "", 0, 0,
+ ovsdb_server_reconnect, jsonrpc);
exiting = false;
while (!exiting) {
values[n++] =
xstrdup(ovs_retval_to_string(status.last_error));
}
+ if (status.locks_held && status.locks_held[0]) {
+ keys[n] = xstrdup("locks_held");
+ values[n++] = xstrdup(status.locks_held);
+ }
+ if (status.locks_waiting && status.locks_waiting[0]) {
+ keys[n] = xstrdup("locks_waiting");
+ values[n++] = xstrdup(status.locks_waiting);
+ }
+ if (status.locks_lost && status.locks_lost[0]) {
+ keys[n] = xstrdup("locks_lost");
+ values[n++] = xstrdup(status.locks_lost);
+ }
+ if (status.n_connections > 1) {
+ keys[n] = xstrdup("n_connections");
+ values[n++] = xasprintf("%d", status.n_connections);
+ }
write_string_string_column(rw_row, "status", keys, values, n);
+
+ ovsdb_jsonrpc_server_free_remote_status(&status);
}
static void
}
static void
-ovsdb_server_exit(struct unixctl_conn *conn, const char *args OVS_UNUSED,
+ovsdb_server_exit(struct unixctl_conn *conn, int argc OVS_UNUSED,
+ const char *argv[] OVS_UNUSED,
void *exiting_)
{
bool *exiting = exiting_;
}
static void
-ovsdb_server_compact(struct unixctl_conn *conn, const char *args OVS_UNUSED,
- void *file_)
+ovsdb_server_compact(struct unixctl_conn *conn, int argc OVS_UNUSED,
+ const char *argv[] OVS_UNUSED, void *file_)
{
struct ovsdb_file *file = file_;
struct ovsdb_error *error;
/* "ovsdb-server/reconnect": makes ovsdb-server drop all of its JSON-RPC
* connections and reconnect. */
static void
-ovsdb_server_reconnect(struct unixctl_conn *conn, const char *args OVS_UNUSED,
- void *jsonrpc_)
+ovsdb_server_reconnect(struct unixctl_conn *conn, int argc OVS_UNUSED,
+ const char *argv[] OVS_UNUSED, void *jsonrpc_)
{
struct ovsdb_jsonrpc_server *jsonrpc = jsonrpc_;
usage();
case 'V':
- OVS_PRINT_VERSION(0, 0);
+ ovs_print_version(0, 0);
exit(EXIT_SUCCESS);
VLOG_OPTION_HANDLERS