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.