aboutsummaryrefslogtreecommitdiff
path: root/rpki/fields.py
diff options
context:
space:
mode:
authorRob Austein <sra@hactrn.net>2015-10-26 06:29:00 +0000
committerRob Austein <sra@hactrn.net>2015-10-26 06:29:00 +0000
commitb46deb1417dc3596e9ac9fe2fe8cc0b7f42457e7 (patch)
treeca0dc0276d1adc168bc3337ce0564c4ec4957c1b /rpki/fields.py
parent397beaf6d9900dc3b3cb612c89ebf1d57b1d16f6 (diff)
"Any programmer who fails to comply with the standard naming, formatting,
or commenting conventions should be shot. If it so happens that it is inconvenient to shoot him, then he is to be politely requested to recode his program in adherence to the above standard." -- Michael Spier, Digital Equipment Corporation svn path=/branches/tk705/; revision=6152
Diffstat (limited to 'rpki/fields.py')
-rw-r--r--rpki/fields.py204
1 files changed, 102 insertions, 102 deletions
diff --git a/rpki/fields.py b/rpki/fields.py
index a470e272..1390d4ac 100644
--- a/rpki/fields.py
+++ b/rpki/fields.py
@@ -35,78 +35,78 @@ logger = logging.getLogger(__name__)
class EnumField(models.PositiveSmallIntegerField):
- """
- An enumeration type that uses strings in Python and small integers
- in SQL.
- """
+ """
+ An enumeration type that uses strings in Python and small integers
+ in SQL.
+ """
- description = "An enumeration type"
+ description = "An enumeration type"
- __metaclass__ = models.SubfieldBase
+ __metaclass__ = models.SubfieldBase
- def __init__(self, *args, **kwargs):
- if isinstance(kwargs.get("choices"), (tuple, list)) and isinstance(kwargs["choices"][0], (str, unicode)):
- kwargs["choices"] = tuple(enumerate(kwargs["choices"], 1))
- # Might need something here to handle string-valued default parameter
- models.PositiveSmallIntegerField.__init__(self, *args, **kwargs)
- self.enum_i2s = dict(self.flatchoices)
- self.enum_s2i = dict((v, k) for k, v in self.flatchoices)
+ def __init__(self, *args, **kwargs):
+ if isinstance(kwargs.get("choices"), (tuple, list)) and isinstance(kwargs["choices"][0], (str, unicode)):
+ kwargs["choices"] = tuple(enumerate(kwargs["choices"], 1))
+ # Might need something here to handle string-valued default parameter
+ models.PositiveSmallIntegerField.__init__(self, *args, **kwargs)
+ self.enum_i2s = dict(self.flatchoices)
+ self.enum_s2i = dict((v, k) for k, v in self.flatchoices)
- def to_python(self, value):
- return self.enum_i2s.get(value, value)
+ def to_python(self, value):
+ return self.enum_i2s.get(value, value)
- def get_prep_value(self, value):
- return self.enum_s2i.get(value, value)
+ def get_prep_value(self, value):
+ return self.enum_s2i.get(value, value)
class SundialField(models.DateTimeField):
- """
- A field type for our customized datetime objects.
- """
- __metaclass__ = models.SubfieldBase
+ """
+ A field type for our customized datetime objects.
+ """
+ __metaclass__ = models.SubfieldBase
- description = "A datetime type using our customized datetime objects"
+ description = "A datetime type using our customized datetime objects"
- def to_python(self, value):
- if isinstance(value, rpki.sundial.pydatetime.datetime):
- return rpki.sundial.datetime.from_datetime(
- models.DateTimeField.to_python(self, value))
- else:
- return value
+ def to_python(self, value):
+ if isinstance(value, rpki.sundial.pydatetime.datetime):
+ return rpki.sundial.datetime.from_datetime(
+ models.DateTimeField.to_python(self, value))
+ else:
+ return value
- def get_prep_value(self, value):
- if isinstance(value, rpki.sundial.datetime):
- return value.to_datetime()
- else:
- return value
+ def get_prep_value(self, value):
+ if isinstance(value, rpki.sundial.datetime):
+ return value.to_datetime()
+ else:
+ return value
class BlobField(models.Field):
- """
- Old BLOB field type, predating Django's BinaryField type.
+ """
+ Old BLOB field type, predating Django's BinaryField type.
- Do not use, this is only here for backwards compatabilty during migrations.
- """
+ Do not use, this is only here for backwards compatabilty during migrations.
+ """
- __metaclass__ = models.SubfieldBase
- description = "Raw BLOB type without ASN.1 encoding/decoding"
+ __metaclass__ = models.SubfieldBase
+ description = "Raw BLOB type without ASN.1 encoding/decoding"
- def __init__(self, *args, **kwargs):
- self.blob_type = kwargs.pop("blob_type", None)
- kwargs["serialize"] = False
- kwargs["blank"] = True
- kwargs["default"] = None
- models.Field.__init__(self, *args, **kwargs)
+ def __init__(self, *args, **kwargs):
+ self.blob_type = kwargs.pop("blob_type", None)
+ kwargs["serialize"] = False
+ kwargs["blank"] = True
+ kwargs["default"] = None
+ models.Field.__init__(self, *args, **kwargs)
- def db_type(self, connection):
- if self.blob_type is not None:
- return self.blob_type
- elif connection.settings_dict['ENGINE'] == "django.db.backends.mysql":
- return "LONGBLOB"
- elif connection.settings_dict['ENGINE'] == "django.db.backends.posgresql":
- return "bytea"
- else:
- return "BLOB"
+ def db_type(self, connection):
+ if self.blob_type is not None:
+ return self.blob_type
+ elif connection.settings_dict['ENGINE'] == "django.db.backends.mysql":
+ return "LONGBLOB"
+ elif connection.settings_dict['ENGINE'] == "django.db.backends.posgresql":
+ return "bytea"
+ else:
+ return "BLOB"
# For reasons which now escape me, I had a few fields in the old
@@ -124,70 +124,70 @@ class BlobField(models.Field):
# backwards compatability during migrations,
class DERField(models.BinaryField):
- """
- Field class for DER objects, with automatic translation between
- ASN.1 and Python types. This is an abstract class, concrete field
- classes are derived from it.
- """
-
- def __init__(self, *args, **kwargs):
- kwargs["blank"] = True
- kwargs["default"] = None
- super(DERField, self).__init__(*args, **kwargs)
-
- def deconstruct(self):
- name, path, args, kwargs = super(DERField, self).deconstruct()
- del kwargs["blank"]
- del kwargs["default"]
- return name, path, args, kwargs
-
- def from_db_value(self, value, expression, connection, context):
- if value is not None:
- value = self.rpki_type(DER = str(value))
- return value
-
- def to_python(self, value):
- value = super(DERField, self).to_python(value)
- if value is not None and not isinstance(value, self.rpki_type):
- value = self.rpki_type(DER = str(value))
- return value
-
- def get_prep_value(self, value):
- if value is not None:
- value = value.get_DER()
- return super(DERField, self).get_prep_value(value)
+ """
+ Field class for DER objects, with automatic translation between
+ ASN.1 and Python types. This is an abstract class, concrete field
+ classes are derived from it.
+ """
+
+ def __init__(self, *args, **kwargs):
+ kwargs["blank"] = True
+ kwargs["default"] = None
+ super(DERField, self).__init__(*args, **kwargs)
+
+ def deconstruct(self):
+ name, path, args, kwargs = super(DERField, self).deconstruct()
+ del kwargs["blank"]
+ del kwargs["default"]
+ return name, path, args, kwargs
+
+ def from_db_value(self, value, expression, connection, context):
+ if value is not None:
+ value = self.rpki_type(DER = str(value))
+ return value
+
+ def to_python(self, value):
+ value = super(DERField, self).to_python(value)
+ if value is not None and not isinstance(value, self.rpki_type):
+ value = self.rpki_type(DER = str(value))
+ return value
+
+ def get_prep_value(self, value):
+ if value is not None:
+ value = value.get_DER()
+ return super(DERField, self).get_prep_value(value)
class CertificateField(DERField):
- description = "X.509 certificate"
- rpki_type = rpki.x509.X509
+ description = "X.509 certificate"
+ rpki_type = rpki.x509.X509
class RSAPrivateKeyField(DERField):
- description = "RSA keypair"
- rpki_type = rpki.x509.RSA
+ description = "RSA keypair"
+ rpki_type = rpki.x509.RSA
KeyField = RSAPrivateKeyField
class PublicKeyField(DERField):
- description = "RSA keypair"
- rpki_type = rpki.x509.PublicKey
+ description = "RSA keypair"
+ rpki_type = rpki.x509.PublicKey
class CRLField(DERField):
- description = "Certificate Revocation List"
- rpki_type = rpki.x509.CRL
+ description = "Certificate Revocation List"
+ rpki_type = rpki.x509.CRL
class PKCS10Field(DERField):
- description = "PKCS #10 certificate request"
- rpki_type = rpki.x509.PKCS10
+ description = "PKCS #10 certificate request"
+ rpki_type = rpki.x509.PKCS10
class ManifestField(DERField):
- description = "RPKI Manifest"
- rpki_type = rpki.x509.SignedManifest
+ description = "RPKI Manifest"
+ rpki_type = rpki.x509.SignedManifest
class ROAField(DERField):
- description = "ROA"
- rpki_type = rpki.x509.ROA
+ description = "ROA"
+ rpki_type = rpki.x509.ROA
class GhostbusterField(DERField):
- description = "Ghostbuster Record"
- rpki_type = rpki.x509.Ghostbuster
+ description = "Ghostbuster Record"
+ rpki_type = rpki.x509.Ghostbuster