Skip to main content

Python client for Ejabberd XML-RPC Administration API

Project description

README

ejabberdctl.py provides Python client for Ejabberd XML-RPC Administration API.

Installation

pip install ejabberdctl.py
git clone https://gitlab.com/markuz/ejabberdctl.py.git ejabberdctlpy
cd ejabberdctlpy
python setup.py install

Usage

Simple example which displays Ejabberd status (assuming that XML-RPC runs on 127.0.0.1 and port 4560):

from ejabberdctl import ejabberdctl

host = 'example.com'
username = 'admin'
password = 'admin'

ejabberdctl = ejabberdctl(host, username, password)
print ejabberdctl.status()

The same example with custom setting of XML-RPC host:

from ejabberdctl import ejabberdctl

host = 'example.com'
username = 'admin'
password = 'admin'

ejabberdctl = ejabberdctl(host, username, password,
                          protocol='https', server='example.com', port=4560,
                          admin=True, verbose=True)
print ejabberdctl.status()

Host vs Server

host is the domain served by Ejabberd (ie. one of your hosts defined in ejabberd.yml).

server is the server IP where Ejabberd runs the XML-RPC module. Typically it is configured to run on 127.0.0.1 (localhost) on port 4560.

Tests

from ejabberdctl.tests import ejabberdctl_tests

SERVER = 'example.com'
USERNAME = 'admin'
PASSWORD = 'admin'

tests = ejabberdctl_tests(SERVER, USERNAME, PASSWORD)
tests.run_all()

Coverage

Number of Ejabberd XML-RPC Administration API commands in ejabberdctl.py:

egrep "def " ejabberdctl.py|grep -v "def __init__\|def ctl"|wc -l
126

Implementation

Number of implemented commands:

egrep "def " ejabberdctl.py|grep -v "def __init__\|def ctl\|TODO"|wc -l
72

Number of commands to implement:

egrep "def " ejabberdctl.py|grep -v "def __init__\|def ctl"|grep TODO|wc -l
54

Tests

Number of tests in the testing suite:

egrep "def " tests.py|grep -v "def __init__\|def run_all\|TODO"|wc -l
31

Number of tests to implement:

egrep "def " tests.py|grep -v "def __init__\|def run_all"|grep TODO|wc -l
95

Contributing

If you wish to help out with the project, please see todo.txt for a list of tasks that need doing.


Changelog

v0.2

  • changed ejabberdctl.py constructor - host is now server and server is now host ie. the terminology is aligned with what those inputs mean. Also see README; Host vs Server information.

v0.1

  • initial version

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Filename, size & hash SHA256 hash help File type Python version Upload date
ejabberdctl.py-0.2.tar.gz (11.7 kB) Copy SHA256 hash SHA256 Source None

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page