From b3f4d1ea3576533e77e6f5435af810d0e7242c94 Mon Sep 17 00:00:00 2001 From: Lance Edgar Date: Wed, 4 Jul 2018 16:39:31 -0500 Subject: [PATCH] Add `ejabberd.get_node_name()` --- rattail_fabric/ejabberd.py | 41 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 rattail_fabric/ejabberd.py diff --git a/rattail_fabric/ejabberd.py b/rattail_fabric/ejabberd.py new file mode 100644 index 0000000..8ed4f7e --- /dev/null +++ b/rattail_fabric/ejabberd.py @@ -0,0 +1,41 @@ +# -*- coding: utf-8; -*- +################################################################################ +# +# Rattail -- Retail Software Framework +# Copyright © 2010-2018 Lance Edgar +# +# This file is part of Rattail. +# +# Rattail is free software: you can redistribute it and/or modify it under the +# terms of the GNU General Public License as published by the Free Software +# Foundation, either version 3 of the License, or (at your option) any later +# version. +# +# Rattail is distributed in the hope that it will be useful, but WITHOUT ANY +# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +# details. +# +# You should have received a copy of the GNU General Public License along with +# Rattail. If not, see . +# +################################################################################ +""" +Fabric library for ejabberd XMPP server +""" + +from __future__ import unicode_literals, absolute_import + +import re + +from fabric.api import sudo + + +def get_node_name(): + """ + Returns the ejabberd node name for the current server. + """ + result = sudo('ejabberdctl status') + match = re.match(r'^The node (\S+@\S+) is started with status: started', result) + if match: + return match.group(1)