From eab5a89d4a3e8159348b5a709cd4401c9784f058 Mon Sep 17 00:00:00 2001 From: John Dennis Date: Tue, 13 Nov 2007 20:05:02 -0500 Subject: ipa-addradiusclient now working --- ipa-python/ipaclient.py | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'ipa-python/ipaclient.py') diff --git a/ipa-python/ipaclient.py b/ipa-python/ipaclient.py index 659ff995..3c54d6ab 100644 --- a/ipa-python/ipaclient.py +++ b/ipa-python/ipaclient.py @@ -331,3 +331,14 @@ class IPAClient: entries.append(user.User(e)) return entries + + def add_radius_client(self,client): + client_dict = client.toDict() + + # dn is set on the server-side + del client_dict['dn'] + + # convert to a regular dict before sending + result = self.transport.add_radius_client(client_dict) + return result + -- cgit From c24da12fe1c68cc2ea5211763e8904b646a17d95 Mon Sep 17 00:00:00 2001 From: John Dennis Date: Wed, 14 Nov 2007 00:04:19 -0500 Subject: radius client modify and delete work --- ipa-python/ipaclient.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'ipa-python/ipaclient.py') diff --git a/ipa-python/ipaclient.py b/ipa-python/ipaclient.py index 3c54d6ab..2d9b7a46 100644 --- a/ipa-python/ipaclient.py +++ b/ipa-python/ipaclient.py @@ -27,6 +27,7 @@ import user import group import ipa import config +import radius_client class IPAClient: @@ -332,6 +333,11 @@ class IPAClient: return entries +# radius support + def get_radius_client_by_ip_addr(self,ip_addr,sattrs=None): + result = self.transport.get_radius_client_by_ip_addr(ip_addr,sattrs) + return radius_client.RadiusClient(result) + def add_radius_client(self,client): client_dict = client.toDict() @@ -342,3 +348,10 @@ class IPAClient: result = self.transport.add_radius_client(client_dict) return result + def update_radius_client(self,client): + result = self.transport.update_radius_client(client.origDataDict(), client.toDict()) + return result + + def delete_radius_client(self,ip_addr): + return self.transport.delete_radius_client(ip_addr) + -- cgit From c4dbe6433da131b618ea2bfd9f0bfc5076c40ff2 Mon Sep 17 00:00:00 2001 From: John Dennis Date: Wed, 14 Nov 2007 15:32:08 -0500 Subject: add ipa-findradiusclient search --- ipa-python/ipaclient.py | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'ipa-python/ipaclient.py') diff --git a/ipa-python/ipaclient.py b/ipa-python/ipaclient.py index 2d9b7a46..f487bec2 100644 --- a/ipa-python/ipaclient.py +++ b/ipa-python/ipaclient.py @@ -355,3 +355,14 @@ class IPAClient: def delete_radius_client(self,ip_addr): return self.transport.delete_radius_client(ip_addr) + def find_radius_clients(self, criteria, sattrs=None, searchlimit=0, timelimit=-1): + result = self.transport.find_radius_clients(criteria, sattrs, searchlimit, timelimit) + counter = result[0] + + users = [counter] + for attrs in result[1:]: + if attrs is not None: + users.append(user.User(attrs)) + + return users + -- cgit From d98686e96758870cb4a56d41fb0aaae54d4067c5 Mon Sep 17 00:00:00 2001 From: John Dennis Date: Wed, 21 Nov 2007 13:11:10 -0500 Subject: Add radius profile implementations: get_radius_profile_by_uid add_radius_profile update_radius_profile delete_radius_profile find_radius_profiles Rewrite command line arg handling, now support pair entry, interactive mode with auto completion, reading pairs from a file, better handling of mandatory values, better help, long arg names now match attribute name in pairs Establish mappings for all attributes and names used in clients and profiles Add notion of containers to radius clients and profiles in LDAP Move common code, variables, constants, and strings into the files radius_client.py, radius_util.py, ipautil.py to eliminate redundant elements which could get out of sync if modified and to provide access to other code which might benefit from using these items in the future. Add utility functions: format_list() parse_key_value_pairs() Add utility class: AttributeValueCompleter Unify attribute usage in radius ldap schema --- ipa-python/ipaclient.py | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) (limited to 'ipa-python/ipaclient.py') diff --git a/ipa-python/ipaclient.py b/ipa-python/ipaclient.py index f487bec2..e9b0002f 100644 --- a/ipa-python/ipaclient.py +++ b/ipa-python/ipaclient.py @@ -334,29 +334,29 @@ class IPAClient: return entries # radius support - def get_radius_client_by_ip_addr(self,ip_addr,sattrs=None): - result = self.transport.get_radius_client_by_ip_addr(ip_addr,sattrs) + def get_radius_client_by_ip_addr(self, ip_addr, container=None, sattrs=None): + result = self.transport.get_radius_client_by_ip_addr(ip_addr, container, sattrs) return radius_client.RadiusClient(result) - def add_radius_client(self,client): + def add_radius_client(self,client, container=None): client_dict = client.toDict() # dn is set on the server-side del client_dict['dn'] # convert to a regular dict before sending - result = self.transport.add_radius_client(client_dict) + result = self.transport.add_radius_client(client_dict, container) return result def update_radius_client(self,client): result = self.transport.update_radius_client(client.origDataDict(), client.toDict()) return result - def delete_radius_client(self,ip_addr): - return self.transport.delete_radius_client(ip_addr) + def delete_radius_client(self, ip_addr, container=None): + return self.transport.delete_radius_client(ip_addr, container) - def find_radius_clients(self, criteria, sattrs=None, searchlimit=0, timelimit=-1): - result = self.transport.find_radius_clients(criteria, sattrs, searchlimit, timelimit) + def find_radius_clients(self, criteria, container=None, sattrs=None, searchlimit=0, timelimit=-1): + result = self.transport.find_radius_clients(criteria, container, sattrs, searchlimit, timelimit) counter = result[0] users = [counter] -- cgit From 4f33d674188268432b3d8ef0921be0de3e6c5ef7 Mon Sep 17 00:00:00 2001 From: John Dennis Date: Mon, 26 Nov 2007 11:12:58 -0500 Subject: remove radius_client.py, move contents to radius_util.py --- ipa-python/ipaclient.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'ipa-python/ipaclient.py') diff --git a/ipa-python/ipaclient.py b/ipa-python/ipaclient.py index e9b0002f..fab33775 100644 --- a/ipa-python/ipaclient.py +++ b/ipa-python/ipaclient.py @@ -27,7 +27,7 @@ import user import group import ipa import config -import radius_client +import radius_util class IPAClient: @@ -336,7 +336,7 @@ class IPAClient: # radius support def get_radius_client_by_ip_addr(self, ip_addr, container=None, sattrs=None): result = self.transport.get_radius_client_by_ip_addr(ip_addr, container, sattrs) - return radius_client.RadiusClient(result) + return radius_util.RadiusClient(result) def add_radius_client(self,client, container=None): client_dict = client.toDict() -- cgit From 09238510ff0dced7998e6a1b72f450070e8c6116 Mon Sep 17 00:00:00 2001 From: John Dennis Date: Mon, 26 Nov 2007 19:30:33 -0500 Subject: add command line utilites for radius profiles --- ipa-python/ipaclient.py | 36 ++++++++++++++++++++++++++++++++++-- 1 file changed, 34 insertions(+), 2 deletions(-) (limited to 'ipa-python/ipaclient.py') diff --git a/ipa-python/ipaclient.py b/ipa-python/ipaclient.py index fab33775..7a140308 100644 --- a/ipa-python/ipaclient.py +++ b/ipa-python/ipaclient.py @@ -338,7 +338,7 @@ class IPAClient: result = self.transport.get_radius_client_by_ip_addr(ip_addr, container, sattrs) return radius_util.RadiusClient(result) - def add_radius_client(self,client, container=None): + def add_radius_client(self, client, container=None): client_dict = client.toDict() # dn is set on the server-side @@ -348,7 +348,7 @@ class IPAClient: result = self.transport.add_radius_client(client_dict, container) return result - def update_radius_client(self,client): + def update_radius_client(self, client): result = self.transport.update_radius_client(client.origDataDict(), client.toDict()) return result @@ -366,3 +366,35 @@ class IPAClient: return users + def get_radius_profile_by_uid(self, uid, user_profile=None, sattrs=None): + result = self.transport.get_radius_profile_by_uid(uid, user_profile, sattrs) + return radius_util.RadiusClient(result) + + def add_radius_profile(self, profile, user_profile=None): + profile_dict = profile.toDict() + + # dn is set on the server-side + del profile_dict['dn'] + + # convert to a regular dict before sending + result = self.transport.add_radius_profile(profile_dict, user_profile) + return result + + def update_radius_profile(self, profile): + result = self.transport.update_radius_profile(profile.origDataDict(), profile.toDict()) + return result + + def delete_radius_profile(self, ip_addr, user_profile=None): + return self.transport.delete_radius_profile(ip_addr, user_profile) + + def find_radius_profiles(self, criteria, user_profile=None, sattrs=None, searchlimit=0, timelimit=-1): + result = self.transport.find_radius_profiles(criteria, user_profile, sattrs, searchlimit, timelimit) + counter = result[0] + + users = [counter] + for attrs in result[1:]: + if attrs is not None: + users.append(user.User(attrs)) + + return users + -- cgit