[ovs-dev] [PATCH 2/2] ovn: Get hostname from ovs external-ids.
Russell Bryant
russell at ovn.org
Fri Mar 25 00:40:50 UTC 2016
A previous commit updated ovs-ctl to store the system's hostname as an
external-id in the Open_vSwitch table by default. Make ovn-controller
read this by default and fall back to gethostname() only if needed.
Suggested-by: Justin Pettit <jpettit at ovn.org>
Suggested-at: http://openvswitch.org/pipermail/dev/2016-March/068225.html
Signed-off-by: Russell Bryant <russell at ovn.org>
---
ovn/controller/chassis.c | 16 ++++++++++------
1 file changed, 10 insertions(+), 6 deletions(-)
diff --git a/ovn/controller/chassis.c b/ovn/controller/chassis.c
index 4109b0c..52c9993 100644
--- a/ovn/controller/chassis.c
+++ b/ovn/controller/chassis.c
@@ -62,13 +62,10 @@ chassis_run(struct controller_ctx *ctx, const char *chassis_id)
return;
}
- const struct sbrec_chassis *chassis_rec;
const struct ovsrec_open_vswitch *cfg;
const char *encap_type, *encap_ip;
static bool inited = false;
- chassis_rec = get_chassis(ctx->ovnsb_idl, chassis_id);
-
cfg = ovsrec_open_vswitch_first(ctx->ovs_idl);
if (!cfg) {
VLOG_INFO("No Open_vSwitch row defined.");
@@ -96,11 +93,18 @@ chassis_run(struct controller_ctx *ctx, const char *chassis_id)
}
free(tokstr);
- char hostname[HOST_NAME_MAX + 1];
- if (gethostname(hostname, sizeof hostname)) {
- hostname[0] = '\0';
+ const char *hostname = smap_get(&cfg->external_ids, "hostname");
+ char hostname_[HOST_NAME_MAX + 1];
+ if (!hostname || !hostname[0]) {
+ if (gethostname(hostname_, sizeof hostname_)) {
+ hostname_[0] = '\0';
+ }
+ hostname = hostname_;
}
+ const struct sbrec_chassis *chassis_rec
+ = get_chassis(ctx->ovnsb_idl, chassis_id);
+
if (chassis_rec) {
if (strcmp(hostname, chassis_rec->hostname)) {
sbrec_chassis_set_hostname(chassis_rec, hostname);
--
2.5.5
More information about the dev
mailing list