summaryrefslogtreecommitdiffstats
path: root/ipalib/plugins
diff options
context:
space:
mode:
authorPetr Vobornik <pvoborni@redhat.com>2012-05-30 12:55:08 +0200
committerPetr Vobornik <pvoborni@redhat.com>2012-06-07 11:22:15 +0200
commit88170087e1470fd91b8c8867004070cf883d3828 (patch)
treef4474d501fe7cb862db78190931c1a737748d77f /ipalib/plugins
parente3d171126f7771c5434b05ea241d76adfff38835 (diff)
downloadfreeipa-88170087e1470fd91b8c8867004070cf883d3828.tar.gz
freeipa-88170087e1470fd91b8c8867004070cf883d3828.tar.xz
freeipa-88170087e1470fd91b8c8867004070cf883d3828.zip
Change json serialization to serialize useful data
json_metadata command creates and sends metadata needed by Web UI. It uses __json__ method for serialization of commands, options, objects... . A lot of data sent was useless for Web UI and some usefull information were missing. We * mostly CLI specific option attribues are not send. * attributes evaluated to false or None are not send * options which are send are not got from takes_aptions attribute but by get_options() method. It finally sends usefull option collection for commands part of metadata. In the end the raw amount of data send is aproximately the same. This patch is needed for Web UI to determine which option it can use in which commands. https://fedorahosted.org/freeipa/ticket/2760
Diffstat (limited to 'ipalib/plugins')
-rw-r--r--ipalib/plugins/baseldap.py9
1 files changed, 6 insertions, 3 deletions
diff --git a/ipalib/plugins/baseldap.py b/ipalib/plugins/baseldap.py
index 93852a2dd..b8ef43d47 100644
--- a/ipalib/plugins/baseldap.py
+++ b/ipalib/plugins/baseldap.py
@@ -1091,13 +1091,14 @@ class LDAPCreate(BaseLDAPCommand, crud.Create):
# list of attributes we want exported to JSON
json_friendly_attributes = (
- 'takes_args', 'takes_options',
+ 'takes_args',
)
def __json__(self):
json_dict = dict(
(a, getattr(self, a)) for a in self.json_friendly_attributes
)
+ json_dict['takes_options'] = list(self.get_json_options())
return json_dict
class LDAPQuery(BaseLDAPCommand, crud.PKQuery):
@@ -1115,13 +1116,14 @@ class LDAPQuery(BaseLDAPCommand, crud.PKQuery):
# list of attributes we want exported to JSON
json_friendly_attributes = (
- 'takes_args', 'takes_options',
+ 'takes_args',
)
def __json__(self):
json_dict = dict(
(a, getattr(self, a)) for a in self.json_friendly_attributes
)
+ json_dict['takes_options'] = list(self.get_json_options())
return json_dict
class LDAPMultiQuery(LDAPQuery):
@@ -1894,13 +1896,14 @@ class LDAPSearch(BaseLDAPCommand, crud.Search):
# list of attributes we want exported to JSON
json_friendly_attributes = (
- 'takes_options',
+ 'takes_args',
)
def __json__(self):
json_dict = dict(
(a, getattr(self, a)) for a in self.json_friendly_attributes
)
+ json_dict['takes_options'] = list(self.get_json_options())
return json_dict
class LDAPModReverseMember(LDAPQuery):