BooleanField = fields.BooleanField
UnspecifiedDefault = fields.UnspecifiedDefault
IntegerField = fields.IntegerField
+NonNegativeIntegerField = fields.NonNegativeIntegerField
UUIDField = fields.UUIDField
FloatField = fields.FloatField
+NonNegativeFloatField = fields.NonNegativeFloatField
StringField = fields.StringField
SensitiveStringField = fields.SensitiveStringField
EnumField = fields.EnumField
IPAddressField = fields.IPAddressField
IPV4AddressField = fields.IPV4AddressField
IPV6AddressField = fields.IPV6AddressField
+IPV4AndV6AddressField = fields.IPV4AndV6AddressField
IPNetworkField = fields.IPNetworkField
IPV4NetworkField = fields.IPV4NetworkField
IPV6NetworkField = fields.IPV6NetworkField
return cls.ALL[index]
-class IPV4AndV6Address(IPAddress):
- @staticmethod
- def coerce(obj, attr, value):
- result = IPAddress.coerce(obj, attr, value)
- if result.version != 4 and result.version != 6:
- raise ValueError(_('Network "%(val)s" is not valid '
- 'in field %(attr)s') %
- {'val': value, 'attr': attr})
- return result
-
-
class NetworkModel(FieldType):
@staticmethod
def coerce(obj, attr, value):
','.join([str(vif['id']) for vif in value]))
-class NonNegativeFloat(FieldType):
- @staticmethod
- def coerce(obj, attr, value):
- v = float(value)
- if v < 0:
- raise ValueError(_('Value must be >= 0 for field %s') % attr)
- return v
-
-
-class NonNegativeInteger(FieldType):
- @staticmethod
- def coerce(obj, attr, value):
- v = int(value)
- if v < 0:
- raise ValueError(_('Value must be >= 0 for field %s') % attr)
- return v
-
-
class AddressBase(FieldType):
@staticmethod
def coerce(obj, attr, value):
AUTO_TYPE = InstancePowerState()
-class IPV4AndV6AddressField(AutoTypedField):
- AUTO_TYPE = IPV4AndV6Address()
-
-
class ListOfIntegersField(AutoTypedField):
AUTO_TYPE = List(fields.Integer())
-
-
-class NonNegativeFloatField(AutoTypedField):
- AUTO_TYPE = NonNegativeFloat()
-
-
-class NonNegativeIntegerField(AutoTypedField):
- AUTO_TYPE = NonNegativeInteger()
class TestNonNegativeInteger(TestInteger):
def setUp(self):
super(TestNonNegativeInteger, self).setUp()
- self.field = fields.Field(fields.NonNegativeInteger())
+ self.field = fields.NonNegativeIntegerField()
self.coerce_bad_values.extend(['-2', '4.2'])
class TestNonNegativeFloat(TestFloat):
def setUp(self):
super(TestNonNegativeFloat, self).setUp()
- self.field = fields.Field(fields.NonNegativeFloat())
+ self.field = fields.NonNegativeFloatField()
self.coerce_bad_values.extend(['-4.2'])