aboutsummaryrefslogtreecommitdiffstats
path: root/moonv4/moon_utilities/moon_utilities/api.py
diff options
context:
space:
mode:
Diffstat (limited to 'moonv4/moon_utilities/moon_utilities/api.py')
-rw-r--r--moonv4/moon_utilities/moon_utilities/api.py28
1 files changed, 28 insertions, 0 deletions
diff --git a/moonv4/moon_utilities/moon_utilities/api.py b/moonv4/moon_utilities/moon_utilities/api.py
new file mode 100644
index 00000000..8e80c21d
--- /dev/null
+++ b/moonv4/moon_utilities/moon_utilities/api.py
@@ -0,0 +1,28 @@
+# Copyright 2015 Open Platform for NFV Project, Inc. and its contributors
+# This software is distributed under the terms and conditions of the 'Apache-2.0'
+# license which can be found in the file 'LICENSE' in this package distribution
+# or at 'http://www.apache.org/licenses/LICENSE-2.0'.
+
+
+class APIList(object):
+
+ API_LIST = ()
+
+ def __init__(self, api_list):
+ self.API_LIST = api_list
+
+ def list_api(self, ctx):
+ api = dict()
+ for obj in self.API_LIST:
+ api[obj.__name__] = dict()
+ api[obj.__name__]["description"] = obj.__doc__.strip() if obj.__doc__ else ""
+ api[obj.__name__]["version"] = obj.__version__
+ api[obj.__name__]["commands"] = dict()
+ for cmd in filter(lambda x: not x.startswith("__"), dir(obj)):
+ doc = eval("obj.{}.__doc__".format(cmd))
+ if not doc:
+ doc = ""
+ api[obj.__name__]["commands"][cmd] = doc.strip()
+ return api
+
+