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.

Source Distribution

ejabberdctl.py-0.2.tar.gz (11.7 kB view details)

Uploaded Source

File details

Details for the file ejabberdctl.py-0.2.tar.gz.

File metadata

File hashes

Hashes for ejabberdctl.py-0.2.tar.gz
Algorithm Hash digest
SHA256 026020a3f4cc61807667d515168c9e511f094be02ca8c8b108646130e3bc6d4e
MD5 8352482b18d7b84d05fc76936b92c413
BLAKE2b-256 213e44a2fa00dcd60527851ef53277aaee41bcc6b903fbcd5c1c4e68eacdb46c

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page