.SH COMMANDS
The commands implemented by \fBovs\-vsctl\fR are described in the
sections below.
+.SS "Open vSwitch Commands"
+These commands work with an Open vSwitch as a whole.
+.
+.IP "\fBinit\fR"
+Initializes the Open vSwitch database, if it is empty. If the
+database has already been initialized, this command has no effect.
+.IP
+Any successful \fBovs\-vsctl\fR command automatically initializes the
+Open vSwitch database if it is empty. This command is provided to
+initialize the database without executing any other command.
.
.SS "Bridge Commands"
These commands examine and manipulate Open vSwitch bridges.
vsctl_fatal("missing command name (use --help for help)");
}
- /* Now execut the commands. */
+ /* Now execute the commands. */
idl = ovsdb_idl_create(db, &ovsrec_idl_class);
seqno = ovsdb_idl_get_seqno(idl);
trials = 0;
free(bridges);
}
+static void
+cmd_init(struct vsctl_context *ctx UNUSED)
+{
+}
+
static void
cmd_add_br(struct vsctl_context *ctx)
{
int n_output;
int i, start;
+ txn = ovsdb_idl_txn_create(idl);
+
ovs = ovsrec_open_vswitch_first(idl);
if (!ovs) {
- /* XXX it would be more user-friendly to create a record ourselves
- * (while verifying that the table is empty before doing so). */
- vsctl_fatal("%s: database does not contain any Open vSwitch "
- "configuration", db);
+ /* XXX add verification that table is empty */
+ ovs = ovsrec_open_vswitch_insert(txn);
}
- txn = ovsdb_idl_txn_create(idl);
output = xmalloc(argc * sizeof *output);
n_output = 0;
for (start = i = 0; i <= argc; i++) {
get_vsctl_handler(int argc, char *argv[], struct vsctl_context *ctx)
{
static const struct vsctl_command all_commands[] = {
+ /* Open vSwitch commands. */
+ {"init", 0, 0, cmd_init, ""},
+
/* Bridge commands. */
{"add-br", 1, 3, cmd_add_br, ""},
{"del-br", 1, 1, cmd_del_br, "--if-exists"},
action "Creating empty database $OVSDB_SERVER_DB" true
$ovsdb_tool create "$OVSDB_SERVER_DB" "$VSWITCHD_OVSDB_SCHEMA"
-
- action "Creating initial table in $OVSDB_SERVER_DB" true
- $ovsdb_tool transact "$OVSDB_SERVER_DB" '[{"op": "insert", "table": "Open_vSwitch", "row": {}}]'
fi
start_ovsdb_server
+ $vsctl --no-wait init
if [ ! -e /var/run/vswitch.booted ]; then
touch /var/run/vswitch.booted
for bridge in $($vsctl list-br); do