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.
This commit is contained in:
Adam Gandelman 2013-03-08 12:01:58 -08:00
parent ae9cb9e2e4
commit d91267d852
3 changed files with 28 additions and 1 deletions

View File

@ -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))

View File

@ -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)

View File

@ -1 +1 @@
77
78