diff options
author | Lance Richardson <lrichard@redhat.com> | 2016-10-25 12:38:48 -0400 |
---|---|---|
committer | Ben Pfaff <blp@ovn.org> | 2016-11-01 13:35:45 -0700 |
commit | 9c1a11820e9e660737ce6b1f412684611e095cc2 (patch) | |
tree | db3910d6266d0cfcf01773198598b00bc69fd262 /tests/ovsdb-server.at | |
parent | 2fd72a63aac4aea6384bc6f89925eac4752521bc (diff) | |
download | openvswitch-9c1a11820e9e660737ce6b1f412684611e095cc2.tar.gz |
ovsdb-server: Implement read-only remote connection type.
Adds a new "read_only" column for remote connections.
Operations that would alter the state of the database are not
permitted on connections for which the "read_only" column is set
to "true".
Signed-off-by: Lance Richardson <lrichard@redhat.com>
Signed-off-by: Ben Pfaff <blp@ovn.org>
Diffstat (limited to 'tests/ovsdb-server.at')
-rw-r--r-- | tests/ovsdb-server.at | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/tests/ovsdb-server.at b/tests/ovsdb-server.at index d04941bc6..ae1aab8b5 100644 --- a/tests/ovsdb-server.at +++ b/tests/ovsdb-server.at @@ -1367,3 +1367,70 @@ AT_CHECK([diff dump1 dump2]) dnl OVSDB_SERVER_SHUTDOWN dnl OVSDB_SERVER_SHUTDOWN2 AT_CLEANUP + +AT_SETUP([ovsdb-server/read-only db:ptcp connection]) +AT_KEYWORDS([ovsdb server read-only]) +AT_DATA([schema], + [[{"name": "mydb", + "tables": { + "Root": { + "columns": { + "managers": { + "type": { + "key": {"type": "uuid", "refTable": "Manager"}, + "min": 0, + "max": "unlimited"}}}}, + "Manager": { + "columns": { + "target": { + "type": "string"}, + "read_only": { + "type": { + "key": "boolean", + "min": 0, + "max": 1}}, + "is_connected": { + "type": { + "key": "boolean", + "min": 0, + "max": 1}}}}, + "ordinals": { + "columns": { + "number": {"type": "integer"}, + "name": {"type": "string"}}, + "indexes": [["number"]]} + }, + "version": "5.1.3", + "cksum": "12345678 9" +} +]]) +AT_CHECK([ovsdb-tool create db schema], [0], [ignore], [ignore]) +AT_CHECK( + [[ovsdb-tool transact db \ + '["mydb", + {"op": "insert", + "table": "Root", + "row": { + "managers": ["set", [["named-uuid", "x"]]]}}, + {"op": "insert", + "table": "Manager", + "uuid-name": "x", + "row": {"target": "ptcp:0:127.0.0.1", + "read_only": true}}]']], [0], [ignore], [ignore]) + +AT_CHECK([ovsdb-server --log-file --detach --no-chdir --pidfile --remote=db:mydb,Root,managers db], [0], [ignore], [ignore]) +PARSE_LISTENING_PORT([ovsdb-server.log], [TCP_PORT]) +AT_CHECK([ovsdb-client get-schema-version tcp:127.0.0.1:$TCP_PORT mydb], [0], [5.1.3 +]) + +AT_CHECK([ovsdb-client transact tcp:127.0.0.1:$TCP_PORT \ + ['["mydb", + {"op": "insert", + "table": "ordinals", + "row": {"name": "two", "number": '2'}} + ]']], [0], [stdout], [ignore]) +cat stdout >> output +AT_CHECK([${PERL} $srcdir/uuidfilt.pl output], [0], [[[{"details":"insert operation not allowed when database server is in read only mode","error":"not allowed"}]] +], [ignore]) +OVSDB_SERVER_SHUTDOWN +AT_CLEANUP |