[ovs-dev] [ovs-dev, v5] Add read-only option to ovs-dpctl and ovs-ofctl commands.
Ben Pfaff
blp at ovn.org
Tue Aug 16 00:28:18 UTC 2016
On Mon, Aug 15, 2016 at 06:47:29PM +0000, Ryan Moats wrote:
> ovs-dpctl and ovs-ofctl lack a read-only option to prevent
> running of commands that perform read-write operations. Add
> it and the necessary scaffolding to each.
>
> Signed-off-by: Ryan Moats <rmoats at us.ibm.com>
I folded in a few changes, see below, and applied this to master.
--8<--------------------------cut here-------------------------->8--
diff --git a/lib/command-line.c b/lib/command-line.c
index 92ce888..8128331 100644
--- a/lib/command-line.c
+++ b/lib/command-line.c
@@ -87,11 +87,10 @@ ovs_cmdl_print_options(const struct option options[])
ds_destroy(&ds);
}
-/* Whether to commit changes or not. */
-static bool read_only;
-
static void
-_ovs_cmdl_run_command(struct ovs_cmdl_context *ctx, const struct ovs_cmdl_command commands[])
+ovs_cmdl_run_command__(struct ovs_cmdl_context *ctx,
+ const struct ovs_cmdl_command commands[],
+ bool read_only)
{
const struct ovs_cmdl_command *p;
@@ -144,16 +143,14 @@ void
ovs_cmdl_run_command(struct ovs_cmdl_context *ctx,
const struct ovs_cmdl_command commands[])
{
- read_only = false;
- _ovs_cmdl_run_command(ctx, commands);
+ ovs_cmdl_run_command__(ctx, commands, false);
}
void
ovs_cmdl_run_command_read_only(struct ovs_cmdl_context *ctx,
const struct ovs_cmdl_command commands[])
{
- read_only = true;
- _ovs_cmdl_run_command(ctx, commands);
+ ovs_cmdl_run_command__(ctx, commands, true);
}
/* Process title. */
diff --git a/tests/test-ovsdb.c b/tests/test-ovsdb.c
index c123e43..35b70e9 100644
--- a/tests/test-ovsdb.c
+++ b/tests/test-ovsdb.c
@@ -2720,7 +2720,7 @@ static struct ovs_cmdl_command all_commands[] = {
{ "log-io", NULL, 2, INT_MAX, do_log_io, OVS_RO },
{ "default-atoms", NULL, 0, 0, do_default_atoms, OVS_RO },
{ "default-data", NULL, 0, 0, do_default_data, OVS_RO },
- { "diff-data", NULL, 3, INT_MAX, do_diff_data},
+ { "diff-data", NULL, 3, INT_MAX, do_diff_data, OVS_RO },
{ "parse-atomic-type", NULL, 1, 1, do_parse_atomic_type, OVS_RO },
{ "parse-base-type", NULL, 1, 1, do_parse_base_type, OVS_RO },
{ "parse-type", NULL, 1, 1, do_parse_type, OVS_RO },
More information about the dev
mailing list