On Fri, 2011-07-15 at 17:26 -0400, Rob Crittenden wrote: > Martin Kosek wrote: > > Passing a number of "long" type to IPA Int parameter invokes > > user-unfriendly error message about incompatible types. This patch > > improves Int parameter with user understandable message along with > > maximum value he can pass. > > > > https://fedorahosted.org/freeipa/ticket/1346 > > nack. We need to limit Int to 32-bit values because that is what XML-RPC > supports. So if maxvalue isn't set we need to compare against MAXINT and > not sys.maxint. > > rob
You are right. Sending a fixed patch. Martin
>From ada8023da76e12139593559ddc9b78865faf26bd Mon Sep 17 00:00:00 2001 From: Martin Kosek <mko...@redhat.com> Date: Thu, 14 Jul 2011 09:14:07 +0200 Subject: [PATCH] Improve long integer type validation Passing a number of "long" type to IPA Int parameter invokes user-unfriendly error message about incompatible types. This patch improves Int parameter with user understandable message along with maximum value he can pass. https://fedorahosted.org/freeipa/ticket/1346 --- ipalib/parameters.py | 24 ++++++++++++++++++++++++ 1 files changed, 24 insertions(+), 0 deletions(-) diff --git a/ipalib/parameters.py b/ipalib/parameters.py index da3b05cf731578a70f32f5b3d922c670c74cb898..982b192a7776f575ac97e7ed2178c9910f0915e4 100644 --- a/ipalib/parameters.py +++ b/ipalib/parameters.py @@ -1066,6 +1066,30 @@ class Int(Number): maxvalue=self.maxvalue, ) + def _validate_scalar(self, value, index=None): + if type(value) is long: + # too big number for int type to hold + if self.maxvalue is not None: + raise ValidationError( + name=self.name, + value=value, + index=index, + error=_('can be at most %(maxvalue)d') % dict( + maxvalue=self.maxvalue, + ) + ) + else: + raise ValidationError( + name=self.name, + value=value, + index=index, + error=_('can be at most %(maxvalue)d') % dict( + maxvalue=MAXINT, + ) + ) + super(Int, self)._validate_scalar(value, index) + + class Float(Number): """ A parameter for floating-point values (stored in the ``float`` type). -- 1.7.6
_______________________________________________ Freeipa-devel mailing list Freeipa-devel@redhat.com https://www.redhat.com/mailman/listinfo/freeipa-devel