Tested against commit b2aaf2b3f5c8d758825028dacdeadbdd2e50e4a8, with my
earlier reporting fixes patch (0001-Fixed-issues-when-reporting-on-a-set-of-fields-that.patch)
already applied. Please commit this patch AFTER committing the
previous patch.
So, now one can issue XMLRPC calls to retrieve reports from remote
cobbler servers.
E.g. client usage:
---
import xmlrpclib
remote =
xmlrpclib.ServerProxy("http://<remote_cobbler_server>/cobbler_api",
allow_none=True)
# get a 'cobbler report --what=systems' report (no headers)
report1 = remote.report(True, 'systems', None, 'text', 'all', None)
# get a 'cobbler report --name=hp_003 --format=mediawiki' report (no
headers)
report2 = remote.report(True, None, 'hp_003', 'mediawiki', None)
# get a 'cobbler report --what=distros --format=csv
--fields='name,ks_meta[tree]' report (with headers)
report3 = remote.report(True, 'distros', None, 'csv',
'name,ks_meta[tree]', False)
---
The 'function prototype' for the remote function (from remote.py) is
the following:
###
def
report(self,api=True,what=None,name=None,type=None,fields=None,noheaders=None,**rest):
###
I haven't figured out how to get xmlrpclib to recognize the positional
parameters -- hence the odd client examples (all args are listed and
are listed in order). Perhaps one of you might be able to figure this
out, since it's annoying to have to remember the prototype every time
you want to invoke an XMLRPC reporting call.
Cheers,
- A.