summaryrefslogtreecommitdiffstats
path: root/ipalib/plugins
diff options
context:
space:
mode:
authorRob Crittenden <rcritten@redhat.com>2008-10-07 02:10:15 -0400
committerRob Crittenden <rcritten@redhat.com>2008-10-07 02:10:15 -0400
commit69bc5ad77adecaf7d8fde4a6578c3d2f3ef355df (patch)
tree619b12f26fd96d687810a5463c160ddaab3573b3 /ipalib/plugins
parentcb795fa14bc2798fd8f1c6e2b87d19432e3f84a1 (diff)
downloadfreeipa-69bc5ad77adecaf7d8fde4a6578c3d2f3ef355df.tar.gz
freeipa-69bc5ad77adecaf7d8fde4a6578c3d2f3ef355df.tar.xz
freeipa-69bc5ad77adecaf7d8fde4a6578c3d2f3ef355df.zip
Add some more supporting functions
Do a little bit more error handling and checking
Diffstat (limited to 'ipalib/plugins')
-rw-r--r--ipalib/plugins/b_xmlrpc.py8
-rw-r--r--ipalib/plugins/f_group.py3
-rw-r--r--ipalib/plugins/f_user.py14
3 files changed, 19 insertions, 6 deletions
diff --git a/ipalib/plugins/b_xmlrpc.py b/ipalib/plugins/b_xmlrpc.py
index f8dacf5d7..d7cbd8560 100644
--- a/ipalib/plugins/b_xmlrpc.py
+++ b/ipalib/plugins/b_xmlrpc.py
@@ -24,6 +24,7 @@ Lightwieght XML-RPC client using Python standard library xmlrpclib.
"""
import xmlrpclib
+import socket
from ipalib.backend import Backend
from ipalib.util import xmlrpc_marshal
from ipalib import api
@@ -44,7 +45,10 @@ class xmlrpc(Backend):
client = self.get_client()
command = getattr(client, name)
params = xmlrpc_marshal(*args, **kw)
- return command(*params)
-# return command(*args, **kw)
+ try:
+ return command(*params)
+ except socket.error, e:
+ print e[1]
+ return False
api.register(xmlrpc)
diff --git a/ipalib/plugins/f_group.py b/ipalib/plugins/f_group.py
index 36cecc332..c5a37e725 100644
--- a/ipalib/plugins/f_group.py
+++ b/ipalib/plugins/f_group.py
@@ -28,7 +28,6 @@ from ipalib import api
from ipa_server import servercore
from ipa_server import ipaldap
import ldap
-from ipa_server.context import context
class group(frontend.Object):
@@ -82,7 +81,7 @@ class group_add(crud.Add):
for g in group:
entry.setValues(g, group[g])
- result = context.conn.getConn().addEntry(entry)
+ result = servercore.add_entry(entry)
return result
diff --git a/ipalib/plugins/f_user.py b/ipalib/plugins/f_user.py
index 0e62b8336..49b6a3704 100644
--- a/ipalib/plugins/f_user.py
+++ b/ipalib/plugins/f_user.py
@@ -28,7 +28,6 @@ from ipalib import api
from ipa_server import servercore
from ipa_server import ipaldap
import ldap
-from ipa_server.context import context
# Command to get the idea how plugins will interact with api.env
class envtest(frontend.Command):
@@ -94,6 +93,13 @@ class user_add(crud.Add):
user['uid'] = args[0]
+ if not servercore.is_user_unique(user['uid']):
+ # FIXME, specific error
+ raise SyntaxError("user already exists")
+ if servercore.uid_too_long(user['uid']):
+ # FIXME, specific error
+ raise SyntaxError("uid is too long")
+
# dn is set here, not by the user
try:
del user['dn']
@@ -159,8 +165,12 @@ class user_add(crud.Add):
for u in user:
entry.setValues(u, user[u])
- result = context.conn.getConn().addEntry(entry)
+ result = servercore.add_entry(entry)
return result
+ def forward(self, *args, **kw):
+ result = super(crud.Add, self).forward(*args, **kw)
+ if result != False:
+ print result
api.register(user_add)