summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJason Gerard DeRose <jderose@redhat.com>2008-07-20 02:03:15 +0000
committerJason Gerard DeRose <jderose@redhat.com>2008-07-20 02:03:15 +0000
commit700d58ac1e29378569f2f9ac1a4fe39c8747aeba (patch)
treef3fb34aabba8a07d0e274003a0e306a2e7e3348a
parent7acf12e988f45d503d7d93f03f706618f7696504 (diff)
downloadfreeipa-700d58ac1e29378569f2f9ac1a4fe39c8747aeba.tar.gz
freeipa-700d58ac1e29378569f2f9ac1a4fe39c8747aeba.tar.xz
freeipa-700d58ac1e29378569f2f9ac1a4fe39c8747aeba.zip
11: Added submodules needed to triger the plugin loading, etc., so I can start work on the cli demo
-rw-r--r--ipalib/base.py1
-rw-r--r--ipalib/crud.py10
-rw-r--r--ipalib/plugins.py39
-rw-r--r--ipalib/run.py28
-rw-r--r--ipalib/startup.py31
5 files changed, 101 insertions, 8 deletions
diff --git a/ipalib/base.py b/ipalib/base.py
index 3cadc70e8..537146b4c 100644
--- a/ipalib/base.py
+++ b/ipalib/base.py
@@ -212,6 +212,7 @@ class API(object):
def finalize(self):
cmd_d = {}
+ cmd_l = {}
for obj in self.__obj_d.values():
for cmd in obj.commands():
assert cmd.full_name not in cmd_d
diff --git a/ipalib/crud.py b/ipalib/crud.py
index c20b4cc16..2ae736f53 100644
--- a/ipalib/crud.py
+++ b/ipalib/crud.py
@@ -26,29 +26,23 @@ import base
class add(base.Command):
pass
-
-class get(base.Command):
+class find(base.Command):
pass
-
class edit(base.Command):
pass
-
class delete(base.Command):
pass
-class find(base.Command):
- pass
class CrudLike(base.Object):
def get_commands(self):
return [
add,
- get,
+ find,
edit,
delete,
- find,
]
diff --git a/ipalib/plugins.py b/ipalib/plugins.py
new file mode 100644
index 000000000..a78755ab2
--- /dev/null
+++ b/ipalib/plugins.py
@@ -0,0 +1,39 @@
+# Authors:
+# Jason Gerard DeRose <jderose@redhat.com>
+#
+# Copyright (C) 2008 Red Hat
+# see file 'COPYING' for use and warranty information
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License as
+# published by the Free Software Foundation; version 2 only
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+"""
+Some example plugins.
+"""
+
+import crud
+from run import api
+
+class user(crud.CrudLike):
+ pass
+api.register_object(user)
+
+
+class group(crud.CrudLike):
+ pass
+api.register_object(group)
+
+
+class service(crud.CrudLike):
+ pass
+api.register_object(service)
diff --git a/ipalib/run.py b/ipalib/run.py
new file mode 100644
index 000000000..ffaa655f4
--- /dev/null
+++ b/ipalib/run.py
@@ -0,0 +1,28 @@
+# Authors:
+# Jason Gerard DeRose <jderose@redhat.com>
+#
+# Copyright (C) 2008 Red Hat
+# see file 'COPYING' for use and warranty information
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License as
+# published by the Free Software Foundation; version 2 only
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+"""
+Standard run-time instances of importard classes. This is where plugins
+should access the registration API.
+"""
+
+import base
+
+# The standard API instance
+api = base.API()
diff --git a/ipalib/startup.py b/ipalib/startup.py
new file mode 100644
index 000000000..cfeb57b16
--- /dev/null
+++ b/ipalib/startup.py
@@ -0,0 +1,31 @@
+# Authors:
+# Jason Gerard DeRose <jderose@redhat.com>
+#
+# Copyright (C) 2008 Red Hat
+# see file 'COPYING' for use and warranty information
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License as
+# published by the Free Software Foundation; version 2 only
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+"""
+Importing this module causes the plugins to be loaded and the API to be
+generated.
+
+This is not in __init__.py so that imported other IPA modules doesn't cause
+unnecessary side effects (needed for unit tests, among other things).
+"""
+
+from run import api
+import plugins
+
+api.finalize()