Signal xmpp module before and after hostname is changed.

This commit is contained in:
James Valleroy 2014-12-03 22:10:24 -05:00 committed by Sunil Mohan Adapa
parent 10b234921b
commit 298938de73
3 changed files with 39 additions and 4 deletions

View File

@ -31,6 +31,7 @@ import socket
from plinth import actions
from plinth import cfg
from plinth.signals import pre_hostname_change, post_hostname_change
LOGGER = logging.getLogger(__name__)
@ -160,9 +161,13 @@ def set_hostname(hostname):
# valid_hostname check, convert to ASCII.
hostname = str(hostname)
pre_hostname_change.send_robust(sender='config',
old_hostname=old_hostname,
new_hostname=hostname)
LOGGER.info('Changing hostname to - %s', hostname)
actions.superuser_run('xmpp-pre-hostname-change')
actions.superuser_run('hostname-change', hostname)
actions.superuser_run('xmpp', 'change-hostname',
'--old-hostname', old_hostname,
'--new-hostname', hostname, async=True)
post_hostname_change.send_robust(sender='config',
old_hostname=old_hostname,
new_hostname=hostname)

View File

@ -26,6 +26,7 @@ import logging
from plinth import actions
from plinth import cfg
from plinth import service
from plinth.signals import pre_hostname_change, post_hostname_change
LOGGER = logging.getLogger(__name__)
@ -53,6 +54,9 @@ def init():
'xmpp-bosh', _('Chat Server - web interface'), is_external=True,
enabled=True)
pre_hostname_change.connect(on_pre_hostname_change)
post_hostname_change.connect(on_post_hostname_change)
@login_required
def index(request):
@ -178,3 +182,27 @@ def _register_user(request, data):
messages.error(request,
_('Failed to register account for %s: %s') %
(data['username'], output))
def on_pre_hostname_change(sender, old_hostname, new_hostname, **kwargs):
"""
Backup ejabberd database before hostname is changed.
"""
del sender # Unused
del old_hostname # Unused
del new_hostname # Unused
del kwargs # Unused
actions.superuser_run('xmpp-pre-hostname-change')
def on_post_hostname_change(sender, old_hostname, new_hostname, **kwargs):
"""
Update ejabberd and jwchat config after hostname is changed.
"""
del sender # Unused
del kwargs # Unused
actions.superuser_run('xmpp', 'change-hostname',
'--old-hostname', old_hostname,
'--new-hostname', hostname, async=True)

View File

@ -25,3 +25,5 @@ from django.dispatch import Signal
service_enabled = Signal(providing_args=['service_id', 'enabled'])
pre_module_loading = Signal()
post_module_loading = Signal()
pre_hostname_change = Signal(providing_args=['old_hostname', 'new_hostname'])
post_hostname_change = Signal(providing_args=['old_hostname', 'new_hostname'])