diff options
Diffstat (limited to 'rpki/irdb')
-rw-r--r-- | rpki/irdb/migrations/0001_initial.py | 595 | ||||
-rw-r--r-- | rpki/irdb/migrations/__init__.py | 0 | ||||
-rw-r--r-- | rpki/irdb/models.py | 124 |
3 files changed, 614 insertions, 105 deletions
diff --git a/rpki/irdb/migrations/0001_initial.py b/rpki/irdb/migrations/0001_initial.py new file mode 100644 index 00000000..bc0b9743 --- /dev/null +++ b/rpki/irdb/migrations/0001_initial.py @@ -0,0 +1,595 @@ +# -*- coding: utf-8 -*- +from south.utils import datetime_utils as datetime +from south.db import db +from south.v2 import SchemaMigration +from django.db import models + + +class Migration(SchemaMigration): + + def forwards(self, orm): + # Adding model 'ServerCA' + db.create_table(u'irdb_serverca', ( + (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), + ('certificate', self.gf('rpki.fields.CertificateField')(default=None, blank=True)), + ('private_key', self.gf('rpki.fields.KeyField')(default=None, blank=True)), + ('latest_crl', self.gf('rpki.fields.CRLField')(default=None, blank=True)), + ('next_serial', self.gf('django.db.models.fields.BigIntegerField')(default=1)), + ('next_crl_number', self.gf('django.db.models.fields.BigIntegerField')(default=1)), + ('last_crl_update', self.gf('rpki.fields.SundialField')()), + ('next_crl_update', self.gf('rpki.fields.SundialField')()), + )) + db.send_create_signal(u'irdb', ['ServerCA']) + + # Adding model 'ResourceHolderCA' + db.create_table(u'irdb_resourceholderca', ( + (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), + ('certificate', self.gf('rpki.fields.CertificateField')(default=None, blank=True)), + ('private_key', self.gf('rpki.fields.KeyField')(default=None, blank=True)), + ('latest_crl', self.gf('rpki.fields.CRLField')(default=None, blank=True)), + ('next_serial', self.gf('django.db.models.fields.BigIntegerField')(default=1)), + ('next_crl_number', self.gf('django.db.models.fields.BigIntegerField')(default=1)), + ('last_crl_update', self.gf('rpki.fields.SundialField')()), + ('next_crl_update', self.gf('rpki.fields.SundialField')()), + ('handle', self.gf('rpki.irdb.models.HandleField')(unique=True, max_length=120)), + )) + db.send_create_signal(u'irdb', ['ResourceHolderCA']) + + # Adding model 'HostedCA' + db.create_table(u'irdb_hostedca', ( + (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), + ('certificate', self.gf('rpki.fields.CertificateField')(default=None, blank=True)), + ('issuer', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['irdb.ServerCA'])), + ('hosted', self.gf('django.db.models.fields.related.OneToOneField')(related_name='hosted_by', unique=True, to=orm['irdb.ResourceHolderCA'])), + )) + db.send_create_signal(u'irdb', ['HostedCA']) + + # Adding unique constraint on 'HostedCA', fields ['issuer', 'hosted'] + db.create_unique(u'irdb_hostedca', ['issuer_id', 'hosted_id']) + + # Adding model 'ServerRevocation' + db.create_table(u'irdb_serverrevocation', ( + (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), + ('serial', self.gf('django.db.models.fields.BigIntegerField')()), + ('revoked', self.gf('rpki.fields.SundialField')()), + ('expires', self.gf('rpki.fields.SundialField')()), + ('issuer', self.gf('django.db.models.fields.related.ForeignKey')(related_name='revocations', to=orm['irdb.ServerCA'])), + )) + db.send_create_signal(u'irdb', ['ServerRevocation']) + + # Adding unique constraint on 'ServerRevocation', fields ['issuer', 'serial'] + db.create_unique(u'irdb_serverrevocation', ['issuer_id', 'serial']) + + # Adding model 'ResourceHolderRevocation' + db.create_table(u'irdb_resourceholderrevocation', ( + (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), + ('serial', self.gf('django.db.models.fields.BigIntegerField')()), + ('revoked', self.gf('rpki.fields.SundialField')()), + ('expires', self.gf('rpki.fields.SundialField')()), + ('issuer', self.gf('django.db.models.fields.related.ForeignKey')(related_name='revocations', to=orm['irdb.ResourceHolderCA'])), + )) + db.send_create_signal(u'irdb', ['ResourceHolderRevocation']) + + # Adding unique constraint on 'ResourceHolderRevocation', fields ['issuer', 'serial'] + db.create_unique(u'irdb_resourceholderrevocation', ['issuer_id', 'serial']) + + # Adding model 'ServerEE' + db.create_table(u'irdb_serveree', ( + (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), + ('certificate', self.gf('rpki.fields.CertificateField')(default=None, blank=True)), + ('private_key', self.gf('rpki.fields.KeyField')(default=None, blank=True)), + ('issuer', self.gf('django.db.models.fields.related.ForeignKey')(related_name='ee_certificates', to=orm['irdb.ServerCA'])), + ('purpose', self.gf('rpki.fields.EnumField')()), + )) + db.send_create_signal(u'irdb', ['ServerEE']) + + # Adding unique constraint on 'ServerEE', fields ['issuer', 'purpose'] + db.create_unique(u'irdb_serveree', ['issuer_id', 'purpose']) + + # Adding model 'Referral' + db.create_table(u'irdb_referral', ( + (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), + ('certificate', self.gf('rpki.fields.CertificateField')(default=None, blank=True)), + ('private_key', self.gf('rpki.fields.KeyField')(default=None, blank=True)), + ('issuer', self.gf('django.db.models.fields.related.OneToOneField')(related_name='referral_certificate', unique=True, to=orm['irdb.ResourceHolderCA'])), + )) + db.send_create_signal(u'irdb', ['Referral']) + + # Adding model 'Turtle' + db.create_table(u'irdb_turtle', ( + (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), + ('service_uri', self.gf('django.db.models.fields.CharField')(max_length=255)), + )) + db.send_create_signal(u'irdb', ['Turtle']) + + # Adding model 'Rootd' + db.create_table(u'irdb_rootd', ( + (u'turtle_ptr', self.gf('django.db.models.fields.related.OneToOneField')(to=orm['irdb.Turtle'], unique=True, primary_key=True)), + ('certificate', self.gf('rpki.fields.CertificateField')(default=None, blank=True)), + ('private_key', self.gf('rpki.fields.KeyField')(default=None, blank=True)), + ('issuer', self.gf('django.db.models.fields.related.OneToOneField')(related_name='rootd', unique=True, to=orm['irdb.ResourceHolderCA'])), + )) + db.send_create_signal(u'irdb', ['Rootd']) + + # Adding model 'BSC' + db.create_table(u'irdb_bsc', ( + (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), + ('certificate', self.gf('rpki.fields.CertificateField')(default=None, blank=True)), + ('issuer', self.gf('django.db.models.fields.related.ForeignKey')(related_name='bscs', to=orm['irdb.ResourceHolderCA'])), + ('handle', self.gf('rpki.irdb.models.HandleField')(max_length=120)), + ('pkcs10', self.gf('rpki.fields.PKCS10Field')(default=None, blank=True)), + )) + db.send_create_signal(u'irdb', ['BSC']) + + # Adding unique constraint on 'BSC', fields ['issuer', 'handle'] + db.create_unique(u'irdb_bsc', ['issuer_id', 'handle']) + + # Adding model 'Child' + db.create_table(u'irdb_child', ( + (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), + ('certificate', self.gf('rpki.fields.CertificateField')(default=None, blank=True)), + ('handle', self.gf('rpki.irdb.models.HandleField')(max_length=120)), + ('ta', self.gf('rpki.fields.CertificateField')(default=None, blank=True)), + ('valid_until', self.gf('rpki.fields.SundialField')()), + ('issuer', self.gf('django.db.models.fields.related.ForeignKey')(related_name='children', to=orm['irdb.ResourceHolderCA'])), + ('name', self.gf('django.db.models.fields.TextField')(null=True, blank=True)), + )) + db.send_create_signal(u'irdb', ['Child']) + + # Adding unique constraint on 'Child', fields ['issuer', 'handle'] + db.create_unique(u'irdb_child', ['issuer_id', 'handle']) + + # Adding model 'ChildASN' + db.create_table(u'irdb_childasn', ( + (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), + ('start_as', self.gf('django.db.models.fields.BigIntegerField')()), + ('end_as', self.gf('django.db.models.fields.BigIntegerField')()), + ('child', self.gf('django.db.models.fields.related.ForeignKey')(related_name='asns', to=orm['irdb.Child'])), + )) + db.send_create_signal(u'irdb', ['ChildASN']) + + # Adding unique constraint on 'ChildASN', fields ['child', 'start_as', 'end_as'] + db.create_unique(u'irdb_childasn', ['child_id', 'start_as', 'end_as']) + + # Adding model 'ChildNet' + db.create_table(u'irdb_childnet', ( + (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), + ('start_ip', self.gf('django.db.models.fields.CharField')(max_length=40)), + ('end_ip', self.gf('django.db.models.fields.CharField')(max_length=40)), + ('version', self.gf('rpki.fields.EnumField')()), + ('child', self.gf('django.db.models.fields.related.ForeignKey')(related_name='address_ranges', to=orm['irdb.Child'])), + )) + db.send_create_signal(u'irdb', ['ChildNet']) + + # Adding unique constraint on 'ChildNet', fields ['child', 'start_ip', 'end_ip', 'version'] + db.create_unique(u'irdb_childnet', ['child_id', 'start_ip', 'end_ip', 'version']) + + # Adding model 'Parent' + db.create_table(u'irdb_parent', ( + (u'turtle_ptr', self.gf('django.db.models.fields.related.OneToOneField')(to=orm['irdb.Turtle'], unique=True, primary_key=True)), + ('certificate', self.gf('rpki.fields.CertificateField')(default=None, blank=True)), + ('handle', self.gf('rpki.irdb.models.HandleField')(max_length=120)), + ('ta', self.gf('rpki.fields.CertificateField')(default=None, blank=True)), + ('issuer', self.gf('django.db.models.fields.related.ForeignKey')(related_name='parents', to=orm['irdb.ResourceHolderCA'])), + ('parent_handle', self.gf('rpki.irdb.models.HandleField')(max_length=120)), + ('child_handle', self.gf('rpki.irdb.models.HandleField')(max_length=120)), + ('repository_type', self.gf('rpki.fields.EnumField')()), + ('referrer', self.gf('rpki.irdb.models.HandleField')(max_length=120, null=True, blank=True)), + ('referral_authorization', self.gf('rpki.irdb.models.SignedReferralField')(default=None, null=True, blank=True)), + )) + db.send_create_signal(u'irdb', ['Parent']) + + # Adding unique constraint on 'Parent', fields ['issuer', 'handle'] + db.create_unique(u'irdb_parent', ['issuer_id', 'handle']) + + # Adding model 'ROARequest' + db.create_table(u'irdb_roarequest', ( + (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), + ('issuer', self.gf('django.db.models.fields.related.ForeignKey')(related_name='roa_requests', to=orm['irdb.ResourceHolderCA'])), + ('asn', self.gf('django.db.models.fields.BigIntegerField')()), + )) + db.send_create_signal(u'irdb', ['ROARequest']) + + # Adding model 'ROARequestPrefix' + db.create_table(u'irdb_roarequestprefix', ( + (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), + ('roa_request', self.gf('django.db.models.fields.related.ForeignKey')(related_name='prefixes', to=orm['irdb.ROARequest'])), + ('version', self.gf('rpki.fields.EnumField')()), + ('prefix', self.gf('django.db.models.fields.CharField')(max_length=40)), + ('prefixlen', self.gf('django.db.models.fields.PositiveSmallIntegerField')()), + ('max_prefixlen', self.gf('django.db.models.fields.PositiveSmallIntegerField')()), + )) + db.send_create_signal(u'irdb', ['ROARequestPrefix']) + + # Adding unique constraint on 'ROARequestPrefix', fields ['roa_request', 'version', 'prefix', 'prefixlen', 'max_prefixlen'] + db.create_unique(u'irdb_roarequestprefix', ['roa_request_id', 'version', 'prefix', 'prefixlen', 'max_prefixlen']) + + # Adding model 'GhostbusterRequest' + db.create_table(u'irdb_ghostbusterrequest', ( + (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), + ('issuer', self.gf('django.db.models.fields.related.ForeignKey')(related_name='ghostbuster_requests', to=orm['irdb.ResourceHolderCA'])), + ('parent', self.gf('django.db.models.fields.related.ForeignKey')(related_name='ghostbuster_requests', null=True, to=orm['irdb.Parent'])), + ('vcard', self.gf('django.db.models.fields.TextField')()), + )) + db.send_create_signal(u'irdb', ['GhostbusterRequest']) + + # Adding model 'EECertificateRequest' + db.create_table(u'irdb_eecertificaterequest', ( + (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), + ('valid_until', self.gf('rpki.fields.SundialField')()), + ('issuer', self.gf('django.db.models.fields.related.ForeignKey')(related_name='ee_certificate_requests', to=orm['irdb.ResourceHolderCA'])), + ('pkcs10', self.gf('rpki.fields.PKCS10Field')(default=None, blank=True)), + ('gski', self.gf('django.db.models.fields.CharField')(max_length=27)), + ('cn', self.gf('django.db.models.fields.CharField')(max_length=64)), + ('sn', self.gf('django.db.models.fields.CharField')(max_length=64)), + ('eku', self.gf('django.db.models.fields.TextField')(null=True)), + )) + db.send_create_signal(u'irdb', ['EECertificateRequest']) + + # Adding unique constraint on 'EECertificateRequest', fields ['issuer', 'gski'] + db.create_unique(u'irdb_eecertificaterequest', ['issuer_id', 'gski']) + + # Adding model 'EECertificateRequestASN' + db.create_table(u'irdb_eecertificaterequestasn', ( + (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), + ('start_as', self.gf('django.db.models.fields.BigIntegerField')()), + ('end_as', self.gf('django.db.models.fields.BigIntegerField')()), + ('ee_certificate_request', self.gf('django.db.models.fields.related.ForeignKey')(related_name='asns', to=orm['irdb.EECertificateRequest'])), + )) + db.send_create_signal(u'irdb', ['EECertificateRequestASN']) + + # Adding unique constraint on 'EECertificateRequestASN', fields ['ee_certificate_request', 'start_as', 'end_as'] + db.create_unique(u'irdb_eecertificaterequestasn', ['ee_certificate_request_id', 'start_as', 'end_as']) + + # Adding model 'EECertificateRequestNet' + db.create_table(u'irdb_eecertificaterequestnet', ( + (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), + ('start_ip', self.gf('django.db.models.fields.CharField')(max_length=40)), + ('end_ip', self.gf('django.db.models.fields.CharField')(max_length=40)), + ('version', self.gf('rpki.fields.EnumField')()), + ('ee_certificate_request', self.gf('django.db.models.fields.related.ForeignKey')(related_name='address_ranges', to=orm['irdb.EECertificateRequest'])), + )) + db.send_create_signal(u'irdb', ['EECertificateRequestNet']) + + # Adding unique constraint on 'EECertificateRequestNet', fields ['ee_certificate_request', 'start_ip', 'end_ip', 'version'] + db.create_unique(u'irdb_eecertificaterequestnet', ['ee_certificate_request_id', 'start_ip', 'end_ip', 'version']) + + # Adding model 'Repository' + db.create_table(u'irdb_repository', ( + (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), + ('certificate', self.gf('rpki.fields.CertificateField')(default=None, blank=True)), + ('handle', self.gf('rpki.irdb.models.HandleField')(max_length=120)), + ('ta', self.gf('rpki.fields.CertificateField')(default=None, blank=True)), + ('issuer', self.gf('django.db.models.fields.related.ForeignKey')(related_name='repositories', to=orm['irdb.ResourceHolderCA'])), + ('client_handle', self.gf('rpki.irdb.models.HandleField')(max_length=120)), + ('service_uri', self.gf('django.db.models.fields.CharField')(max_length=255)), + ('sia_base', self.gf('django.db.models.fields.TextField')()), + ('turtle', self.gf('django.db.models.fields.related.OneToOneField')(related_name='repository', unique=True, to=orm['irdb.Turtle'])), + )) + db.send_create_signal(u'irdb', ['Repository']) + + # Adding unique constraint on 'Repository', fields ['issuer', 'handle'] + db.create_unique(u'irdb_repository', ['issuer_id', 'handle']) + + # Adding model 'Client' + db.create_table(u'irdb_client', ( + (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), + ('certificate', self.gf('rpki.fields.CertificateField')(default=None, blank=True)), + ('handle', self.gf('rpki.irdb.models.HandleField')(max_length=120)), + ('ta', self.gf('rpki.fields.CertificateField')(default=None, blank=True)), + ('issuer', self.gf('django.db.models.fields.related.ForeignKey')(related_name='clients', to=orm['irdb.ServerCA'])), + ('sia_base', self.gf('django.db.models.fields.TextField')()), + ('parent_handle', self.gf('rpki.irdb.models.HandleField')(max_length=120)), + )) + db.send_create_signal(u'irdb', ['Client']) + + # Adding unique constraint on 'Client', fields ['issuer', 'handle'] + db.create_unique(u'irdb_client', ['issuer_id', 'handle']) + + + def backwards(self, orm): + # Removing unique constraint on 'Client', fields ['issuer', 'handle'] + db.delete_unique(u'irdb_client', ['issuer_id', 'handle']) + + # Removing unique constraint on 'Repository', fields ['issuer', 'handle'] + db.delete_unique(u'irdb_repository', ['issuer_id', 'handle']) + + # Removing unique constraint on 'EECertificateRequestNet', fields ['ee_certificate_request', 'start_ip', 'end_ip', 'version'] + db.delete_unique(u'irdb_eecertificaterequestnet', ['ee_certificate_request_id', 'start_ip', 'end_ip', 'version']) + + # Removing unique constraint on 'EECertificateRequestASN', fields ['ee_certificate_request', 'start_as', 'end_as'] + db.delete_unique(u'irdb_eecertificaterequestasn', ['ee_certificate_request_id', 'start_as', 'end_as']) + + # Removing unique constraint on 'EECertificateRequest', fields ['issuer', 'gski'] + db.delete_unique(u'irdb_eecertificaterequest', ['issuer_id', 'gski']) + + # Removing unique constraint on 'ROARequestPrefix', fields ['roa_request', 'version', 'prefix', 'prefixlen', 'max_prefixlen'] + db.delete_unique(u'irdb_roarequestprefix', ['roa_request_id', 'version', 'prefix', 'prefixlen', 'max_prefixlen']) + + # Removing unique constraint on 'Parent', fields ['issuer', 'handle'] + db.delete_unique(u'irdb_parent', ['issuer_id', 'handle']) + + # Removing unique constraint on 'ChildNet', fields ['child', 'start_ip', 'end_ip', 'version'] + db.delete_unique(u'irdb_childnet', ['child_id', 'start_ip', 'end_ip', 'version']) + + # Removing unique constraint on 'ChildASN', fields ['child', 'start_as', 'end_as'] + db.delete_unique(u'irdb_childasn', ['child_id', 'start_as', 'end_as']) + + # Removing unique constraint on 'Child', fields ['issuer', 'handle'] + db.delete_unique(u'irdb_child', ['issuer_id', 'handle']) + + # Removing unique constraint on 'BSC', fields ['issuer', 'handle'] + db.delete_unique(u'irdb_bsc', ['issuer_id', 'handle']) + + # Removing unique constraint on 'ServerEE', fields ['issuer', 'purpose'] + db.delete_unique(u'irdb_serveree', ['issuer_id', 'purpose']) + + # Removing unique constraint on 'ResourceHolderRevocation', fields ['issuer', 'serial'] + db.delete_unique(u'irdb_resourceholderrevocation', ['issuer_id', 'serial']) + + # Removing unique constraint on 'ServerRevocation', fields ['issuer', 'serial'] + db.delete_unique(u'irdb_serverrevocation', ['issuer_id', 'serial']) + + # Removing unique constraint on 'HostedCA', fields ['issuer', 'hosted'] + db.delete_unique(u'irdb_hostedca', ['issuer_id', 'hosted_id']) + + # Deleting model 'ServerCA' + db.delete_table(u'irdb_serverca') + + # Deleting model 'ResourceHolderCA' + db.delete_table(u'irdb_resourceholderca') + + # Deleting model 'HostedCA' + db.delete_table(u'irdb_hostedca') + + # Deleting model 'ServerRevocation' + db.delete_table(u'irdb_serverrevocation') + + # Deleting model 'ResourceHolderRevocation' + db.delete_table(u'irdb_resourceholderrevocation') + + # Deleting model 'ServerEE' + db.delete_table(u'irdb_serveree') + + # Deleting model 'Referral' + db.delete_table(u'irdb_referral') + + # Deleting model 'Turtle' + db.delete_table(u'irdb_turtle') + + # Deleting model 'Rootd' + db.delete_table(u'irdb_rootd') + + # Deleting model 'BSC' + db.delete_table(u'irdb_bsc') + + # Deleting model 'Child' + db.delete_table(u'irdb_child') + + # Deleting model 'ChildASN' + db.delete_table(u'irdb_childasn') + + # Deleting model 'ChildNet' + db.delete_table(u'irdb_childnet') + + # Deleting model 'Parent' + db.delete_table(u'irdb_parent') + + # Deleting model 'ROARequest' + db.delete_table(u'irdb_roarequest') + + # Deleting model 'ROARequestPrefix' + db.delete_table(u'irdb_roarequestprefix') + + # Deleting model 'GhostbusterRequest' + db.delete_table(u'irdb_ghostbusterrequest') + + # Deleting model 'EECertificateRequest' + db.delete_table(u'irdb_eecertificaterequest') + + # Deleting model 'EECertificateRequestASN' + db.delete_table(u'irdb_eecertificaterequestasn') + + # Deleting model 'EECertificateRequestNet' + db.delete_table(u'irdb_eecertificaterequestnet') + + # Deleting model 'Repository' + db.delete_table(u'irdb_repository') + + # Deleting model 'Client' + db.delete_table(u'irdb_client') + + + models = { + u'irdb.bsc': { + 'Meta': {'unique_together': "(('issuer', 'handle'),)", 'object_name': 'BSC'}, + 'certificate': ('rpki.fields.CertificateField', [], {'default': 'None', 'blank': 'True'}), + 'handle': ('rpki.irdb.models.HandleField', [], {'max_length': '120'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'issuer': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'bscs'", 'to': u"orm['irdb.ResourceHolderCA']"}), + 'pkcs10': ('rpki.fields.PKCS10Field', [], {'default': 'None', 'blank': 'True'}) + }, + u'irdb.child': { + 'Meta': {'unique_together': "(('issuer', 'handle'),)", 'object_name': 'Child'}, + 'certificate': ('rpki.fields.CertificateField', [], {'default': 'None', 'blank': 'True'}), + 'handle': ('rpki.irdb.models.HandleField', [], {'max_length': '120'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'issuer': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'children'", 'to': u"orm['irdb.ResourceHolderCA']"}), + 'name': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'ta': ('rpki.fields.CertificateField', [], {'default': 'None', 'blank': 'True'}), + 'valid_until': ('rpki.fields.SundialField', [], {}) + }, + u'irdb.childasn': { + 'Meta': {'unique_together': "(('child', 'start_as', 'end_as'),)", 'object_name': 'ChildASN'}, + 'child': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'asns'", 'to': u"orm['irdb.Child']"}), + 'end_as': ('django.db.models.fields.BigIntegerField', [], {}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'start_as': ('django.db.models.fields.BigIntegerField', [], {}) + }, + u'irdb.childnet': { + 'Meta': {'unique_together': "(('child', 'start_ip', 'end_ip', 'version'),)", 'object_name': 'ChildNet'}, + 'child': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'address_ranges'", 'to': u"orm['irdb.Child']"}), + 'end_ip': ('django.db.models.fields.CharField', [], {'max_length': '40'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'start_ip': ('django.db.models.fields.CharField', [], {'max_length': '40'}), + 'version': ('rpki.fields.EnumField', [], {}) + }, + u'irdb.client': { + 'Meta': {'unique_together': "(('issuer', 'handle'),)", 'object_name': 'Client'}, + 'certificate': ('rpki.fields.CertificateField', [], {'default': 'None', 'blank': 'True'}), + 'handle': ('rpki.irdb.models.HandleField', [], {'max_length': '120'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'issuer': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'clients'", 'to': u"orm['irdb.ServerCA']"}), + 'parent_handle': ('rpki.irdb.models.HandleField', [], {'max_length': '120'}), + 'sia_base': ('django.db.models.fields.TextField', [], {}), + 'ta': ('rpki.fields.CertificateField', [], {'default': 'None', 'blank': 'True'}) + }, + u'irdb.eecertificaterequest': { + 'Meta': {'unique_together': "(('issuer', 'gski'),)", 'object_name': 'EECertificateRequest'}, + 'cn': ('django.db.models.fields.CharField', [], {'max_length': '64'}), + 'eku': ('django.db.models.fields.TextField', [], {'null': 'True'}), + 'gski': ('django.db.models.fields.CharField', [], {'max_length': '27'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'issuer': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'ee_certificate_requests'", 'to': u"orm['irdb.ResourceHolderCA']"}), + 'pkcs10': ('rpki.fields.PKCS10Field', [], {'default': 'None', 'blank': 'True'}), + 'sn': ('django.db.models.fields.CharField', [], {'max_length': '64'}), + 'valid_until': ('rpki.fields.SundialField', [], {}) + }, + u'irdb.eecertificaterequestasn': { + 'Meta': {'unique_together': "(('ee_certificate_request', 'start_as', 'end_as'),)", 'object_name': 'EECertificateRequestASN'}, + 'ee_certificate_request': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'asns'", 'to': u"orm['irdb.EECertificateRequest']"}), + 'end_as': ('django.db.models.fields.BigIntegerField', [], {}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'start_as': ('django.db.models.fields.BigIntegerField', [], {}) + }, + u'irdb.eecertificaterequestnet': { + 'Meta': {'unique_together': "(('ee_certificate_request', 'start_ip', 'end_ip', 'version'),)", 'object_name': 'EECertificateRequestNet'}, + 'ee_certificate_request': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'address_ranges'", 'to': u"orm['irdb.EECertificateRequest']"}), + 'end_ip': ('django.db.models.fields.CharField', [], {'max_length': '40'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'start_ip': ('django.db.models.fields.CharField', [], {'max_length': '40'}), + 'version': ('rpki.fields.EnumField', [], {}) + }, + u'irdb.ghostbusterrequest': { + 'Meta': {'object_name': 'GhostbusterRequest'}, + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'issuer': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'ghostbuster_requests'", 'to': u"orm['irdb.ResourceHolderCA']"}), + 'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'ghostbuster_requests'", 'null': 'True', 'to': u"orm['irdb.Parent']"}), + 'vcard': ('django.db.models.fields.TextField', [], {}) + }, + u'irdb.hostedca': { + 'Meta': {'unique_together': "(('issuer', 'hosted'),)", 'object_name': 'HostedCA'}, + 'certificate': ('rpki.fields.CertificateField', [], {'default': 'None', 'blank': 'True'}), + 'hosted': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'hosted_by'", 'unique': 'True', 'to': u"orm['irdb.ResourceHolderCA']"}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'issuer': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['irdb.ServerCA']"}) + }, + u'irdb.parent': { + 'Meta': {'unique_together': "(('issuer', 'handle'),)", 'object_name': 'Parent', '_ormbases': [u'irdb.Turtle']}, + 'certificate': ('rpki.fields.CertificateField', [], {'default': 'None', 'blank': 'True'}), + 'child_handle': ('rpki.irdb.models.HandleField', [], {'max_length': '120'}), + 'handle': ('rpki.irdb.models.HandleField', [], {'max_length': '120'}), + 'issuer': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'parents'", 'to': u"orm['irdb.ResourceHolderCA']"}), + 'parent_handle': ('rpki.irdb.models.HandleField', [], {'max_length': '120'}), + 'referral_authorization': ('rpki.irdb.models.SignedReferralField', [], {'default': 'None', 'null': 'True', 'blank': 'True'}), + 'referrer': ('rpki.irdb.models.HandleField', [], {'max_length': '120', 'null': 'True', 'blank': 'True'}), + 'repository_type': ('rpki.fields.EnumField', [], {}), + 'ta': ('rpki.fields.CertificateField', [], {'default': 'None', 'blank': 'True'}), + u'turtle_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': u"orm['irdb.Turtle']", 'unique': 'True', 'primary_key': 'True'}) + }, + u'irdb.referral': { + 'Meta': {'object_name': 'Referral'}, + 'certificate': ('rpki.fields.CertificateField', [], {'default': 'None', 'blank': 'True'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'issuer': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'referral_certificate'", 'unique': 'True', 'to': u"orm['irdb.ResourceHolderCA']"}), + 'private_key': ('rpki.fields.KeyField', [], {'default': 'None', 'blank': 'True'}) + }, + u'irdb.repository': { + 'Meta': {'unique_together': "(('issuer', 'handle'),)", 'object_name': 'Repository'}, + 'certificate': ('rpki.fields.CertificateField', [], {'default': 'None', 'blank': 'True'}), + 'client_handle': ('rpki.irdb.models.HandleField', [], {'max_length': '120'}), + 'handle': ('rpki.irdb.models.HandleField', [], {'max_length': '120'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'issuer': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'repositories'", 'to': u"orm['irdb.ResourceHolderCA']"}), + 'service_uri': ('django.db.models.fields.CharField', [], {'max_length': '255'}), + 'sia_base': ('django.db.models.fields.TextField', [], {}), + 'ta': ('rpki.fields.CertificateField', [], {'default': 'None', 'blank': 'True'}), + 'turtle': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'repository'", 'unique': 'True', 'to': u"orm['irdb.Turtle']"}) + }, + u'irdb.resourceholderca': { + 'Meta': {'object_name': 'ResourceHolderCA'}, + 'certificate': ('rpki.fields.CertificateField', [], {'default': 'None', 'blank': 'True'}), + 'handle': ('rpki.irdb.models.HandleField', [], {'unique': 'True', 'max_length': '120'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'last_crl_update': ('rpki.fields.SundialField', [], {}), + 'latest_crl': ('rpki.fields.CRLField', [], {'default': 'None', 'blank': 'True'}), + 'next_crl_number': ('django.db.models.fields.BigIntegerField', [], {'default': '1'}), + 'next_crl_update': ('rpki.fields.SundialField', [], {}), + 'next_serial': ('django.db.models.fields.BigIntegerField', [], {'default': '1'}), + 'private_key': ('rpki.fields.KeyField', [], {'default': 'None', 'blank': 'True'}) + }, + u'irdb.resourceholderrevocation': { + 'Meta': {'unique_together': "(('issuer', 'serial'),)", 'object_name': 'ResourceHolderRevocation'}, + 'expires': ('rpki.fields.SundialField', [], {}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'issuer': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'revocations'", 'to': u"orm['irdb.ResourceHolderCA']"}), + 'revoked': ('rpki.fields.SundialField', [], {}), + 'serial': ('django.db.models.fields.BigIntegerField', [], {}) + }, + u'irdb.roarequest': { + 'Meta': {'object_name': 'ROARequest'}, + 'asn': ('django.db.models.fields.BigIntegerField', [], {}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'issuer': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'roa_requests'", 'to': u"orm['irdb.ResourceHolderCA']"}) + }, + u'irdb.roarequestprefix': { + 'Meta': {'unique_together': "(('roa_request', 'version', 'prefix', 'prefixlen', 'max_prefixlen'),)", 'object_name': 'ROARequestPrefix'}, + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'max_prefixlen': ('django.db.models.fields.PositiveSmallIntegerField', [], {}), + 'prefix': ('django.db.models.fields.CharField', [], {'max_length': '40'}), + 'prefixlen': ('django.db.models.fields.PositiveSmallIntegerField', [], {}), + 'roa_request': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'prefixes'", 'to': u"orm['irdb.ROARequest']"}), + 'version': ('rpki.fields.EnumField', [], {}) + }, + u'irdb.rootd': { + 'Meta': {'object_name': 'Rootd', '_ormbases': [u'irdb.Turtle']}, + 'certificate': ('rpki.fields.CertificateField', [], {'default': 'None', 'blank': 'True'}), + 'issuer': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'rootd'", 'unique': 'True', 'to': u"orm['irdb.ResourceHolderCA']"}), + 'private_key': ('rpki.fields.KeyField', [], {'default': 'None', 'blank': 'True'}), + u'turtle_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': u"orm['irdb.Turtle']", 'unique': 'True', 'primary_key': 'True'}) + }, + u'irdb.serverca': { + 'Meta': {'object_name': 'ServerCA'}, + 'certificate': ('rpki.fields.CertificateField', [], {'default': 'None', 'blank': 'True'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'last_crl_update': ('rpki.fields.SundialField', [], {}), + 'latest_crl': ('rpki.fields.CRLField', [], {'default': 'None', 'blank': 'True'}), + 'next_crl_number': ('django.db.models.fields.BigIntegerField', [], {'default': '1'}), + 'next_crl_update': ('rpki.fields.SundialField', [], {}), + 'next_serial': ('django.db.models.fields.BigIntegerField', [], {'default': '1'}), + 'private_key': ('rpki.fields.KeyField', [], {'default': 'None', 'blank': 'True'}) + }, + u'irdb.serveree': { + 'Meta': {'unique_together': "(('issuer', 'purpose'),)", 'object_name': 'ServerEE'}, + 'certificate': ('rpki.fields.CertificateField', [], {'default': 'None', 'blank': 'True'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'issuer': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'ee_certificates'", 'to': u"orm['irdb.ServerCA']"}), + 'private_key': ('rpki.fields.KeyField', [], {'default': 'None', 'blank': 'True'}), + 'purpose': ('rpki.fields.EnumField', [], {}) + }, + u'irdb.serverrevocation': { + 'Meta': {'unique_together': "(('issuer', 'serial'),)", 'object_name': 'ServerRevocation'}, + 'expires': ('rpki.fields.SundialField', [], {}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'issuer': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'revocations'", 'to': u"orm['irdb.ServerCA']"}), + 'revoked': ('rpki.fields.SundialField', [], {}), + 'serial': ('django.db.models.fields.BigIntegerField', [], {}) + }, + u'irdb.turtle': { + 'Meta': {'object_name': 'Turtle'}, + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'service_uri': ('django.db.models.fields.CharField', [], {'max_length': '255'}) + } + } + + complete_apps = ['irdb']
\ No newline at end of file diff --git a/rpki/irdb/migrations/__init__.py b/rpki/irdb/migrations/__init__.py new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/rpki/irdb/migrations/__init__.py diff --git a/rpki/irdb/models.py b/rpki/irdb/models.py index c5cf7f15..f89cebd4 100644 --- a/rpki/irdb/models.py +++ b/rpki/irdb/models.py @@ -34,6 +34,8 @@ import socket import rpki.POW from south.modelsinspector import add_introspection_rules +from rpki.fields import EnumField, SundialField, CertificateField, DERField, KeyField, CRLField, PKCS10Field + ## @var ip_version_choices # Choice argument for fields implementing IP version numbers. @@ -61,11 +63,11 @@ ee_certificate_lifetime = rpki.sundial.timedelta(days = 60) ### -# Field types +# Field classes class HandleField(django.db.models.CharField): """ - A handle field type. + A handle field class. Replace this with SlugField? """ description = 'A "handle" in one of the RPKI protocols' @@ -74,104 +76,26 @@ class HandleField(django.db.models.CharField): kwargs["max_length"] = 120 django.db.models.CharField.__init__(self, *args, **kwargs) -class EnumField(django.db.models.PositiveSmallIntegerField): - """ - An enumeration type that uses strings in Python and small integers - in SQL. - """ - - description = "An enumeration type" - - __metaclass__ = django.db.models.SubfieldBase - - def __init__(self, *args, **kwargs): - if isinstance(kwargs.get("choices"), (tuple, list)) and isinstance(kwargs["choices"][0], str): - kwargs["choices"] = tuple(enumerate(kwargs["choices"], 1)) - django.db.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 get_prep_value(self, value): - return self.enum_s2i.get(value, value) - -class SundialField(django.db.models.DateTimeField): - """ - A field type for our customized datetime objects. - """ - - __metaclass__ = django.db.models.SubfieldBase - - 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( - django.db.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 +class SignedReferralField(DERField): + description = "CMS signed object containing XML" + rpki_type = rpki.x509.SignedReferral -class DERField(django.db.models.Field): - """ - Field types for DER objects. - """ - - __metaclass__ = django.db.models.SubfieldBase - - def __init__(self, *args, **kwargs): - kwargs["serialize"] = False - kwargs["blank"] = True - kwargs["default"] = None - django.db.models.Field.__init__(self, *args, **kwargs) - - def db_type(self, connection): - if connection.settings_dict['ENGINE'] == "django.db.backends.posgresql": - return "bytea" - else: - return "BLOB" - - def to_python(self, value): - assert value is None or isinstance(value, (self.rpki_type, str)) - if isinstance(value, str): - return self.rpki_type(DER = value) - else: - return value - - def get_prep_value(self, value): - assert value is None or isinstance(value, (self.rpki_type, str)) - if isinstance(value, self.rpki_type): - return value.get_DER() - else: - return value +# Alias to keep old rpki.gui migrations happy. Would generating a new +# schema migration for rpki.gui remove the need, or do we have to +# preserve every old field class we've ever used forever? Dunno. -class CertificateField(DERField): - description = "X.509 certificate" - rpki_type = rpki.x509.X509 +RSAKeyField = KeyField -class RSAKeyField(DERField): - description = "RSA keypair" - rpki_type = rpki.x509.RSA +# Introspection rules for Django South -class CRLField(DERField): - description = "Certificate Revocation List" - rpki_type = rpki.x509.CRL +field_classes = [HandleField, SignedReferralField] -class PKCS10Field(DERField): - description = "PKCS #10 certificate request" - rpki_type = rpki.x509.PKCS10 +add_introspection_rules([(field_classes, [], {})], + [r"^rpki\.irdb\.models\." + cls.__name__ + for cls in field_classes]) -class SignedReferralField(DERField): - description = "CMS signed object containing XML" - rpki_type = rpki.x509.SignedReferral +del field_classes # Custom managers @@ -232,7 +156,7 @@ class ResourceHolderEEManager(CertificateManager): class CA(django.db.models.Model): certificate = CertificateField() - private_key = RSAKeyField() + private_key = KeyField() latest_crl = CRLField() # Might want to bring these into line with what rpkid does. Current @@ -392,7 +316,7 @@ class ResourceHolderRevocation(Revocation): issuer = django.db.models.ForeignKey(ResourceHolderCA, related_name = "revocations") class EECertificate(Certificate): - private_key = RSAKeyField() + private_key = KeyField() class Meta: abstract = True @@ -635,13 +559,3 @@ class Client(CrossCertification): # This shouldn't be necessary class Meta: unique_together = ("issuer", "handle") - -# for Django South -- these are just simple subclasses -add_introspection_rules([], - (r'^rpki\.irdb\.models\.CertificateField', - r'^rpki\.irdb\.models\.CRLField', - r'^rpki\.irdb\.models\.EnumField', - r'^rpki\.irdb\.models\.HandleField', - r'^rpki\.irdb\.models\.RSAKeyField', - r'^rpki\.irdb\.models\.SignedReferralField', - r'^rpki\.irdb\.models\.SundialField')) |