dns metadata

This is a little bit of a copy and paste approach, as the code for__json__
 was copied from baseldap.  Long term, we want to rewrite this plugin as
an extension of baseldap anyway.
This commit is contained in:
Adam Young 2010-10-06 19:03:26 -04:00
parent 1dc0a3ab3e
commit dcc0d76ef9
2 changed files with 27 additions and 5 deletions

View File

@ -187,6 +187,21 @@ class dns(Object):
),
)
default_attributes = _zone_default_attributes
json_friendly_attributes = (
'default_attributes', 'label', 'name', 'takes_params' )
def __json__(self):
json_dict = dict(
(a, getattr(self, a)) for a in self.json_friendly_attributes
)
if self.primary_key:
json_dict['primary_key'] = self.primary_key.name
json_dict['methods'] = [m for m in self.methods]
return json_dict
api.register(dns)

View File

@ -73,16 +73,23 @@ class json_metadata(Command):
)
def execute(self, objname):
if objname and objname in self.api.Object:
return dict(
meta = dict(
result=dict(
((objname, json_serialize(self.api.Object[objname])), )
)
)
result=dict(
(o.name, json_serialize(o)) for o in self.api.Object()
)
retval= dict([("metadata",result),("messages",json_serialize(self.messages))])
retval= dict([("metadata",meta), ("messages",dict())])
else:
meta=dict(
(o.name, json_serialize(o)) for o in self.api.Object()
)
retval= dict([("metadata",meta),
("messages",json_serialize(self.messages))])
return retval