A high-level library to access programaticaly Zimbra SOAP API features
Project description
ZimSOAP : a programmatic python interface to zimbra
===================================================
ZimSOAP allows to access the [SOAP Zimbra API] through a programmatic,
data-type-aware interface high-level. It also handle authentification,
sessions, pre-authentication and delegated authentication.
Not all methods are covered, but you're welcome to wrap the ones you need and
pull-request !
If you are looking at a lower-level lib, you better look to [python-zimbra]
Allows accessing zimbraAdmin and zimbraAccount SOAP APIs
- handle authentification
- handle pre-authentification admin->admin and admin->Account
- presents the request results as nice Python objects
- all requests are tested with 8.0.4 and 8.0.5
[SOAP Zimbra API]:
http://files.zimbra.com/docs/soap_api/8.0.4/soap-docs-804/api-reference/index.html
[python-zimbra]:https://github.com/Zimbra-Community/python-zimbra/
Installing
----------
Fullfill requirements, then simply :
# ./setup.py install
Requirements
------------
python-zimbra (dev version)
Hint:
$ git clone https://github.com/Zimbra-Community/python-zimbra.git
$ cd python-zimbra
$ sudo ./setup.py install
API
---
API is accessible through the ZimbraAdminClient() method. Example :
zc = ZimbraAdminClient('myserver.example.tld')
zc.login('username@domain.tld', 'mypassword')
print("Domains on that zimbra instance :")
for domain in zc.get_all_domains():
# Each domain is a zobject.Domain instance
print(' - %s' % domain.name)
You can also access raw SOAP methods:
zc = ZimbraAdminClient()
zc.login('username@domain.tld', 'mypassword')
xml_response = self.zc.GetAllDomainsRequest()
If you want up-to-date code example, look at unit tests...
Testing
-------
### Setting your environment for tests ###
#### Dependencies ####
The first time you want to run tests, you have to grab submodules:
$ git submodule update --init
The SOAP API tests are ran against a reference machine, so you have to grab,
provision and run it, thanks to vagrant, it's pretty straightforward (but a bit
of download time the first time) :
$ sudo apt-get install vagrant
$ cd zimsoap/tests/machines/
$ vagrant up 8.0.5
$ vagrant provision 8.0.5
You have several zimbra versions available as VMs for testing (see vagrant
status).
*Warning*: the test VM requires 2GB RAM to function properly.
### Testing ###
Make sure your vagrant vm is running `vagrant status`.
Code is covered by unit tests, you can run them (only Python needed):
$ python -m unittest discover
To run only some tests, for example :
$ python -m unittest test.test_zobjects
$ python -m unittest test.test_zobjects.ZObjectTests
$ python -m unittest test.test_zobjects.ZObjectTests.testDomainSelector
===================================================
ZimSOAP allows to access the [SOAP Zimbra API] through a programmatic,
data-type-aware interface high-level. It also handle authentification,
sessions, pre-authentication and delegated authentication.
Not all methods are covered, but you're welcome to wrap the ones you need and
pull-request !
If you are looking at a lower-level lib, you better look to [python-zimbra]
Allows accessing zimbraAdmin and zimbraAccount SOAP APIs
- handle authentification
- handle pre-authentification admin->admin and admin->Account
- presents the request results as nice Python objects
- all requests are tested with 8.0.4 and 8.0.5
[SOAP Zimbra API]:
http://files.zimbra.com/docs/soap_api/8.0.4/soap-docs-804/api-reference/index.html
[python-zimbra]:https://github.com/Zimbra-Community/python-zimbra/
Installing
----------
Fullfill requirements, then simply :
# ./setup.py install
Requirements
------------
python-zimbra (dev version)
Hint:
$ git clone https://github.com/Zimbra-Community/python-zimbra.git
$ cd python-zimbra
$ sudo ./setup.py install
API
---
API is accessible through the ZimbraAdminClient() method. Example :
zc = ZimbraAdminClient('myserver.example.tld')
zc.login('username@domain.tld', 'mypassword')
print("Domains on that zimbra instance :")
for domain in zc.get_all_domains():
# Each domain is a zobject.Domain instance
print(' - %s' % domain.name)
You can also access raw SOAP methods:
zc = ZimbraAdminClient()
zc.login('username@domain.tld', 'mypassword')
xml_response = self.zc.GetAllDomainsRequest()
If you want up-to-date code example, look at unit tests...
Testing
-------
### Setting your environment for tests ###
#### Dependencies ####
The first time you want to run tests, you have to grab submodules:
$ git submodule update --init
The SOAP API tests are ran against a reference machine, so you have to grab,
provision and run it, thanks to vagrant, it's pretty straightforward (but a bit
of download time the first time) :
$ sudo apt-get install vagrant
$ cd zimsoap/tests/machines/
$ vagrant up 8.0.5
$ vagrant provision 8.0.5
You have several zimbra versions available as VMs for testing (see vagrant
status).
*Warning*: the test VM requires 2GB RAM to function properly.
### Testing ###
Make sure your vagrant vm is running `vagrant status`.
Code is covered by unit tests, you can run them (only Python needed):
$ python -m unittest discover
To run only some tests, for example :
$ python -m unittest test.test_zobjects
$ python -m unittest test.test_zobjects.ZObjectTests
$ python -m unittest test.test_zobjects.ZObjectTests.testDomainSelector
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
zimsoap-0.2.2-git-d246b5d.tar.gz
(12.8 kB
view details)
File details
Details for the file zimsoap-0.2.2-git-d246b5d.tar.gz
.
File metadata
- Download URL: zimsoap-0.2.2-git-d246b5d.tar.gz
- Upload date:
- Size: 12.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9ab9b6104d4b8b6d19156ca1714edf0ee75a4ad16ca505ba4b528fac4456ceb9 |
|
MD5 | f6b4d7d2925edf3f9b1938cddfbb37e8 |
|
BLAKE2b-256 | c5814bb58919b89945a2f236c7a84ef804ef8a7e2f6aeff3256fadab3d718735 |