]> git.proxmox.com Git - ovs.git/blame - ovsdb/ovsdb-client.1.in
dpctl: Fix dpctl process command parameter error.
[ovs.git] / ovsdb / ovsdb-client.1.in
CommitLineData
d0632593 1.\" -*- nroff -*-
9bccc3ff 2.so lib/ovs.tmac
d2cb6c95 3.TH ovsdb\-client 1 "@VERSION@" "Open vSwitch" "Open vSwitch Manual"
812560d7 4.\" This program's name:
d0632593
BP
5.ds PN ovsdb\-client
6.
7.SH NAME
8ovsdb\-client \- command-line interface to \fBovsdb-server\fR(1)
9.
10.SH SYNOPSIS
12b84d50 11.IP "Server-Level Commands:"
d0c43b59 12\fBovsdb\-client\fR [\fIoptions\fR] \fBlist\-dbs\fR [\fIserver\fR]
12b84d50 13.IP "Database Schema Commands:"
d0c43b59 14\fBovsdb\-client\fR [\fIoptions\fR] \fBget\-schema\fR [\fIserver\fR] [\fIdatabase\fR]
d0632593 15.br
d0c43b59 16\fBovsdb\-client\fR [\fIoptions\fR] \fBlist\-tables\fR [\fIserver\fR] [\fIdatabase\fR]
9cb53f26 17.br
d0c43b59 18\fBovsdb\-client\fR [\fIoptions\fR] \fBlist\-columns\fR [\fIserver\fR] [\fIdatabase\fR] [\fItable\fR]
12b84d50 19.IP "Database Version Management Commands:"
53178986
BP
20\fBovsdb\-client \fR[\fIoptions\fR] \fBconvert \fR[\fIserver\fR] \fIschema\fR
21.br
22\fBovsdb\-client \fR[\fIoptions\fR] \fBneeds\-conversion \fR[\fIserver\fR] \fIschema\fR
d0632593 23.br
d0c43b59 24\fBovsdb\-client\fR [\fIoptions\fR] \fBget\-schema\-version\fR [\fIserver\fR] [\fIdatabase\fR]
12b84d50 25.IP "Data Management Commands:"
d0c43b59 26\fBovsdb\-client\fR [\fIoptions\fR] \fBtransact\fR [\fIserver\fR] \fItransaction\fR
6d65eee8 27.br
d0c43b59 28\fBovsdb\-client\fR [\fIoptions\fR] \fBquery\fR [\fIserver\fR] \fItransaction\fR
838f9c31 29.br
d0c43b59 30\fBovsdb\-client\fR [\fIoptions\fR] \fBdump\fR [\fIserver\fR] [\fIdatabase\fR] [\fItable\fR
b30aa413 31[\fIcolumn\fR...]]
25c269ef 32.br
d0c43b59
JP
33\fBovsdb\-client\fR [\fIoptions\fR]
34\fBbackup\fR [\fIserver\fR] [\fIdatabase\fR] \fB> \fIsnapshot\fR
fe0fb885 35.br
d0c43b59
JP
36\fBovsdb\-client\fR [\fIoptions\fR] [\fB\-\-force\fR]
37\fBrestore\fR [\fIserver\fR] [\fIdatabase\fR] \fB< \fIsnapshot\fR
4d0a31b6 38.br
d0c43b59 39\fBovsdb\-client\fR [\fIoptions\fR] \fBmonitor\fR [\fIserver\fR] [\fIdatabase\fR] \fItable\fR
20aa445d 40[\fIcolumn\fR[\fB,\fIcolumn\fR]...]...
a8425c53 41.br
d0c43b59 42\fBovsdb\-client\fR [\fIoptions\fR] \fBmonitor\fR [\fIserver\fR] [\fIdatabase\fR] \fBALL\fR
4227b221 43.br
d0c43b59 44\fBovsdb\-client\fR [\fIoptions\fR] \fBmonitor\-cond\fR [\fIserver\fR] [\fIdatabase\fR] \fIconditions
c383f3bf 45\fItable\fR [\fIcolumn\fR[\fB,\fIcolumn\fR]...]...
1b1d2e6d 46.br
9167cb52
HZ
47\fBovsdb\-client\fR [\fIoptions\fR] \fBmonitor\-cond\-since\fR [\fIserver\fR] [\fIdatabase\fR]
48[\fIlast-id\fR] \fIconditions \fItable\fR [\fIcolumn\fR[\fB,\fIcolumn\fR]...]...
49.br
1b1d2e6d 50\fBovsdb\-client \fR[\fIoptions\fR] \fBwait\fR \fR[\fIserver\fR] \fIdatabase\fR \fIstate\fR
12b84d50 51.IP "Testing Commands:"
d0c43b59 52\fBovsdb\-client\fR [\fIoptions\fR] \fBlock\fR [\fIserver\fR] \fIlock\fR
9aeba3f4 53.br
d0c43b59 54\fBovsdb\-client\fR [\fIoptions\fR] \fBsteal\fR [\fIserver\fR] \fIlock\fR
9aeba3f4 55.br
d0c43b59 56\fBovsdb\-client\fR [\fIoptions\fR] \fBunlock\fR [\fIserver\fR] \fIlock\fR
9aeba3f4 57.br
12b84d50 58.IP "Other Commands:"
d0632593 59\fBovsdb\-client help\fR
1b1d2e6d
BP
60.IP "Cluster Options:"
61[\fB\-\-no\-leader\-only\fR]
d0632593 62.IP "Output formatting options:"
4e312e69 63[\fB\-\-format=\fIformat\fR]
c2158145 64[\fB\-\-data=\fIformat\fR]
3b4d80ef 65[\fB\-\-no-headings\fR]
c2158145
BP
66[\fB\-\-pretty\fR]
67[\fB\-\-bare\fR]
8f46c9bb 68[\fB\-\-timestamp\fR]
3f262d7d 69.so lib/daemon-syn.man
d0632593 70.so lib/vlog-syn.man
9467fe62
BP
71.so lib/ssl-syn.man
72.so lib/ssl-bootstrap-syn.man
e18a1d08 73.so lib/ssl-connect-syn.man
d0632593
BP
74.so lib/common-syn.man
75.
76.SH DESCRIPTION
77The \fBovsdb\-client\fR program is a command-line client for
53ffefe9 78interacting with a running \fBovsdb\-server\fR process.
12b84d50
BP
79Each command connects to the specified OVSDB \fIserver\fR, which may
80be an OVSDB active or passive connection method, as described in
81\fBovsdb\fR(7). The default server is \fBunix:@RUNDIR@/db.sock\fR
82and
83the default \fIdatabase\fR is \fBOpen_vSwitch\fR.
53ffefe9 84.PP
1b1d2e6d
BP
85\fBovsdb\-client\fR supports the
86\fImethod1\fB,\fImethod2\fB,\fR...\fB,\fImethodN\fR syntax described
87in \fBovsdb\fR(7) for connecting to a cluster. When this syntax is
88used, \fBovsdb\-client\fR tries the cluster members in random order
89until it finds the cluster leader. Specify the
90\fB\-\-no\-leader\-only\fR option to instead accept any server that is
91connected to the cluster.
92.PP
12b84d50
BP
93For an introduction to OVSDB and its implementation in Open vSwitch,
94see \fBovsdb\fR(7).
95.PP
96The following sections describe the commands that \fBovsdb\-client\fR
97supports.
98.SS "Server-Level Commands"
99Most \fBovsdb\-client\fR commands work with an individual database,
100but these commands apply to an entire database server.
d0632593 101.
d0c43b59 102.IP "\fBlist\-dbs\fR [\fIserver\fR]"
9cb53f26 103Connects to \fIserver\fR, retrieves the list of known databases, and
12b84d50
BP
104prints them one per line. These database names are the ones that
105other commands may use for \fIdatabase\fR.
106.
107.SS "Database Schema Commands"
108.PP
109These commands obtain the schema from a database and print it or part
110of it.
9cb53f26 111.
d0c43b59 112.IP "\fBget\-schema\fR [\fIserver\fR] [\fIdatabase\fR]"
9cb53f26
BP
113Connects to \fIserver\fR, retrieves the schema for \fIdatabase\fR, and
114prints it in JSON format.
d0632593 115.
d0c43b59 116.IP "\fBlist\-tables\fR [\fIserver\fR] [\fIdatabase\fR]"
9cb53f26 117Connects to \fIserver\fR, retrieves the schema for \fIdatabase\fR, and
2e57b537 118prints a table listing the name of each table
9cb53f26 119within the database.
d0632593 120.
d0c43b59 121.IP "\fBlist\-columns\fR [\fIserver\fR] [\fIdatabase\fR] \fItable\fR"
9cb53f26 122Connects to \fIserver\fR, retrieves the schema for \fIdatabase\fR, and
2e57b537 123prints a table listing the name and type of each
9cb53f26
BP
124column. If \fItable\fR is specified, only columns in that table are
125listed; otherwise, the tables include columns in all tables.
a8425c53 126.
12b84d50
BP
127.SS "Database Version Management Commands"
128.so ovsdb/ovsdb-schemas.man
129.PP
130These commands work with different versions of OVSDB schemas and
131databases.
132.
53178986
BP
133.IP "\fBconvert \fR[\fIserver\fR] \fIschema\fR"
134Reads an OVSDB schema in JSON format, as specified in the OVSDB
135specification, from \fIschema\fR, then connects to \fIserver\fR and
136requests the server to convert the database whose name is specified in
137\fIschema\fR to the schema also specified in \fIschema\fR.
138.IP
139The conversion is atomic, consistent, isolated, and durable.
140Following the schema change, the server notifies clients that use the
141\fBset_db_change_aware\fR RPC introduced in Open vSwitch 2.9 and
142cancels their outstanding transactions and monitors. The server
143disconnects other clients, enabling them to notice the change when
144they reconnect.
145.IP
146This command can do simple ``upgrades'' and ``downgrades'' on a
147database's schema. The data in the database must be valid when
148interpreted under \fIschema\fR, with only one exception: data for
149tables and columns that do not exist in \fIschema\fR are ignored.
150Columns that exist in \fIschema\fR but not in the database are set to
151their default values. All of \fIschema\fR's constraints apply in
152full.
153.IP
154Some uses of this command can cause unrecoverable data loss. For
155example, converting a database from a schema that has a given column
156or table to one that does not will delete all data in that column or
157table. Back up critical databases before converting them.
158.IP
159This command works with clustered and standalone databases.
160Standalone databases may also be converted (offline) with
161\fBovsdb\-tool\fR's \fBconvert\fR command.
162.
163.IP "\fBneeds\-conversion \fR[\fIserver\fR] \fIschema\fR"
164Reads the schema from \fIschema\fR, then connects to \fIserver\fR and
165requests the schema from the database whose name is specified in
166\fIschema\fR. If the two schemas are the same, prints \fBno\fR on
167stdout; if they differ, prints \fByes\fR.
168.
169.IP "\fBget\-schema\-version \fR[\fIserver\fR] [\fIdatabase\fR]"
12b84d50
BP
170Connects to \fIserver\fR, retrieves the schema for \fIdatabase\fR, and
171prints its version number on stdout.
172If \fIdatabase\fR was created before schema versioning was introduced,
173then it will not have a version number and this command will print a
174blank line.
175.
d0c43b59 176.IP "\fBget\-schema\-cksum\fR [\fIserver\fR] [\fIdatabase\fR]"
12b84d50
BP
177Connects to \fIserver\fR, retrieves the schema for \fIdatabase\fR, and
178prints its checksum on stdout. If \fIdatabase\fR does not include a
179checksum, prints a blank line.
180.
181.SS "Data Management Commands"
182.PP
183These commands read or modify the data in a database.
184.
d0c43b59 185.IP "\fBtransact\fR [\fIserver\fR] \fItransaction\fR"
6d65eee8 186Connects to \fIserver\fR, sends it the specified \fItransaction\fR,
12b84d50
BP
187which must be a JSON array appropriate for use as the \fBparams\fR to
188a JSON-RPC \fBtransact\fR request, and prints the received reply on
189stdout.
a8425c53 190.
d0c43b59 191.IP "\fBquery\fR [\fIserver\fR] \fItransaction\fR"
838f9c31
BP
192This commands acts like a read-only version of \fBtransact\fR.
193It connects to \fIserver\fR, sends it the specified \fItransaction\fR,
194which must be a JSON array appropriate for use as the \fBparams\fR to
195a JSON-RPC \fBtransact\fR request, and prints the received reply on
196stdout. To ensure that the transaction does not modify the database,
197this command appends an \fBabort\fR operation to the set of operations
198included in \fItransaction\fR before sending it to the database, and
199then removes the \fBabort\fR result from the reply (if it is present).
200.
d0c43b59 201.IP "\fBdump\fR [\fIserver\fR] [\fIdatabase\fR] [\fItable\fR [\fIcolumn\fR...]]"
25c269ef 202Connects to \fIserver\fR, retrieves all of the data in \fIdatabase\fR,
b30aa413
BV
203and prints it on stdout as a series of tables. If \fItable\fR is
204specified, only that table is retrieved. If at least one \fIcolumn\fR
205is specified, only those columns are retrieved.
25c269ef 206.
d0c43b59 207.IP "\fBbackup\fR [\fIserver\fR] [\fIdatabase\fR] \fB> \fIsnapshot\fR"
4d0a31b6
BP
208Connects to \fIserver\fR, retrieves a snapshot of the schema and data
209in \fIdatabase\fR, and prints it on stdout in the format used for
1b1d2e6d 210OVSDB standalone and active-backup databases. This is an appropriate
4d0a31b6
BP
211way to back up any remote database. The database snapshot that it
212outputs is suitable to be served up directly by \fBovsdb\-server\fR or
213used as the input to \fBovsdb\-client restore\fR.
214.IP
1b1d2e6d 215Another way to back up a standalone or active-backup database is to
4d0a31b6
BP
216copy its database file, e.g. with \fBcp\fR. This is safe even if the
217database is in use.
218.IP
219The output does not include ephemeral columns, which by design do not
220survive across restarts of \fBovsdb\-server\fR.
221.
d0c43b59 222.IP "[\fB\-\-force\fR] \fBrestore\fR [\fIserver\fR] [\fIdatabase\fR] \fB< \fIsnapshot\fR"
fe0fb885
BP
223Reads \fIsnapshot\fR, which must be a OVSDB standalone or
224active-backup database (possibly but not necessarily created by
225\fBovsdb\-client backup). Then, connects to \fIserver\fR, verifies
226that \fIdatabase\fR and \fIsnapshot\fR have the same schema, then
227deletes all of the data in \fIdatabase\fR and replaces it by
228\fIsnapshot\fR. The replacement happens atomically, in a single
229transaction.
230.IP
231UUIDs for rows in the restored database will differ from those in
232\fIsnapshot\fR, because the OVSDB protocol does not allow clients to
1b1d2e6d
BP
233specify row UUIDs. Another way to restore a standalone or active-backup
234database, which does also restore row UUIDs, is to stop
fe0fb885
BP
235the server or servers, replace the database file by the snapshot, then
236restart the database. Either way, ephemeral columns are not restored,
237since by design they do not survive across restarts of
238\fBovsdb\-server\fR.
239.IP
240Normally \fBrestore\fR exits with a failure if \fBsnapshot\fR and the
241server's database have different schemas. In such a case, it is a
242good idea to convert the database to the new schema before restoring,
243e.g. with \fBovsdb\-client convert\fR. Use \fB\-\-force\fR to proceed
244regardless of schema differences even though the restore might fail
245with an error or succeed with surprising results.
246.
d0c43b59
JP
247.IP "\fBmonitor\fR [\fIserver\fR] [\fIdatabase\fR] \fItable\fR [\fIcolumn\fR[\fB,\fIcolumn\fR]...]..."
248.IQ "\fBmonitor\-cond\fR [\fIserver\fR] [\fIdatabase\fR] \fIconditions\fR \fItable\fR [\fIcolumn\fR[\fB,\fIcolumn\fR]...]..."
9167cb52 249.IQ "\fBmonitor\-cond\-since\fR [\fIserver\fR] [\fIdatabase\fR] [\fIlast-id\fR] \fIconditions\fR \fItable\fR [\fIcolumn\fR[\fB,\fIcolumn\fR]...]..."
c383f3bf
LS
250Connects to \fIserver\fR and monitors the contents of rows that match conditions in
251\fItable\fR in \fIdatabase\fR. By default, the initial contents of \fItable\fR are
252printed, followed by each change as it occurs. If conditions empty,
253all rows will be monitored. If at least one \fIcolumn\fR is specified, only those
254columns are monitored. The following \fIcolumn\fR names have special meanings:
a8425c53 255.RS
20aa445d
BP
256.IP "\fB!initial\fR"
257Do not print the initial contents of the specified columns.
258.IP "\fB!insert\fR"
259Do not print newly inserted rows.
260.IP "\fB!delete\fR"
261Do not print deleted rows.
262.IP "\fB!modify\fR"
263Do not print modifications to existing rows.
a8425c53 264.RE
3f262d7d 265.IP
20aa445d
BP
266Multiple [\fIcolumn\fR[\fB,\fIcolumn\fR]...] groups may be specified
267as separate arguments, e.g. to apply different reporting parameters to
268each group. Whether multiple groups or only a single group is
269specified, any given column may only be mentioned once on the command
270line.
271.IP
c383f3bf
LS
272\fBconditions\fR is a JSON array of <condition> as defined in RFC 7047 5.1
273with the following change: A condition can be either a 3-element JSON array
b530bfcb 274as described in the RFC or a boolean value.
c383f3bf 275.IP
9167cb52
HZ
276If \fB\-\-detach\fR is used with \fBmonitor\fR, \fBmonitor\-cond\fR or
277\fBmonitor\-cond\-since\fR, then \fBovsdb\-client\fR detaches after it has
278successfully received and printed the initial contents of \fItable\fR.
85226894
AZ
279.IP
280The \fBmonitor\fR command uses RFC 7047 "monitor" method to open a monitor
9167cb52
HZ
281session with the server. The \fBmonitor\-cond\fR and \fBmonitor\-cond\-since\fR
282commandls uses RFC 7047 extension "monitor_cond" and "monitor_cond_since"
283methods. See \fBovsdb\-server\fR(1) for details.
4227b221
BP
284.IP "\fBmonitor\fI \fR[\fIserver\fR] \fR[\fIdatabase\fR] \fBALL\fR"
285Connects to \fIserver\fR and monitors the contents of all tables in
286\fIdatabase\fR. Prints initial values and all kinds of changes to all
287columns in the database. The \fB\-\-detach\fR option causes
288\fBovsdb\-client\fR to detach after it successfully receives and
289prints the initial database contents.
85226894
AZ
290.IP
291The \fBmonitor\fR command uses RFC 7047 "monitor" method to open a monitor
c383f3bf 292session with the server.
4227b221 293.
1b1d2e6d
BP
294.IP "\fBwait\fR \fR[\fIserver\fR] \fIdatabase state\fR"
295Waits for \fIdatabase\fR on \fIserver\fR to enter a desired \fIstate\fR,
296which may be one of:
297.RS
298.IP "\fBadded\fR"
299Waits until a database with the given name has been added to
300\fIserver\fR.
301.IP "\fBconnected\fR"
302Waits until a database with the given name has been added to
303\fIserver\fR. Then, if \fIdatabase\fR is clustered, additionally
304waits until it has joined and connected to its cluster.
305.IP "\fBremoved\fR"
306Waits until \fIdatabase\fR has been removed from the database server.
307This can also be used to wait for a database to complete leaving its
308cluster, because \fBovsdb\-server\fR removes a database at that point.
309.RE
310.IP
311\fIdatabase\fR is mandatory for this command because it is often used
312to check for databases that have not yet been added to the server, so
313that the \fBovsdb\-client\fR semantics of acting on a default database
314do not work.
315.IP
316This command acts on a particular database server, not on a cluster,
317so \fIserver\fR must name a single server, not a comma-delimited list
318of servers.
12b84d50
BP
319.SS "Testing commands"
320These commands are mostly of interest for testing the correctness
9aeba3f4
AZ
321of the OVSDB server.
322.
d0c43b59
JP
323.IP "\fBlock\fR [\fIserver\fR] \fIlock\fR"
324.IQ "\fBsteal\fR [\fIserver\fR] \fIlock\fR"
325.IQ "\fBunlock\fR [\fIserver\fR] \fIlock\fR"
9aeba3f4
AZ
326Connects to \fIserver\fR and issues corresponding RFC 7047 lock operations
327on \fIlock\fR. Prints json reply or subsequent update messages.
328The \fB\-\-detach\fR option causes \fBovsdb\-client\fR to detach after it
329successfully receives and prints the initial reply.
330.IP
331When running with the \fB\-\-detach\fR option, \fBlock\fR, \fBsteal\fR,
332\fBunlock\fR and \fBexit\fR commands can be issued by using
333\fBovs-appctl\fR. \fBexit\fR command causes the \fBovsdb\-client\fR to
334close its \fBovsdb\-server\fR connection before exit.
335The \fBlock\fR, \fBsteal\fR and \fBunlock\fR commands can be used to
336issue additional lock operations over the same \fBovsdb\-server\fR connection. All above commands take a single \fIlock\fR argument, which does not have
337to be the same as the \fIlock\fR that \fBovsdb\-client\fR started with.
338.
d0632593
BP
339.SH OPTIONS
340.SS "Output Formatting Options"
341Much of the output from \fBovsdb\-client\fR is in the form of tables.
342The following options controlling output formatting:
343.
c6a41252 344.ds TD (default)
3a3eb9da 345.so lib/table.man
b87fde85 346.
8f46c9bb 347.IP "\fB\-\-timestamp\fR"
9167cb52
HZ
348For the \fBmonitor\fR, \fBmonitor\-cond\fR and \fBmonitor\-cond\-since\fR
349commands, add a timestamp to each table update. Most output formats add the
350timestamp on a line of its own just above the table. The JSON output format
351puts the timestamp in a member of the top-level JSON object named \fBtime\fR.
8f46c9bb 352.
c55d0b7b
BP
353.IP "\fB\-t\fR"
354.IQ "\fB\-\-timeout=\fIsecs\fR"
355Limits \fBovsdb\-client\fR runtime to approximately \fIsecs\fR
356seconds. If the timeout expires, \fBovsdb\-client\fR will exit with a
357\fBSIGALRM\fR signal.
358.
3f262d7d 359.SS "Daemon Options"
9167cb52
HZ
360The daemon options apply only to the \fBmonitor\fR, \fBmonitor\-cond\fR and
361\fBmonitor\-cond\-since\fR commands. With any other command, they have no
362effect.
58f870d0 363.ds DD
3f262d7d
BP
364.so lib/daemon.man
365.SS "Logging Options"
366.so lib/vlog.man
ac300505 367.SS "Public Key Infrastructure Options"
9467fe62
BP
368.so lib/ssl.man
369.so lib/ssl-bootstrap.man
e18a1d08
ER
370.SS "SSL Connection Options"
371.so lib/ssl-connect.man
d0632593
BP
372.SS "Other Options"
373.so lib/common.man
374.SH "SEE ALSO"
375.
12b84d50 376\fBovsdb\fR(7),
d0632593 377\fBovsdb\-server\fR(1),
12b84d50 378\fBovsdb\-client\fR(1).