From d91267d852bef4ca60d313c4a69fa2e2dc5fd080 Mon Sep 17 00:00:00 2001 From: Adam Gandelman Date: Fri, 8 Mar 2013 12:01:58 -0800 Subject: [PATCH] Use or create /etc/rabbitmq/rabbitmq-env.conf for setting node name. The .d directory is not available on newer package versions, update or create rabbitmq-env.conf instead when setting node name. --- hooks/rabbit_utils.py | 26 ++++++++++++++++++++++++++ hooks/rabbitmq-server-relations.py | 1 + revision | 2 +- 3 files changed, 28 insertions(+), 1 deletion(-) diff --git a/hooks/rabbit_utils.py b/hooks/rabbit_utils.py index 575fbbb3..1949bcc9 100644 --- a/hooks/rabbit_utils.py +++ b/hooks/rabbit_utils.py @@ -95,3 +95,29 @@ def cluster_with(host): subprocess.check_call(cmd) cmd = [RABBITMQ_CTL, 'start_app'] subprocess.check_call(cmd) + + +def set_node_name(name): + # update or append RABBITMQ_NODENAME to environment config. + # rabbitmq.conf.d is not present on all releases, so use or create + # rabbitmq-env.conf instead. + conf = '/etc/rabbitmq/rabbitmq-env.conf' + + if not os.path.isfile(conf): + utils.juju_log('INFO', '%s does not exist, creating.' % conf) + with open(conf, 'wb') as out: + out.write('RABBITMQ_NODENAME=%s\n' % name) + return + + out = [] + f = False + for line in open(conf).readlines(): + if line.strip().startswith('RABBITMQ_NODENAME'): + f = True + line = 'RABBITMQ_NODENAME=%s\n' % name + out.append(line) + if not f: + out.append('RABBITMQ_NODENAME=%s\n' % name) + utils.juju_log('INFO', 'Updating %s, RABBITMQ_NODENAME=%s' % (conf, name)) + with open(conf, 'wb') as conf: + conf.write(''.join(out)) diff --git a/hooks/rabbitmq-server-relations.py b/hooks/rabbitmq-server-relations.py index e028c6c2..0735e22e 100755 --- a/hooks/rabbitmq-server-relations.py +++ b/hooks/rabbitmq-server-relations.py @@ -130,6 +130,7 @@ def ha_joined(): # rabbit node-name need to match on all nodes. utils.juju_log('INFO','Stopping rabbitmq-server.') utils.stop('rabbitmq-server') + rabbit.set_node_name(SERVICE_NAME) with open('/etc/rabbitmq/rabbitmq.conf.d/node-name', 'wb') as out: out.write('RABBITMQ_NODENAME=%s@localhost' % SERVICE_NAME) diff --git a/revision b/revision index 987e7ca9..8e14edce 100644 --- a/revision +++ b/revision @@ -1 +1 @@ -77 +78