[ovs-dev] [PATCH 2/2] ovn-southbound: implement read-only connection support
Ben Pfaff
blp at ovn.org
Tue Nov 1 21:01:52 UTC 2016
On Tue, Oct 25, 2016 at 04:31:15PM -0400, Lance Richardson wrote:
> > From: "Lance Richardson" <lrichard at redhat.com>
> > To: dev at openvswitch.org
> > Sent: Tuesday, October 25, 2016 12:38:49 PM
> > Subject: [ovs-dev] [PATCH 2/2] ovn-southbound: implement read-only connection support
> >
> > Add a connection table to the southbound db schema, similar
> > to the Open_vSwitch "Manager" table.
> >
> > Add tests for pssl: and ptcp: read-only connection types.
> >
> > Add support to ovn-sbctl for listing the SB Connection table.
> >
> > Potential future work:
> > - Test cases for other connection types (punix, ssl, tcp, unix).
> > - SSL configuration table for southbound db.
> > - Connection table for NB schema.
> >
> > Signed-off-by: Lance Richardson <lrichard at redhat.com>
> > ---
>
> Also "potential future work":
> - Add a way to specify a read-only connection as an ovsdb-server
> command-line option.
Thanks.
I noticed that the new column here was named "connection_options",
patterned after the "manager_options" column in the OVS database. That
was an awkward choice in that database but it had to be done because
there was already a column named "managers" and we needed to retain
backward compatibility. For OVN, we don't have such a column so we can
just named it "connections", and I made that change.
I also noticed a few minor ways to improve the documentation.
I folded in the following and applied this to master, thanks again!
--8<--------------------------cut here-------------------------->8--
diff --git a/ovn/ovn-sb.ovsschema b/ovn/ovn-sb.ovsschema
index c143be0..89342fe 100644
--- a/ovn/ovn-sb.ovsschema
+++ b/ovn/ovn-sb.ovsschema
@@ -1,7 +1,7 @@
{
"name": "OVN_Southbound",
- "version": "1.8.0",
- "cksum": "2126446681 9019",
+ "version": "1.9.0",
+ "cksum": "239060528 9012",
"tables": {
"SB_Global": {
"columns": {
@@ -9,7 +9,7 @@
"external_ids": {
"type": {"key": "string", "value": "string",
"min": 0, "max": "unlimited"}},
- "connection_options": {
+ "connections": {
"type": {"key": {"type": "uuid",
"refTable": "Connection"},
"min": 0,
diff --git a/ovn/ovn-sb.xml b/ovn/ovn-sb.xml
index 42f8991..45c473c 100644
--- a/ovn/ovn-sb.xml
+++ b/ovn/ovn-sb.xml
@@ -163,11 +163,11 @@
</column>
</group>
<group title="Connection Options">
- <column name="connection_options">
- Database of client connections to which the Open vSwitch database server
- should connect or on which it should listen, along with options for how these
- connections should be configured. See the <ref table="Connection"/> table
- for more information.
+ <column name="connections">
+ Database clients to which the Open vSwitch database server should
+ connect or on which it should listen, along with options for how these
+ connections should be configured. See the <ref table="Connection"/>
+ table for more information.
</column>
</group>
</table>
@@ -2361,6 +2361,11 @@ tcp.flags = RST;
values must be unique. Duplicate <ref column="target"/> values yield
unspecified results.</p>
</column>
+
+ <column name="read_only">
+ <code>true</code> to restrict these connections to read-only
+ transactions, <code>false</code> to allow them to modify the database.
+ </column>
</group>
<group title="Client Failure Detection and Handling">
@@ -2378,11 +2383,6 @@ tcp.flags = RST;
broken and attempts to reconnect. Default is implementation-specific.
A value of 0 disables inactivity probes.
</column>
-
- <column name="read_only">
- <code>true</code> if this connection is restricted to read-only
- transactions, <code>false</code> otherwise.
- </column>
</group>
<group title="Status">
diff --git a/tests/ovn.at b/tests/ovn.at
index 933f1e6..cb3e7dd 100644
--- a/tests/ovn.at
+++ b/tests/ovn.at
@@ -5475,14 +5475,14 @@ AT_CHECK(
{"op": "insert",
"table": "SB_Global",
"row": {
- "connection_options": ["set", [["named-uuid", "xyz"]]]}},
+ "connections": ["set", [["named-uuid", "xyz"]]]}},
{"op": "insert",
"table": "Connection",
"uuid-name": "xyz",
"row": {"target": "ptcp:0:127.0.0.1",
"read_only": true}}]']], [0], [ignore], [ignore])
-start_daemon ovsdb-server --remote=punix:ovn-sb.sock --remote=db:OVN_Southbound,SB_Global,connection_options ovn-sb.db
+start_daemon ovsdb-server --remote=punix:ovn-sb.sock --remote=db:OVN_Southbound,SB_Global,connections ovn-sb.db
PARSE_LISTENING_PORT([ovsdb-server.log], [TCP_PORT])
@@ -5515,7 +5515,7 @@ AT_CHECK(
{"op": "insert",
"table": "SB_Global",
"row": {
- "connection_options": ["set", [["named-uuid", "xyz"]]]}},
+ "connections": ["set", [["named-uuid", "xyz"]]]}},
{"op": "insert",
"table": "Connection",
"uuid-name": "xyz",
@@ -5523,7 +5523,7 @@ AT_CHECK(
"read_only": true}}]']], [0], [ignore], [ignore])
start_daemon ovsdb-server --remote=punix:ovn-sb.sock \
- --remote=db:OVN_Southbound,SB_Global,connection_options \
+ --remote=db:OVN_Southbound,SB_Global,connections \
--private-key="$PKIDIR/testpki-privkey2.pem" \
--certificate="$PKIDIR/testpki-cert2.pem" \
--ca-cert="$PKIDIR/testpki-cacert.pem" \
More information about the dev
mailing list