summaryrefslogtreecommitdiffstats
path: root/ipa-python
diff options
context:
space:
mode:
authorJohn Dennis <jdennis@redhat.com>2007-11-14 00:04:19 -0500
committerJohn Dennis <jdennis@redhat.com>2007-11-14 00:04:19 -0500
commitc24da12fe1c68cc2ea5211763e8904b646a17d95 (patch)
treed2e14ef781916a49cf545f0fc6d986947f1a0b4e /ipa-python
parentc4bf859bfb95a1e0ebc4501317ff4e8665ac590d (diff)
downloadfreeipa-c24da12fe1c68cc2ea5211763e8904b646a17d95.tar.gz
freeipa-c24da12fe1c68cc2ea5211763e8904b646a17d95.tar.xz
freeipa-c24da12fe1c68cc2ea5211763e8904b646a17d95.zip
radius client modify and delete work
Diffstat (limited to 'ipa-python')
-rw-r--r--ipa-python/ipaclient.py13
-rw-r--r--ipa-python/radius_client.py12
-rw-r--r--ipa-python/rpcclient.py41
3 files changed, 60 insertions, 6 deletions
diff --git a/ipa-python/ipaclient.py b/ipa-python/ipaclient.py
index 3c54d6ab5..2d9b7a469 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)
+
diff --git a/ipa-python/radius_client.py b/ipa-python/radius_client.py
index d21273d8a..2709c4d9d 100644
--- a/ipa-python/radius_client.py
+++ b/ipa-python/radius_client.py
@@ -33,15 +33,15 @@ __all__ = ['RadiusClient',
#------------------------------------------------------------------------------
-dotted_octet_RE = re.compile(r"^(\d+)\.(\d+)\.(\d+)\.(\d+)(/(\d+))?$")
-dns_RE = re.compile(r"^[a-zA-Z][a-zA-Z.-]+$")
+dotted_octet_re = re.compile(r"^(\d+)\.(\d+)\.(\d+)\.(\d+)(/(\d+))?$")
+dns_re = re.compile(r"^[a-zA-Z][a-zA-Z0-9.-]+$")
# secret, name, nastype all have 31 char max in freeRADIUS, max ip address len is 255
valid_secret_len = (1,31)
valid_name_len = (1,31)
valid_nastype_len = (1,31)
valid_ip_addr_len = (1,255)
-valid_ip_addr_msg = "IP address must be either a DNS name or a dotted octet with optional mask"
+valid_ip_addr_msg = "IP address must be either a DNS name (letters,digits,dot,hyphen, beginning with a letter),or a dotted octet followed by an optional mask (e.g 192.168.1.0/24)"
valid_desc_msg = "Description must text string"
#------------------------------------------------------------------------------
@@ -72,7 +72,7 @@ def valid_ip_addr(text):
# is it a dotted octet? If so there should be 4 integers seperated
# by a dot and each integer should be between 0 and 255
# there may be an optional mask preceded by a slash (e.g. 1.2.3.4/24)
- match = dotted_octet_RE.search(text)
+ match = dotted_octet_re.search(text)
if match:
# dotted octet notation
i = 1
@@ -88,8 +88,8 @@ def valid_ip_addr(text):
return False
return True
else:
- # DNS name, can contain letters, dot and hypen
- if dns_RE.search(text): return True
+ # DNS name, can contain letters, numbers, dot and hypen, must start with a letter
+ if dns_re.search(text): return True
return False
def validate_length(value, limits):
diff --git a/ipa-python/rpcclient.py b/ipa-python/rpcclient.py
index f0ffec02e..bf3f1bd93 100644
--- a/ipa-python/rpcclient.py
+++ b/ipa-python/rpcclient.py
@@ -592,6 +592,21 @@ class RPCClient:
return ipautil.unwrap_binary_data(result)
+# radius support
+
+ def get_radius_client_by_ip_addr(self,ip_addr,sattrs=None):
+ server = self.setup_server()
+ if sattrs is None:
+ sattrs = "__NONE__"
+ try:
+ result = server.get_radius_client_by_ip_addr(ip_addr, 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_client(self,client):
server = self.setup_server()
@@ -603,4 +618,30 @@ class RPCClient:
raise xmlrpclib.Fault(value, msg)
return ipautil.unwrap_binary_data(result)
+
+ def update_radius_client(self,oldclient,newclient):
+ server = self.setup_server()
+
+ try:
+ result = server.update_radius_client(ipautil.wrap_binary_data(oldclient),
+ ipautil.wrap_binary_data(newclient))
+ 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_client(self,ip_addr):
+ server = self.setup_server()
+
+ try:
+ result = server.delete_radius_client(ip_addr)
+ 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)
+