mirror of
https://github.com/openvswitch/ovs
synced 2025-09-01 06:45:17 +00:00
db-ctl-base: group static functions together
This file follows a convention that all static functions are grouped towards the beginning, ahead of public functions. Re-arrange the code to confirm to this convention. No functional changes. Signed-off-by: Andy Zhou <azhou@nicira.com> Acked-by: Alex Wang <alexw@nicira.com>
This commit is contained in:
@@ -988,6 +988,35 @@ cmd_list(struct ctl_context *ctx)
|
|||||||
free(columns);
|
free(columns);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Finds and returns the "struct ctl_table_class *" with 'table_name' by
|
||||||
|
* searching the 'tables'. */
|
||||||
|
static const struct ctl_table_class *
|
||||||
|
get_table(const char *table_name)
|
||||||
|
{
|
||||||
|
const struct ctl_table_class *table;
|
||||||
|
const struct ctl_table_class *best_match = NULL;
|
||||||
|
unsigned int best_score = 0;
|
||||||
|
|
||||||
|
for (table = tables; table->class; table++) {
|
||||||
|
unsigned int score = score_partial_match(table->class->name,
|
||||||
|
table_name);
|
||||||
|
if (score > best_score) {
|
||||||
|
best_match = table;
|
||||||
|
best_score = score;
|
||||||
|
} else if (score == best_score) {
|
||||||
|
best_match = NULL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (best_match) {
|
||||||
|
return best_match;
|
||||||
|
} else if (best_score) {
|
||||||
|
ctl_fatal("multiple table names match \"%s\"", table_name);
|
||||||
|
} else {
|
||||||
|
ctl_fatal("unknown table \"%s\"", table_name);
|
||||||
|
}
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
pre_cmd_find(struct ctl_context *ctx)
|
pre_cmd_find(struct ctl_context *ctx)
|
||||||
{
|
{
|
||||||
@@ -1034,6 +1063,60 @@ cmd_find(struct ctl_context *ctx)
|
|||||||
free(columns);
|
free(columns);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Sets the column of 'row' in 'table'. */
|
||||||
|
static void
|
||||||
|
set_column(const struct ctl_table_class *table,
|
||||||
|
const struct ovsdb_idl_row *row, const char *arg,
|
||||||
|
struct ovsdb_symbol_table *symtab)
|
||||||
|
{
|
||||||
|
const struct ovsdb_idl_column *column;
|
||||||
|
char *key_string, *value_string;
|
||||||
|
char *error;
|
||||||
|
|
||||||
|
error = parse_column_key_value(arg, table, &column, &key_string,
|
||||||
|
NULL, NULL, 0, &value_string);
|
||||||
|
die_if_error(error);
|
||||||
|
if (!value_string) {
|
||||||
|
ctl_fatal("%s: missing value", arg);
|
||||||
|
}
|
||||||
|
check_mutable(row, column);
|
||||||
|
|
||||||
|
if (key_string) {
|
||||||
|
union ovsdb_atom key, value;
|
||||||
|
struct ovsdb_datum datum;
|
||||||
|
|
||||||
|
if (column->type.value.type == OVSDB_TYPE_VOID) {
|
||||||
|
ctl_fatal("cannot specify key to set for non-map column %s",
|
||||||
|
column->name);
|
||||||
|
}
|
||||||
|
|
||||||
|
die_if_error(ovsdb_atom_from_string(&key, &column->type.key,
|
||||||
|
key_string, symtab));
|
||||||
|
die_if_error(ovsdb_atom_from_string(&value, &column->type.value,
|
||||||
|
value_string, symtab));
|
||||||
|
|
||||||
|
ovsdb_datum_init_empty(&datum);
|
||||||
|
ovsdb_datum_add_unsafe(&datum, &key, &value, &column->type);
|
||||||
|
|
||||||
|
ovsdb_atom_destroy(&key, column->type.key.type);
|
||||||
|
ovsdb_atom_destroy(&value, column->type.value.type);
|
||||||
|
|
||||||
|
ovsdb_datum_union(&datum, ovsdb_idl_read(row, column),
|
||||||
|
&column->type, false);
|
||||||
|
ovsdb_idl_txn_verify(row, column);
|
||||||
|
ovsdb_idl_txn_write(row, column, &datum);
|
||||||
|
} else {
|
||||||
|
struct ovsdb_datum datum;
|
||||||
|
|
||||||
|
die_if_error(ovsdb_datum_from_string(&datum, &column->type,
|
||||||
|
value_string, symtab));
|
||||||
|
ovsdb_idl_txn_write(row, column, &datum);
|
||||||
|
}
|
||||||
|
|
||||||
|
free(key_string);
|
||||||
|
free(value_string);
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
pre_cmd_set(struct ctl_context *ctx)
|
pre_cmd_set(struct ctl_context *ctx)
|
||||||
{
|
{
|
||||||
@@ -1998,89 +2081,6 @@ ctl_context_done(struct ctl_context *ctx,
|
|||||||
invalidate_cache(ctx);
|
invalidate_cache(ctx);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Finds and returns the "struct ctl_table_class *" with 'table_name' by
|
|
||||||
* searching the 'tables'. */
|
|
||||||
static const struct ctl_table_class *
|
|
||||||
get_table(const char *table_name)
|
|
||||||
{
|
|
||||||
const struct ctl_table_class *table;
|
|
||||||
const struct ctl_table_class *best_match = NULL;
|
|
||||||
unsigned int best_score = 0;
|
|
||||||
|
|
||||||
for (table = tables; table->class; table++) {
|
|
||||||
unsigned int score = score_partial_match(table->class->name,
|
|
||||||
table_name);
|
|
||||||
if (score > best_score) {
|
|
||||||
best_match = table;
|
|
||||||
best_score = score;
|
|
||||||
} else if (score == best_score) {
|
|
||||||
best_match = NULL;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (best_match) {
|
|
||||||
return best_match;
|
|
||||||
} else if (best_score) {
|
|
||||||
ctl_fatal("multiple table names match \"%s\"", table_name);
|
|
||||||
} else {
|
|
||||||
ctl_fatal("unknown table \"%s\"", table_name);
|
|
||||||
}
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Sets the column of 'row' in 'table'. */
|
|
||||||
static void
|
|
||||||
set_column(const struct ctl_table_class *table,
|
|
||||||
const struct ovsdb_idl_row *row, const char *arg,
|
|
||||||
struct ovsdb_symbol_table *symtab)
|
|
||||||
{
|
|
||||||
const struct ovsdb_idl_column *column;
|
|
||||||
char *key_string, *value_string;
|
|
||||||
char *error;
|
|
||||||
|
|
||||||
error = parse_column_key_value(arg, table, &column, &key_string,
|
|
||||||
NULL, NULL, 0, &value_string);
|
|
||||||
die_if_error(error);
|
|
||||||
if (!value_string) {
|
|
||||||
ctl_fatal("%s: missing value", arg);
|
|
||||||
}
|
|
||||||
check_mutable(row, column);
|
|
||||||
|
|
||||||
if (key_string) {
|
|
||||||
union ovsdb_atom key, value;
|
|
||||||
struct ovsdb_datum datum;
|
|
||||||
|
|
||||||
if (column->type.value.type == OVSDB_TYPE_VOID) {
|
|
||||||
ctl_fatal("cannot specify key to set for non-map column %s",
|
|
||||||
column->name);
|
|
||||||
}
|
|
||||||
|
|
||||||
die_if_error(ovsdb_atom_from_string(&key, &column->type.key,
|
|
||||||
key_string, symtab));
|
|
||||||
die_if_error(ovsdb_atom_from_string(&value, &column->type.value,
|
|
||||||
value_string, symtab));
|
|
||||||
|
|
||||||
ovsdb_datum_init_empty(&datum);
|
|
||||||
ovsdb_datum_add_unsafe(&datum, &key, &value, &column->type);
|
|
||||||
|
|
||||||
ovsdb_atom_destroy(&key, column->type.key.type);
|
|
||||||
ovsdb_atom_destroy(&value, column->type.value.type);
|
|
||||||
|
|
||||||
ovsdb_datum_union(&datum, ovsdb_idl_read(row, column),
|
|
||||||
&column->type, false);
|
|
||||||
ovsdb_idl_txn_verify(row, column);
|
|
||||||
ovsdb_idl_txn_write(row, column, &datum);
|
|
||||||
} else {
|
|
||||||
struct ovsdb_datum datum;
|
|
||||||
|
|
||||||
die_if_error(ovsdb_datum_from_string(&datum, &column->type,
|
|
||||||
value_string, symtab));
|
|
||||||
ovsdb_idl_txn_write(row, column, &datum);
|
|
||||||
}
|
|
||||||
|
|
||||||
free(key_string);
|
|
||||||
free(value_string);
|
|
||||||
}
|
|
||||||
|
|
||||||
void ctl_set_column(const char *table_name,
|
void ctl_set_column(const char *table_name,
|
||||||
const struct ovsdb_idl_row *row, const char *arg,
|
const struct ovsdb_idl_row *row, const char *arg,
|
||||||
struct ovsdb_symbol_table *symtab)
|
struct ovsdb_symbol_table *symtab)
|
||||||
|
Reference in New Issue
Block a user