summaryrefslogtreecommitdiffstats
path: root/ipalib/plugins/internal.py
diff options
context:
space:
mode:
Diffstat (limited to 'ipalib/plugins/internal.py')
-rw-r--r--ipalib/plugins/internal.py58
1 files changed, 53 insertions, 5 deletions
diff --git a/ipalib/plugins/internal.py b/ipalib/plugins/internal.py
index 4c64527e..e218b2fc 100644
--- a/ipalib/plugins/internal.py
+++ b/ipalib/plugins/internal.py
@@ -48,16 +48,34 @@ class json_metadata(Command):
),
)
+ takes_options = (
+ Str('object?',
+ doc=_('Name of object to export'),
+ ),
+ Str('method?',
+ doc=_('Name of method to export'),
+ ),
+ Str('command?',
+ doc=_('Name of command to export'),
+ ),
+ )
+
has_output = (
Output('objects', dict, doc=_('Dict of JSON encoded IPA Objects')),
Output('methods', dict, doc=_('Dict of JSON encoded IPA Methods')),
+ Output('commands', dict, doc=_('Dict of JSON encoded IPA Commands')),
)
- def execute(self, objname, methodname):
+ def execute(self, objname, methodname, **options):
objects = dict()
methods = dict()
+ commands = dict()
- if objname :
+ empty = True
+
+ try:
+ if not objname:
+ objname = options['object']
if objname in self.api.Object:
o = self.api.Object[objname]
objects = dict([(o.name, json_serialize(o))])
@@ -65,25 +83,52 @@ class json_metadata(Command):
objects = dict(
(o.name, json_serialize(o)) for o in self.api.Object()
)
- elif methodname:
- if methodname in self.api.Method:
+ empty = False
+ except KeyError:
+ pass
+
+ try:
+ if not methodname:
+ methodname = options['method']
+ if methodname in self.api.Method:
m = self.api.Method[methodname]
methods = dict([(m.name, json_serialize(m))])
elif methodname == "all":
methods = dict(
(m.name, json_serialize(m)) for m in self.api.Method()
)
- else:
+ empty = False
+ except KeyError:
+ pass
+
+ try:
+ cmdname = options['command']
+ if cmdname in self.api.Command:
+ c = self.api.Command[cmdname]
+ commands = dict([(c.name, json_serialize(c))])
+ elif cmdname == "all":
+ commands = dict(
+ (c.name, json_serialize(c)) for c in self.api.Command()
+ )
+ empty = False
+ except KeyError:
+ pass
+
+ if empty:
objects = dict(
(o.name, json_serialize(o)) for o in self.api.Object()
)
methods = dict(
(m.name, json_serialize(m)) for m in self.api.Method()
)
+ commands = dict(
+ (c.name, json_serialize(c)) for c in self.api.Command()
+ )
retval = dict([
("objects", objects),
("methods", methods),
+ ("commands", commands),
])
return retval
@@ -313,6 +358,9 @@ class i18n_messages(Command):
"hbacsvcgroup": {
"services": _("Services"),
},
+ "hbactest": {
+ "label": _("HBAC Test"),
+ },
"host": {
"certificate": _("Host Certificate"),
"cn": _("Host Name"),