[ovs-dev] [PATCH v2 15/21] ovn-util: Add common functions for the default NB and SB databases.
Ben Pfaff
blp at ovn.org
Mon Aug 8 16:14:26 UTC 2016
Signed-off-by: Ben Pfaff <blp at ovn.org>
---
ovn/controller-vtep/ovn-controller-vtep.c | 5 +++--
ovn/lib/ovn-util.c | 27 +++++++++++++++++++++++++
ovn/lib/ovn-util.h | 4 ++++
ovn/northd/ovn-northd.c | 27 -------------------------
ovn/utilities/ovn-nbctl.c | 20 ++++---------------
ovn/utilities/ovn-sbctl.c | 33 ++++++++++---------------------
6 files changed, 48 insertions(+), 68 deletions(-)
diff --git a/ovn/controller-vtep/ovn-controller-vtep.c b/ovn/controller-vtep/ovn-controller-vtep.c
index 36005ed..baee789 100644
--- a/ovn/controller-vtep/ovn-controller-vtep.c
+++ b/ovn/controller-vtep/ovn-controller-vtep.c
@@ -1,4 +1,4 @@
-/* Copyright (c) 2015 Nicira, Inc.
+/* Copyright (c) 2015, 2016 Nicira, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -35,6 +35,7 @@
#include "openvswitch/vconn.h"
#include "openvswitch/vlog.h"
#include "ovn/lib/ovn-sb-idl.h"
+#include "ovn/lib/ovn-util.h"
#include "vtep/vtep-idl.h"
#include "binding.h"
@@ -231,7 +232,7 @@ parse_options(int argc, char *argv[])
free(short_options);
if (!ovnsb_remote) {
- ovnsb_remote = xstrdup(default_db());
+ ovnsb_remote = xstrdup(default_sb_db());
}
if (!vtep_remote) {
diff --git a/ovn/lib/ovn-util.c b/ovn/lib/ovn-util.c
index b51cb4a..ff0d204 100644
--- a/ovn/lib/ovn-util.c
+++ b/ovn/lib/ovn-util.c
@@ -14,6 +14,7 @@
#include <config.h>
#include "ovn-util.h"
+#include "dirs.h"
#include "openvswitch/vlog.h"
#include "ovn/lib/ovn-nb-idl.h"
@@ -201,3 +202,29 @@ alloc_nat_zone_key(const char *key, const char *type)
{
return xasprintf("%s_%s", key, type);
}
+
+const char *
+default_nb_db(void)
+{
+ static char *def;
+ if (!def) {
+ def = getenv("OVN_NB_DB");
+ if (!def) {
+ def = xasprintf("unix:%s/ovnnb_db.sock", ovs_rundir());
+ }
+ }
+ return def;
+}
+
+const char *
+default_sb_db(void)
+{
+ static char *def;
+ if (!def) {
+ def = getenv("OVN_SB_DB");
+ if (!def) {
+ def = xasprintf("unix:%s/ovnsb_db.sock", ovs_rundir());
+ }
+ }
+ return def;
+}
diff --git a/ovn/lib/ovn-util.h b/ovn/lib/ovn-util.h
index 97d9483..c2ac471 100644
--- a/ovn/lib/ovn-util.h
+++ b/ovn/lib/ovn-util.h
@@ -59,4 +59,8 @@ bool extract_lrp_networks(const struct nbrec_logical_router_port *,
void destroy_lport_addresses(struct lport_addresses *);
char *alloc_nat_zone_key(const char *key, const char *type);
+
+const char *default_nb_db(void);
+const char *default_sb_db(void);
+
#endif
diff --git a/ovn/northd/ovn-northd.c b/ovn/northd/ovn-northd.c
index 861f872..292df05 100644
--- a/ovn/northd/ovn-northd.c
+++ b/ovn/northd/ovn-northd.c
@@ -56,9 +56,6 @@ struct northd_context {
static const char *ovnnb_db;
static const char *ovnsb_db;
-static const char *default_nb_db(void);
-static const char *default_sb_db(void);
-
#define MAC_ADDR_PREFIX 0x0A0000000000ULL
#define MAC_ADDR_SPACE 0xffffff
@@ -4012,28 +4009,6 @@ ovnsb_db_run(struct northd_context *ctx, struct ovsdb_idl_loop *sb_loop)
update_northbound_cfg(ctx, sb_loop);
}
-static char *default_nb_db_;
-
-static const char *
-default_nb_db(void)
-{
- if (!default_nb_db_) {
- default_nb_db_ = xasprintf("unix:%s/ovnnb_db.sock", ovs_rundir());
- }
- return default_nb_db_;
-}
-
-static char *default_sb_db_;
-
-static const char *
-default_sb_db(void)
-{
- if (!default_sb_db_) {
- default_sb_db_ = xasprintf("unix:%s/ovnsb_db.sock", ovs_rundir());
- }
- return default_sb_db_;
-}
-
static void
parse_options(int argc OVS_UNUSED, char *argv[] OVS_UNUSED)
{
@@ -4233,8 +4208,6 @@ main(int argc, char *argv[])
ovsdb_idl_loop_destroy(&ovnsb_idl_loop);
service_stop();
- free(default_nb_db_);
- free(default_sb_db_);
exit(res);
}
diff --git a/ovn/utilities/ovn-nbctl.c b/ovn/utilities/ovn-nbctl.c
index 9d5b1df..d6d64ea 100644
--- a/ovn/utilities/ovn-nbctl.c
+++ b/ovn/utilities/ovn-nbctl.c
@@ -25,6 +25,7 @@
#include "fatal-signal.h"
#include "openvswitch/json.h"
#include "ovn/lib/ovn-nb-idl.h"
+#include "ovn/lib/ovn-util.h"
#include "packets.h"
#include "poll-loop.h"
#include "process.h"
@@ -77,7 +78,6 @@ OVS_NO_RETURN static void nbctl_exit(int status);
static void nbctl_cmd_init(void);
OVS_NO_RETURN static void usage(void);
static void parse_options(int argc, char *argv[], struct shash *local_options);
-static const char *nbctl_default_db(void);
static void run_prerequisites(struct ctl_command[], size_t n_commands,
struct ovsdb_idl *);
static bool do_nbctl(const char *args, struct ctl_command *, size_t n,
@@ -153,19 +153,6 @@ main(int argc, char *argv[])
}
}
-static const char *
-nbctl_default_db(void)
-{
- static char *def;
- if (!def) {
- def = getenv("OVN_NB_DB");
- if (!def) {
- def = xasprintf("unix:%s/ovnnb_db.sock", ovs_rundir());
- }
- }
- return def;
-}
-
static void
parse_options(int argc, char *argv[], struct shash *local_options)
{
@@ -310,7 +297,7 @@ parse_options(int argc, char *argv[], struct shash *local_options)
free(short_options);
if (!db) {
- db = nbctl_default_db();
+ db = default_nb_db();
}
for (i = n_global_long_options; options[i].name; i++) {
@@ -424,7 +411,8 @@ Options:\n\
-t, --timeout=SECS wait at most SECS seconds\n\
--dry-run do not commit changes to database\n\
--oneline print exactly one line of output per command\n",
- program_name, program_name, ctl_get_db_cmd_usage(), nbctl_default_db());
+ program_name, program_name, ctl_get_db_cmd_usage(),
+ default_nb_db());
vlog_usage();
printf("\
--no-syslog equivalent to --verbose=nbctl:syslog:warn\n");
diff --git a/ovn/utilities/ovn-sbctl.c b/ovn/utilities/ovn-sbctl.c
index 50c9f17..11d4c52 100644
--- a/ovn/utilities/ovn-sbctl.c
+++ b/ovn/utilities/ovn-sbctl.c
@@ -27,27 +27,27 @@
#include <string.h>
#include <unistd.h>
-#include "db-ctl-base.h"
-#include "dirs.h"
-
#include "command-line.h"
#include "compiler.h"
-#include "openvswitch/dynamic-string.h"
+#include "db-ctl-base.h"
+#include "dirs.h"
#include "fatal-signal.h"
+#include "openvswitch/dynamic-string.h"
#include "openvswitch/json.h"
+#include "openvswitch/shash.h"
+#include "openvswitch/vlog.h"
+#include "ovn/lib/ovn-sb-idl.h"
+#include "ovn/lib/ovn-util.h"
#include "ovsdb-data.h"
#include "ovsdb-idl.h"
#include "poll-loop.h"
#include "process.h"
#include "sset.h"
-#include "openvswitch/shash.h"
#include "stream-ssl.h"
#include "stream.h"
#include "table.h"
#include "timeval.h"
#include "util.h"
-#include "openvswitch/vlog.h"
-#include "ovn/lib/ovn-sb-idl.h"
VLOG_DEFINE_THIS_MODULE(sbctl);
@@ -78,7 +78,6 @@ OVS_NO_RETURN static void sbctl_exit(int status);
static void sbctl_cmd_init(void);
OVS_NO_RETURN static void usage(void);
static void parse_options(int argc, char *argv[], struct shash *local_options);
-static const char *sbctl_default_db(void);
static void run_prerequisites(struct ctl_command[], size_t n_commands,
struct ovsdb_idl *);
static bool do_sbctl(const char *args, struct ctl_command *, size_t n,
@@ -151,19 +150,6 @@ main(int argc, char *argv[])
}
}
-static const char *
-sbctl_default_db(void)
-{
- static char *def;
- if (!def) {
- def = getenv("OVN_SB_DB");
- if (!def) {
- def = xasprintf("unix:%s/ovnsb_db.sock", ovs_rundir());
- }
- }
- return def;
-}
-
static void
parse_options(int argc, char *argv[], struct shash *local_options)
{
@@ -286,7 +272,7 @@ parse_options(int argc, char *argv[], struct shash *local_options)
free(short_options);
if (!db) {
- db = sbctl_default_db();
+ db = default_sb_db();
}
for (i = n_global_long_options; options[i].name; i++) {
@@ -331,7 +317,8 @@ Options:\n\
-t, --timeout=SECS wait at most SECS seconds\n\
--dry-run do not commit changes to database\n\
--oneline print exactly one line of output per command\n",
- program_name, program_name, ctl_get_db_cmd_usage(), sbctl_default_db());
+ program_name, program_name, ctl_get_db_cmd_usage(),
+ default_sb_db());
vlog_usage();
printf("\
--no-syslog equivalent to --verbose=sbctl:syslog:warn\n");
--
2.1.3
More information about the dev
mailing list