summaryrefslogtreecommitdiffstats
path: root/ipalib/parameters.py
diff options
context:
space:
mode:
authorMartin Kosek <mkosek@redhat.com>2012-09-04 15:49:26 +0200
committerMartin Kosek <mkosek@redhat.com>2012-09-06 14:57:07 +0200
commitcfbea2a99e53dea54aaa0a1670c2bed194c4dc2c (patch)
treef719d2b5f4076ff2b7c39a0a9bab7e48442307fa /ipalib/parameters.py
parent71f900890695dc342480664b5ec7068d2e7f230d (diff)
downloadfreeipa-cfbea2a99e53dea54aaa0a1670c2bed194c4dc2c.tar.gz
freeipa-cfbea2a99e53dea54aaa0a1670c2bed194c4dc2c.tar.xz
freeipa-cfbea2a99e53dea54aaa0a1670c2bed194c4dc2c.zip
Transfer long numbers over XMLRPC
Numeric parameters in ipalib were limited by XMLRPC boundaries for integer (2^31-1) which is too low for some LDAP attributes like DNS SOA serial field. Transfer numbers which are not in XMLRPC boundary as a string and not as a number to workaround this limitation. Int parameter had to be updated to also accept Python's long type as valid int type. https://fedorahosted.org/freeipa/ticket/2568
Diffstat (limited to 'ipalib/parameters.py')
-rw-r--r--ipalib/parameters.py12
1 files changed, 6 insertions, 6 deletions
diff --git a/ipalib/parameters.py b/ipalib/parameters.py
index e839a0e75..13f04b454 100644
--- a/ipalib/parameters.py
+++ b/ipalib/parameters.py
@@ -1078,7 +1078,7 @@ class Number(Param):
"""
if type(value) is self.type:
return value
- if type(value) in (unicode, int, float):
+ if type(value) in (unicode, int, long, float):
try:
return self.type(value)
except ValueError:
@@ -1100,8 +1100,8 @@ class Int(Number):
type_error = _('must be an integer')
kwargs = Param.kwargs + (
- ('minvalue', int, int(MININT)),
- ('maxvalue', int, int(MAXINT)),
+ ('minvalue', (int, long), int(MININT)),
+ ('maxvalue', (int, long), int(MAXINT)),
)
def __init__(self, name, *rules, **kw):
@@ -1148,7 +1148,7 @@ class Int(Number):
Check min constraint.
"""
assert type(value) in (int, long)
- if value < self.minvalue or value < MININT:
+ if value < self.minvalue:
return _('must be at least %(minvalue)d') % dict(
minvalue=self.minvalue,
)
@@ -1158,7 +1158,7 @@ class Int(Number):
Check max constraint.
"""
assert type(value) in (int, long)
- if value > self.maxvalue or value > MAXINT:
+ if value > self.maxvalue:
return _('can be at most %(maxvalue)d') % dict(
maxvalue=self.maxvalue,
)
@@ -1491,7 +1491,7 @@ class Str(Data):
"""
if type(value) is self.type:
return value
- if type(value) in (int, float, decimal.Decimal):
+ if type(value) in (int, long, float, decimal.Decimal):
return self.type(value)
if type(value) in (tuple, list):
raise ConversionError(name=self.name, index=index,