diff options
author | John Dennis <jdennis@redhat.com> | 2007-11-26 19:30:33 -0500 |
---|---|---|
committer | John Dennis <jdennis@redhat.com> | 2007-11-26 19:30:33 -0500 |
commit | 09238510ff0dced7998e6a1b72f450070e8c6116 (patch) | |
tree | 990ecb78d559c97a86e25e816d58ce7e295619f5 /ipa-python | |
parent | 4f33d674188268432b3d8ef0921be0de3e6c5ef7 (diff) | |
download | freeipa.git-09238510ff0dced7998e6a1b72f450070e8c6116.tar.gz freeipa.git-09238510ff0dced7998e6a1b72f450070e8c6116.tar.xz freeipa.git-09238510ff0dced7998e6a1b72f450070e8c6116.zip |
add command line utilites for radius profiles
Diffstat (limited to 'ipa-python')
-rw-r--r-- | ipa-python/ipaclient.py | 36 | ||||
-rw-r--r-- | ipa-python/radius_util.py | 5 | ||||
-rw-r--r-- | ipa-python/rpcclient.py | 77 |
3 files changed, 110 insertions, 8 deletions
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 + diff --git a/ipa-python/radius_util.py b/ipa-python/radius_util.py index 24eb949a..e502fece 100644 --- a/ipa-python/radius_util.py +++ b/ipa-python/radius_util.py @@ -140,7 +140,8 @@ radius_client_attr_to_ldap_attr = reverse_map_dict(radius_client_ldap_attr_to_ra #------------------------------------------------------------------------------ -radius_profile_ldap_attr_to_radius_attr = { +radius_profile_ldap_attr_to_radius_attr = ipautil.CIDict({ + 'uid' : 'UID', 'radiusArapFeatures' : 'Arap-Features', 'radiusArapSecurity' : 'Arap-Security', 'radiusArapZoneAccess' : 'Arap-Zone-Access', @@ -200,7 +201,7 @@ radius_profile_ldap_attr_to_radius_attr = { 'radiusTunnelType' : 'Tunnel-Type', 'radiusUserCategory' : 'User-Category', 'radiusVSA' : 'VSA', -} +}) radius_profile_attr_to_ldap_attr = reverse_map_dict(radius_profile_ldap_attr_to_radius_attr) diff --git a/ipa-python/rpcclient.py b/ipa-python/rpcclient.py index 531bf72b..ed23015e 100644 --- a/ipa-python/rpcclient.py +++ b/ipa-python/rpcclient.py @@ -594,7 +594,7 @@ class RPCClient: # radius support - def get_radius_client_by_ip_addr(self,ip_addr, container, sattrs=None): + def get_radius_client_by_ip_addr(self, ip_addr, container, sattrs=None): server = self.setup_server() if container is None: container = "__NONE__" if sattrs is None: sattrs = "__NONE__" @@ -607,7 +607,7 @@ class RPCClient: return ipautil.unwrap_binary_data(result) - def add_radius_client(self,client, container=None): + def add_radius_client(self, client, container=None): server = self.setup_server() if container is None: container = "__NONE__" @@ -621,7 +621,7 @@ class RPCClient: return ipautil.unwrap_binary_data(result) - def update_radius_client(self,oldclient,newclient): + def update_radius_client(self, oldclient, newclient): server = self.setup_server() try: @@ -635,7 +635,7 @@ class RPCClient: return ipautil.unwrap_binary_data(result) - def delete_radius_client(self,ip_addr, container=None): + def delete_radius_client(self, ip_addr, container=None): server = self.setup_server() if container is None: container = "__NONE__" @@ -663,3 +663,72 @@ class RPCClient: return ipautil.unwrap_binary_data(result) + def get_radius_profile_by_uid(self, ip_addr, user_profile, sattrs=None): + server = self.setup_server() + if user_profile is None: user_profile = "__NONE__" + if sattrs is None: sattrs = "__NONE__" + try: + result = server.get_radius_profile_by_uid(ip_addr, user_profile, sattrs) + 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 add_radius_profile(self, profile, user_profile=None): + server = self.setup_server() + + if user_profile is None: user_profile = "__NONE__" + + try: + result = server.add_radius_profile(ipautil.wrap_binary_data(profile), user_profile) + 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 update_radius_profile(self, oldprofile, newprofile): + server = self.setup_server() + + try: + result = server.update_radius_profile(ipautil.wrap_binary_data(oldprofile), + ipautil.wrap_binary_data(newprofile)) + 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_radius_profile(self, ip_addr, user_profile=None): + server = self.setup_server() + if user_profile is None: user_profile = "__NONE__" + + try: + result = server.delete_radius_profile(ip_addr, user_profile) + 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 find_radius_profiles(self, criteria, user_profile=None, sattrs=None, searchlimit=0, timelimit=-1): + server = self.setup_server() + if user_profile is None: user_profile = "__NONE__" + try: + # None values are not allowed in XML-RPC + if sattrs is None: + sattrs = "__NONE__" + result = server.find_radius_profiles(criteria, user_profile, sattrs, searchlimit, timelimit) + 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) + |