[Freeipa-devel] [PATCH] update_entry
Kevin McCarthy
kmccarth at redhat.com
Fri Oct 12 23:00:46 UTC 2007
This patch unifies the update_group and update_user methods into
update_entry.
The modivation for this was from the delegation management code, where I
need to update the cn=accounts entry. Although calling update_group()
worked, it looked strange.
That said, it may be just as offensive to have an API with add_user,
delete_user, but update_entry. I'm open to suggestions.
-Kevin
-------------- next part --------------
# HG changeset patch
# User Kevin McCarthy <kmccarth at redhat.com>
# Date 1192229916 25200
# Node ID 33d4a477d7326a633d6d65dea46817b1eb371416
# Parent 2ffed88489759ced4ba285c3f1d00f84eb3eeebe
Creates a single update_entry api call.
diff -r 2ffed8848975 -r 33d4a477d732 ipa-admintools/ipa-groupmod
--- a/ipa-admintools/ipa-groupmod Fri Oct 12 15:11:55 2007 -0700
+++ b/ipa-admintools/ipa-groupmod Fri Oct 12 15:58:36 2007 -0700
@@ -91,7 +91,7 @@ def main():
if group is None:
return 1
group.setValue('description', options.desc)
- client.update_group(group)
+ client.update_entry(group)
print args[1] + " successfully updated"
except xmlrpclib.Fault, f:
print f.faultString
diff -r 2ffed8848975 -r 33d4a477d732 ipa-admintools/ipa-usermod
--- a/ipa-admintools/ipa-usermod Fri Oct 12 15:11:55 2007 -0700
+++ b/ipa-admintools/ipa-usermod Fri Oct 12 15:58:36 2007 -0700
@@ -190,7 +190,7 @@ def main():
user.setValue('loginshell', shell)
try:
- client.update_user(user)
+ client.update_entry(user)
except xmlrpclib.Fault, f:
print f.faultString
return 1
diff -r 2ffed8848975 -r 33d4a477d732 ipa-python/ipaclient.py
--- a/ipa-python/ipaclient.py Fri Oct 12 15:11:55 2007 -0700
+++ b/ipa-python/ipaclient.py Fri Oct 12 15:58:36 2007 -0700
@@ -78,6 +78,12 @@ class IPAClient:
result = self.transport.get_entry_by_cn(cn,sattrs)
return entity.Entity(result)
+ def update_entry(self,entry):
+ """Update a entry."""
+
+ result = self.transport.update_entry(entry.origDataDict(), entry.toDict())
+ return result
+
# User support
def get_user_by_uid(self,uid,sattrs=None):
"""Get a specific user by uid. If sattrs is set then only those
@@ -145,12 +151,6 @@ class IPAClient:
return users
- def update_user(self,user):
- """Update a user entry."""
-
- result = self.transport.update_user(user.origDataDict(), user.toDict())
- return result
-
def delete_user(self,uid):
"""Delete a user entry."""
@@ -285,11 +285,6 @@ class IPAClient:
return self.transport.remove_groups_from_user(group_dns, user_dn)
- def update_group(self,group):
- """Update a group entry."""
-
- return self.transport.update_group(group.origDataDict(), group.toDict())
-
def delete_group(self,group_cn):
"""Delete a group entry."""
diff -r 2ffed8848975 -r 33d4a477d732 ipa-python/rpcclient.py
--- a/ipa-python/rpcclient.py Fri Oct 12 15:11:55 2007 -0700
+++ b/ipa-python/rpcclient.py Fri Oct 12 15:58:36 2007 -0700
@@ -118,6 +118,20 @@ class RPCClient:
return ipautil.unwrap_binary_data(result)
+ def update_entry(self,oldentry,newentry):
+ """Update an existing entry. oldentry and newentry are dicts of attributes"""
+ server = self.setup_server()
+
+ try:
+ result = server.update_entry(ipautil.wrap_binary_data(oldentry),
+ ipautil.wrap_binary_data(newentry))
+ except xmlrpclib.Fault, fault:
+ raise ipaerror.gen_exception(fault.faultCode, fault.faultString)
+ except socket.error, (value, msg):
+ raise xmlrpclib.Fault(value, msg)
+
+ return ipautil.unwrap_binary_data(result)
+
# User support
@@ -237,20 +251,6 @@ class RPCClient:
return ipautil.unwrap_binary_data(result)
- def update_user(self,olduser,newuser):
- """Update an existing user. olduser and newuser are dicts of attributes"""
- server = self.setup_server()
-
- try:
- result = server.update_user(ipautil.wrap_binary_data(olduser),
- ipautil.wrap_binary_data(newuser))
- except xmlrpclib.Fault, fault:
- raise ipaerror.gen_exception(fault.faultCode, fault.faultString)
- except socket.error, (value, msg):
- raise xmlrpclib.Fault(value, msg)
-
- return ipautil.unwrap_binary_data(result)
-
def delete_user(self,uid):
"""Delete a user. uid is the uid of the user to delete."""
server = self.setup_server()
@@ -491,20 +491,6 @@ class RPCClient:
return ipautil.unwrap_binary_data(result)
- def update_group(self,oldgroup,newgroup):
- """Update an existing group. oldgroup and newgroup are dicts of attributes"""
- server = self.setup_server()
-
- try:
- result = server.update_group(ipautil.wrap_binary_data(oldgroup),
- ipautil.wrap_binary_data(newgroup))
- except xmlrpclib.Fault, fault:
- raise ipaerror.gen_exception(fault.faultCode, fault.faultString)
- except socket.error, (value, msg):
- raise xmlrpclib.Fault(value, msg)
-
- return ipautil.unwrap_binary_data(result)
-
def delete_group(self,group_cn):
"""Delete a group. group_cn is the cn of the group to be deleted."""
server = self.setup_server()
diff -r 2ffed8848975 -r 33d4a477d732 ipa-server/ipa-gui/ipagui/subcontrollers/delegation.py
--- a/ipa-server/ipa-gui/ipagui/subcontrollers/delegation.py Fri Oct 12 15:11:55 2007 -0700
+++ b/ipa-server/ipa-gui/ipagui/subcontrollers/delegation.py Fri Oct 12 15:58:36 2007 -0700
@@ -62,8 +62,7 @@ class DelegationController(IPAController
aci_entry = client.get_aci_entry(['dn'])
aci_entry.setValue('aci', new_aci.export_to_string())
- # TODO - add a client.update_entry() call instead
- client.update_group(aci_entry)
+ client.update_entry(aci_entry)
except ipaerror.IPAError, e:
turbogears.flash("Delgate add failed: " + str(e))
return dict(form=delegate_new_form, delegate=kw,
diff -r 2ffed8848975 -r 33d4a477d732 ipa-server/ipa-gui/ipagui/subcontrollers/group.py
--- a/ipa-server/ipa-gui/ipagui/subcontrollers/group.py Fri Oct 12 15:11:55 2007 -0700
+++ b/ipa-server/ipa-gui/ipagui/subcontrollers/group.py Fri Oct 12 15:58:36 2007 -0700
@@ -246,7 +246,7 @@ class GroupController(IPAController):
new_group.setValue('gidnumber', new_gid)
if group_modified:
- rv = client.update_group(new_group)
+ rv = client.update_entry(new_group)
#
# If the group update succeeds, but below operations fail, we
# need to make sure a subsequent submit doesn't try to update
diff -r 2ffed8848975 -r 33d4a477d732 ipa-server/ipa-gui/ipagui/subcontrollers/user.py
--- a/ipa-server/ipa-gui/ipagui/subcontrollers/user.py Fri Oct 12 15:11:55 2007 -0700
+++ b/ipa-server/ipa-gui/ipagui/subcontrollers/user.py Fri Oct 12 15:58:36 2007 -0700
@@ -293,7 +293,7 @@ class UserController(IPAController):
new_user.setValue('gidnumber', str(kw.get('gidnumber')))
new_user.setValue('homedirectory', str(kw.get('homedirectory')))
- rv = client.update_user(new_user)
+ rv = client.update_entry(new_user)
#
# If the user update succeeds, but below operations fail, we
# need to make sure a subsequent submit doesn't try to update
diff -r 2ffed8848975 -r 33d4a477d732 ipa-server/xmlrpc-server/funcs.py
--- a/ipa-server/xmlrpc-server/funcs.py Fri Oct 12 15:11:55 2007 -0700
+++ b/ipa-server/xmlrpc-server/funcs.py Fri Oct 12 15:58:36 2007 -0700
@@ -372,6 +372,10 @@ class IPAServer:
filter = "(cn=" + cn + ")"
return self.__get_sub_entry(self.basedn, filter, sattrs, opts)
+ def update_entry (self, oldentry, newentry, opts=None):
+ """Update an entry in LDAP"""
+ return self.__update_entry(oldentry, newentry, opts)
+
# User support
def __is_user_unique(self, uid, opts):
@@ -614,10 +618,6 @@ class IPAServer:
new_dict[k] = v
return new_dict
-
- def update_user (self, olduser, newuser, opts=None):
- """Update a user in LDAP"""
- return self.__update_entry(olduser, newuser, opts)
def mark_user_deleted (self, uid, opts=None):
"""Mark a user as inactive in LDAP. We aren't actually deleting
@@ -1015,10 +1015,6 @@ class IPAServer:
failed.append(group_dn)
return failed
-
- def update_group (self, oldgroup, newgroup, opts=None):
- """Update a group in LDAP"""
- return self.__update_entry(oldgroup, newgroup, opts)
def delete_group (self, group_dn, opts=None):
"""Delete a group
diff -r 2ffed8848975 -r 33d4a477d732 ipa-server/xmlrpc-server/ipaxmlrpc.py
--- a/ipa-server/xmlrpc-server/ipaxmlrpc.py Fri Oct 12 15:11:55 2007 -0700
+++ b/ipa-server/xmlrpc-server/ipaxmlrpc.py Fri Oct 12 15:58:36 2007 -0700
@@ -320,6 +320,7 @@ def handler(req, profiling=False):
h.register_function(f.get_aci_entry)
h.register_function(f.get_entry_by_dn)
h.register_function(f.get_entry_by_cn)
+ h.register_function(f.update_entry)
h.register_function(f.get_user_by_uid)
h.register_function(f.get_user_by_principal)
h.register_function(f.get_users_by_manager)
@@ -327,7 +328,6 @@ def handler(req, profiling=False):
h.register_function(f.get_add_schema)
h.register_function(f.get_all_users)
h.register_function(f.find_users)
- h.register_function(f.update_user)
h.register_function(f.delete_user)
h.register_function(f.mark_user_deleted)
h.register_function(f.modifyPassword)
@@ -345,7 +345,6 @@ def handler(req, profiling=False):
h.register_function(f.remove_users_from_group)
h.register_function(f.add_groups_to_user)
h.register_function(f.remove_groups_from_user)
- h.register_function(f.update_group)
h.register_function(f.delete_group)
h.handle_request(req)
finally:
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/x-pkcs7-signature
Size: 4054 bytes
Desc: not available
URL: <http://listman.redhat.com/archives/freeipa-devel/attachments/20071012/a9bef447/attachment.bin>
More information about the Freeipa-devel
mailing list