diff options
25 files changed, 499 insertions, 793 deletions
diff --git a/ca/rpki-manage b/ca/rpki-manage index b478549e..16d0990d 100755 --- a/ca/rpki-manage +++ b/ca/rpki-manage @@ -8,7 +8,7 @@ import os if os.environ.get("LANG") in (None, "", "C"): os.environ["LANG"] = "en_US.UTF-8" -os.environ.setdefault(DJANGO_SETTINGS_MODULE = "rpki.django_settings.gui") +os.environ.setdefault("DJANGO_SETTINGS_MODULE", "rpki.django_settings.gui") from django.core.management import execute_from_command_line diff --git a/ca/tests/yamlconf.py b/ca/tests/yamlconf.py index 4c003835..13456377 100644 --- a/ca/tests/yamlconf.py +++ b/ca/tests/yamlconf.py @@ -778,12 +778,15 @@ def body(): databases["default"] = databases[db.root.irdb_name] + import django + django.setup() + from django.conf import settings settings.configure( - DATABASES = databases, + DATABASES = databases, DATABASE_ROUTERS = ["rpki.irdb.router.DBContextRouter"], - INSTALLED_APPS = ("rpki.irdb", "south")) + INSTALLED_APPS = ["rpki.irdb"]) import rpki.irdb diff --git a/ca/tests/yamltest.py b/ca/tests/yamltest.py index 308884a9..8c5e41b9 100644 --- a/ca/tests/yamltest.py +++ b/ca/tests/yamltest.py @@ -580,7 +580,7 @@ class allocation(object): # easier than figuring out how to change Django settings after # initialization. - def sync_app(app, verbosity = 1): + def sync_settings(settings, verbosity = 1): if verbosity > 0: print "Running Django setup for", self.name @@ -588,23 +588,30 @@ class allocation(object): pid = os.fork() if pid == 0: - os.environ.update(RPKI_CONF = self.path("rpki.conf"), - DJANGO_SETTINGS_MODULE = "rpki.django_settings." + app) logging.getLogger().setLevel(logging.WARNING) + + os.environ.update(RPKI_CONF = self.path("rpki.conf"), + DJANGO_SETTINGS_MODULE = "rpki.django_settings." + settings) + + import django + django.setup() + import django.core.management - django.core.management.call_command("syncdb", migrate = True, verbosity = verbosity, + #django.core.management.call_command("syncdb", migrate = True, verbosity = verbosity, load_initial_data = False, interactive = False) + django.core.management.call_command("migrate", verbosity = verbosity, load_initial_data = False, interactive = False) - if app in ("gui", "irdb"): + + if settings in ("gui", "irdb"): from django.contrib.auth.models import User User.objects.create_superuser("root", "root@example.org", "fnord") + sys.exit(0) - else: - if os.waitpid(pid, 0)[1]: - raise RuntimeError("Django setup failed for %s %s" % (self.name, app)) + elif os.waitpid(pid, 0)[1]: + raise RuntimeError("Django setup failed for %s %s" % (self.name, settings)) - for app in ("rpkid", "pubd", "gui"): - sync_app(app) + for settings in ("rpkid", "pubd", "gui"): + sync_settings(settings) def run_python_daemon(self, prog): """ diff --git a/rpki/django_settings/common.py b/rpki/django_settings/common.py index 330ab165..a1d54c71 100644 --- a/rpki/django_settings/common.py +++ b/rpki/django_settings/common.py @@ -56,11 +56,10 @@ if os.getenv("RPKI_DJANGO_DEBUG") == "yes": # fragile, tedious to use, and generally more complex than we need, # because any given program is only going to be using one database. -# Figure out which apps we're running. Modules that import this add -# others. "south" will go away when we upgrade to Django 1.7+, at -# which point we may leave this entirely for the importing modules. -INSTALLED_APPS = ["south"] +# Apps are also handled by the modules that import this one, now that +# we don't require South. + # That would be it if we just need the ORM, but Django throws a hissy # fit if SECRET_KEY isn't set, whether we use it for anything or not. diff --git a/rpki/django_settings/irdb.py b/rpki/django_settings/irdb.py index 8a33e674..7749b9d6 100644 --- a/rpki/django_settings/irdb.py +++ b/rpki/django_settings/irdb.py @@ -34,9 +34,9 @@ DATABASES = dict( USER = cfg.get("sql-username", section = "irdbd"), PASSWORD = cfg.get("sql-password", section = "irdbd"))) -# Apps. See comment in .common re the "south" app. +# Apps. -INSTALLED_APPS.append("rpki.irdb") +INSTALLED_APPS = ["rpki.irdb"] # Allow local site to override any setting above -- but if there's diff --git a/rpki/django_settings/pubd.py b/rpki/django_settings/pubd.py index 80618652..6f1fe06b 100644 --- a/rpki/django_settings/pubd.py +++ b/rpki/django_settings/pubd.py @@ -33,9 +33,9 @@ DATABASES = dict( PASSWORD = cfg.get("sql-password", section = "pubd"))) -# Apps -- see comment in .common re "south" app. +# Apps. -INSTALLED_APPS.append("rpki.pubdb") +INSTALLED_APPS = ["rpki.pubdb"] # Allow local site to override any setting above -- but if there's diff --git a/rpki/django_settings/rpkid.py b/rpki/django_settings/rpkid.py index 64938647..e3abb0eb 100644 --- a/rpki/django_settings/rpkid.py +++ b/rpki/django_settings/rpkid.py @@ -33,9 +33,9 @@ DATABASES = dict( PASSWORD = cfg.get("sql-password", section = "rpkid"))) -# Apps -- see .common re "south" app. +# Apps. -INSTALLED_APPS.append("rpki.rpkidb") +INSTALLED_APPS = ["rpki.rpkidb"] # Allow local site to override any setting above -- but if there's diff --git a/rpki/fields.py b/rpki/fields.py index 1ca6c893..dab6ce14 100644 --- a/rpki/fields.py +++ b/rpki/fields.py @@ -27,7 +27,6 @@ the DER and thus would add no value. import logging from django.db import models -from south.modelsinspector import add_introspection_rules import rpki.x509 import rpki.sundial @@ -185,12 +184,3 @@ class ROAField(DERField): class GhostbusterField(DERField): description = "Ghostbuster Record" rpki_type = rpki.x509.Ghostbuster - - -field_classes = (EnumField, SundialField, BlobField, CertificateField, KeyField, - CRLField, PKCS10Field, ManifestField, ROAField, GhostbusterField) - -add_introspection_rules([(field_classes, [], {})], - [r"^rpki\.fields\." + cls.__name__ for cls in field_classes]) - -del field_classes diff --git a/rpki/gui/app/models.py b/rpki/gui/app/models.py index 40bdbe2c..c49e6d43 100644 --- a/rpki/gui/app/models.py +++ b/rpki/gui/app/models.py @@ -26,7 +26,6 @@ import rpki.irdb.models import rpki.gui.models import rpki.gui.routeview.models import rpki.oids -from south.modelsinspector import add_introspection_rules class TelephoneField(models.CharField): @@ -35,7 +34,7 @@ class TelephoneField(models.CharField): kwargs['max_length'] = 40 models.CharField.__init__(self, **kwargs) -add_introspection_rules([], [r'^rpki\.gui\.app\.models\.TelephoneField']) + class Parent(rpki.irdb.models.Parent): diff --git a/rpki/gui/app/migrations/0001_initial.py b/rpki/gui/app/south_migrations/0001_initial.py index 80877901..80877901 100644 --- a/rpki/gui/app/migrations/0001_initial.py +++ b/rpki/gui/app/south_migrations/0001_initial.py diff --git a/rpki/gui/app/migrations/0002_auto__add_field_resourcecert_conf.py b/rpki/gui/app/south_migrations/0002_auto__add_field_resourcecert_conf.py index d3326f90..d3326f90 100644 --- a/rpki/gui/app/migrations/0002_auto__add_field_resourcecert_conf.py +++ b/rpki/gui/app/south_migrations/0002_auto__add_field_resourcecert_conf.py diff --git a/rpki/gui/app/migrations/0003_set_conf_from_parent.py b/rpki/gui/app/south_migrations/0003_set_conf_from_parent.py index a90a11cc..a90a11cc 100644 --- a/rpki/gui/app/migrations/0003_set_conf_from_parent.py +++ b/rpki/gui/app/south_migrations/0003_set_conf_from_parent.py diff --git a/rpki/gui/app/migrations/0004_auto__chg_field_resourcecert_conf.py b/rpki/gui/app/south_migrations/0004_auto__chg_field_resourcecert_conf.py index a236ad4a..a236ad4a 100644 --- a/rpki/gui/app/migrations/0004_auto__chg_field_resourcecert_conf.py +++ b/rpki/gui/app/south_migrations/0004_auto__chg_field_resourcecert_conf.py diff --git a/rpki/gui/app/migrations/0005_auto__chg_field_resourcecert_parent.py b/rpki/gui/app/south_migrations/0005_auto__chg_field_resourcecert_parent.py index 11e9c814..11e9c814 100644 --- a/rpki/gui/app/migrations/0005_auto__chg_field_resourcecert_parent.py +++ b/rpki/gui/app/south_migrations/0005_auto__chg_field_resourcecert_parent.py diff --git a/rpki/gui/app/migrations/0006_add_conf_acl.py b/rpki/gui/app/south_migrations/0006_add_conf_acl.py index 88fe8171..88fe8171 100644 --- a/rpki/gui/app/migrations/0006_add_conf_acl.py +++ b/rpki/gui/app/south_migrations/0006_add_conf_acl.py diff --git a/rpki/gui/app/migrations/0007_default_acls.py b/rpki/gui/app/south_migrations/0007_default_acls.py index 40656d0f..40656d0f 100644 --- a/rpki/gui/app/migrations/0007_default_acls.py +++ b/rpki/gui/app/south_migrations/0007_default_acls.py diff --git a/rpki/gui/app/migrations/0008_add_alerts.py b/rpki/gui/app/south_migrations/0008_add_alerts.py index 77af68d2..77af68d2 100644 --- a/rpki/gui/app/migrations/0008_add_alerts.py +++ b/rpki/gui/app/south_migrations/0008_add_alerts.py diff --git a/rpki/gui/app/south_migrations/__init__.py b/rpki/gui/app/south_migrations/__init__.py new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/rpki/gui/app/south_migrations/__init__.py diff --git a/rpki/gui/models.py b/rpki/gui/models.py index 62400d2a..ced14926 100644 --- a/rpki/gui/models.py +++ b/rpki/gui/models.py @@ -22,7 +22,6 @@ from django.db import models import rpki.resource_set import rpki.POW -from south.modelsinspector import add_introspection_rules class IPv6AddressField(models.Field): @@ -63,14 +62,6 @@ class IPv4AddressField(models.Field): def get_db_prep_value(self, value, connection, prepared): return long(value) -add_introspection_rules( - [ - ([IPv4AddressField, IPv6AddressField], [], {}) - ], - [r'^rpki\.gui\.models\.IPv4AddressField', - r'^rpki\.gui\.models\.IPv6AddressField'] -) - class Prefix(models.Model): """Common implementation for models with an IP address range. diff --git a/rpki/irdb/migrations/0001_initial.py b/rpki/irdb/migrations/0001_initial.py index bc0b9743..d10b62d3 100644 --- a/rpki/irdb/migrations/0001_initial.py +++ b/rpki/irdb/migrations/0001_initial.py @@ -1,595 +1,375 @@ # -*- 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 +from __future__ import unicode_literals + +from django.db import migrations, models +import rpki.irdb.models +import rpki.fields + + +class Migration(migrations.Migration): + + dependencies = [ + ] + + operations = [ + migrations.CreateModel( + name='BSC', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('certificate', rpki.fields.CertificateField(default=None, serialize=False, blank=True)), + ('handle', rpki.irdb.models.HandleField(max_length=120)), + ('pkcs10', rpki.fields.PKCS10Field(default=None, serialize=False, blank=True)), + ], + options={ + 'abstract': False, + }, + ), + migrations.CreateModel( + name='Child', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('certificate', rpki.fields.CertificateField(default=None, serialize=False, blank=True)), + ('handle', rpki.irdb.models.HandleField(max_length=120)), + ('ta', rpki.fields.CertificateField(default=None, serialize=False, blank=True)), + ('valid_until', rpki.fields.SundialField()), + ('name', models.TextField(null=True, blank=True)), + ], + ), + migrations.CreateModel( + name='ChildASN', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('start_as', models.BigIntegerField()), + ('end_as', models.BigIntegerField()), + ('child', models.ForeignKey(related_name='asns', to='irdb.Child')), + ], + ), + migrations.CreateModel( + name='ChildNet', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('start_ip', models.CharField(max_length=40)), + ('end_ip', models.CharField(max_length=40)), + ('version', rpki.fields.EnumField(choices=[(4, b'IPv4'), (6, b'IPv6')])), + ('child', models.ForeignKey(related_name='address_ranges', to='irdb.Child')), + ], + ), + migrations.CreateModel( + name='Client', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('certificate', rpki.fields.CertificateField(default=None, serialize=False, blank=True)), + ('handle', rpki.irdb.models.HandleField(max_length=120)), + ('ta', rpki.fields.CertificateField(default=None, serialize=False, blank=True)), + ('sia_base', models.TextField()), + ('parent_handle', rpki.irdb.models.HandleField(max_length=120)), + ], + ), + migrations.CreateModel( + name='EECertificateRequest', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('valid_until', rpki.fields.SundialField()), + ('pkcs10', rpki.fields.PKCS10Field(default=None, serialize=False, blank=True)), + ('gski', models.CharField(max_length=27)), + ('cn', models.CharField(max_length=64)), + ('sn', models.CharField(max_length=64)), + ('eku', models.TextField(null=True)), + ], + ), + migrations.CreateModel( + name='EECertificateRequestASN', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('start_as', models.BigIntegerField()), + ('end_as', models.BigIntegerField()), + ('ee_certificate_request', models.ForeignKey(related_name='asns', to='irdb.EECertificateRequest')), + ], + ), + migrations.CreateModel( + name='EECertificateRequestNet', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('start_ip', models.CharField(max_length=40)), + ('end_ip', models.CharField(max_length=40)), + ('version', rpki.fields.EnumField(choices=[(4, b'IPv4'), (6, b'IPv6')])), + ('ee_certificate_request', models.ForeignKey(related_name='address_ranges', to='irdb.EECertificateRequest')), + ], + ), + migrations.CreateModel( + name='GhostbusterRequest', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('vcard', models.TextField()), + ], + ), + migrations.CreateModel( + name='HostedCA', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('certificate', rpki.fields.CertificateField(default=None, serialize=False, blank=True)), + ], + ), + migrations.CreateModel( + name='Referral', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('certificate', rpki.fields.CertificateField(default=None, serialize=False, blank=True)), + ('private_key', rpki.fields.KeyField(default=None, serialize=False, blank=True)), + ], + options={ + 'abstract': False, + }, + ), + migrations.CreateModel( + name='Repository', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('certificate', rpki.fields.CertificateField(default=None, serialize=False, blank=True)), + ('handle', rpki.irdb.models.HandleField(max_length=120)), + ('ta', rpki.fields.CertificateField(default=None, serialize=False, blank=True)), + ('client_handle', rpki.irdb.models.HandleField(max_length=120)), + ('service_uri', models.CharField(max_length=255)), + ('sia_base', models.TextField()), + ], + ), + migrations.CreateModel( + name='ResourceHolderCA', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('certificate', rpki.fields.CertificateField(default=None, serialize=False, blank=True)), + ('private_key', rpki.fields.KeyField(default=None, serialize=False, blank=True)), + ('latest_crl', rpki.fields.CRLField(default=None, serialize=False, blank=True)), + ('next_serial', models.BigIntegerField(default=1)), + ('next_crl_number', models.BigIntegerField(default=1)), + ('last_crl_update', rpki.fields.SundialField()), + ('next_crl_update', rpki.fields.SundialField()), + ('handle', rpki.irdb.models.HandleField(unique=True, max_length=120)), + ], + options={ + 'abstract': False, + }, + ), + migrations.CreateModel( + name='ResourceHolderRevocation', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('serial', models.BigIntegerField()), + ('revoked', rpki.fields.SundialField()), + ('expires', rpki.fields.SundialField()), + ('issuer', models.ForeignKey(related_name='revocations', to='irdb.ResourceHolderCA')), + ], + options={ + 'abstract': False, + }, + ), + migrations.CreateModel( + name='ROARequest', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('asn', models.BigIntegerField()), + ('issuer', models.ForeignKey(related_name='roa_requests', to='irdb.ResourceHolderCA')), + ], + ), + migrations.CreateModel( + name='ROARequestPrefix', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('version', rpki.fields.EnumField(choices=[(4, b'IPv4'), (6, b'IPv6')])), + ('prefix', models.CharField(max_length=40)), + ('prefixlen', models.PositiveSmallIntegerField()), + ('max_prefixlen', models.PositiveSmallIntegerField()), + ('roa_request', models.ForeignKey(related_name='prefixes', to='irdb.ROARequest')), + ], + ), + migrations.CreateModel( + name='ServerCA', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('certificate', rpki.fields.CertificateField(default=None, serialize=False, blank=True)), + ('private_key', rpki.fields.KeyField(default=None, serialize=False, blank=True)), + ('latest_crl', rpki.fields.CRLField(default=None, serialize=False, blank=True)), + ('next_serial', models.BigIntegerField(default=1)), + ('next_crl_number', models.BigIntegerField(default=1)), + ('last_crl_update', rpki.fields.SundialField()), + ('next_crl_update', rpki.fields.SundialField()), + ], + options={ + 'abstract': False, + }, + ), + migrations.CreateModel( + name='ServerEE', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('certificate', rpki.fields.CertificateField(default=None, serialize=False, blank=True)), + ('private_key', rpki.fields.KeyField(default=None, serialize=False, blank=True)), + ('purpose', rpki.fields.EnumField(choices=[(1, b'rpkid'), (2, b'pubd'), (3, b'irdbd'), (4, b'irbe')])), + ('issuer', models.ForeignKey(related_name='ee_certificates', to='irdb.ServerCA')), + ], + ), + migrations.CreateModel( + name='ServerRevocation', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('serial', models.BigIntegerField()), + ('revoked', rpki.fields.SundialField()), + ('expires', rpki.fields.SundialField()), + ('issuer', models.ForeignKey(related_name='revocations', to='irdb.ServerCA')), + ], + options={ + 'abstract': False, + }, + ), + migrations.CreateModel( + name='Turtle', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('service_uri', models.CharField(max_length=255)), + ], + ), + migrations.CreateModel( + name='Parent', + fields=[ + ('turtle_ptr', models.OneToOneField(parent_link=True, auto_created=True, primary_key=True, serialize=False, to='irdb.Turtle')), + ('certificate', rpki.fields.CertificateField(default=None, serialize=False, blank=True)), + ('handle', rpki.irdb.models.HandleField(max_length=120)), + ('ta', rpki.fields.CertificateField(default=None, serialize=False, blank=True)), + ('parent_handle', rpki.irdb.models.HandleField(max_length=120)), + ('child_handle', rpki.irdb.models.HandleField(max_length=120)), + ('repository_type', rpki.fields.EnumField(choices=[(1, b'none'), (2, b'offer'), (3, b'referral')])), + ('referrer', rpki.irdb.models.HandleField(max_length=120, null=True, blank=True)), + ('referral_authorization', rpki.irdb.models.SignedReferralField(default=None, serialize=False, null=True, blank=True)), + ('issuer', models.ForeignKey(related_name='parents', to='irdb.ResourceHolderCA')), + ], + bases=('irdb.turtle', models.Model), + ), + migrations.CreateModel( + name='Rootd', + fields=[ + ('turtle_ptr', models.OneToOneField(parent_link=True, auto_created=True, primary_key=True, serialize=False, to='irdb.Turtle')), + ('certificate', rpki.fields.CertificateField(default=None, serialize=False, blank=True)), + ('private_key', rpki.fields.KeyField(default=None, serialize=False, blank=True)), + ('issuer', models.OneToOneField(related_name='rootd', to='irdb.ResourceHolderCA')), + ], + options={ + 'abstract': False, + }, + bases=('irdb.turtle', models.Model), + ), + migrations.AddField( + model_name='repository', + name='issuer', + field=models.ForeignKey(related_name='repositories', to='irdb.ResourceHolderCA'), + ), + migrations.AddField( + model_name='repository', + name='turtle', + field=models.OneToOneField(related_name='repository', to='irdb.Turtle'), + ), + migrations.AddField( + model_name='referral', + name='issuer', + field=models.OneToOneField(related_name='referral_certificate', to='irdb.ResourceHolderCA'), + ), + migrations.AddField( + model_name='hostedca', + name='hosted', + field=models.OneToOneField(related_name='hosted_by', to='irdb.ResourceHolderCA'), + ), + migrations.AddField( + model_name='hostedca', + name='issuer', + field=models.ForeignKey(to='irdb.ServerCA'), + ), + migrations.AddField( + model_name='ghostbusterrequest', + name='issuer', + field=models.ForeignKey(related_name='ghostbuster_requests', to='irdb.ResourceHolderCA'), + ), + migrations.AddField( + model_name='eecertificaterequest', + name='issuer', + field=models.ForeignKey(related_name='ee_certificate_requests', to='irdb.ResourceHolderCA'), + ), + migrations.AddField( + model_name='client', + name='issuer', + field=models.ForeignKey(related_name='clients', to='irdb.ServerCA'), + ), + migrations.AddField( + model_name='child', + name='issuer', + field=models.ForeignKey(related_name='children', to='irdb.ResourceHolderCA'), + ), + migrations.AddField( + model_name='bsc', + name='issuer', + field=models.ForeignKey(related_name='bscs', to='irdb.ResourceHolderCA'), + ), + migrations.AlterUniqueTogether( + name='serverrevocation', + unique_together=set([('issuer', 'serial')]), + ), + migrations.AlterUniqueTogether( + name='serveree', + unique_together=set([('issuer', 'purpose')]), + ), + migrations.AlterUniqueTogether( + name='roarequestprefix', + unique_together=set([('roa_request', 'version', 'prefix', 'prefixlen', 'max_prefixlen')]), + ), + migrations.AlterUniqueTogether( + name='resourceholderrevocation', + unique_together=set([('issuer', 'serial')]), + ), + migrations.AlterUniqueTogether( + name='repository', + unique_together=set([('issuer', 'handle')]), + ), + migrations.AlterUniqueTogether( + name='hostedca', + unique_together=set([('issuer', 'hosted')]), + ), + migrations.AddField( + model_name='ghostbusterrequest', + name='parent', + field=models.ForeignKey(related_name='ghostbuster_requests', to='irdb.Parent', null=True), + ), + migrations.AlterUniqueTogether( + name='eecertificaterequestnet', + unique_together=set([('ee_certificate_request', 'start_ip', 'end_ip', 'version')]), + ), + migrations.AlterUniqueTogether( + name='eecertificaterequestasn', + unique_together=set([('ee_certificate_request', 'start_as', 'end_as')]), + ), + migrations.AlterUniqueTogether( + name='eecertificaterequest', + unique_together=set([('issuer', 'gski')]), + ), + migrations.AlterUniqueTogether( + name='client', + unique_together=set([('issuer', 'handle')]), + ), + migrations.AlterUniqueTogether( + name='childnet', + unique_together=set([('child', 'start_ip', 'end_ip', 'version')]), + ), + migrations.AlterUniqueTogether( + name='childasn', + unique_together=set([('child', 'start_as', 'end_as')]), + ), + migrations.AlterUniqueTogether( + name='child', + unique_together=set([('issuer', 'handle')]), + ), + migrations.AlterUniqueTogether( + name='bsc', + unique_together=set([('issuer', 'handle')]), + ), + migrations.AlterUniqueTogether( + name='parent', + unique_together=set([('issuer', 'handle')]), + ), + ] diff --git a/rpki/irdb/models.py b/rpki/irdb/models.py index f89cebd4..b88b0ad8 100644 --- a/rpki/irdb/models.py +++ b/rpki/irdb/models.py @@ -32,7 +32,6 @@ import rpki.sundial import rpki.resource_set import socket import rpki.POW -from south.modelsinspector import add_introspection_rules from rpki.fields import EnumField, SundialField, CertificateField, DERField, KeyField, CRLField, PKCS10Field @@ -81,22 +80,6 @@ class SignedReferralField(DERField): description = "CMS signed object containing XML" rpki_type = rpki.x509.SignedReferral -# 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. - -RSAKeyField = KeyField - -# Introspection rules for Django South - -field_classes = [HandleField, SignedReferralField] - -add_introspection_rules([(field_classes, [], {})], - [r"^rpki\.irdb\.models\." + cls.__name__ - for cls in field_classes]) - -del field_classes - # Custom managers diff --git a/rpki/irdbd.py b/rpki/irdbd.py index 4990405c..4196f346 100644 --- a/rpki/irdbd.py +++ b/rpki/irdbd.py @@ -186,9 +186,24 @@ class main(object): # Now that we know which configuration file to use, it's OK to # load modules that require Django's settings module. + import django + django.setup() + global rpki # pylint: disable=W0602 import rpki.irdb # pylint: disable=W0621 + self.http_server_host = self.cfg.get("server-host", "") + self.http_server_port = self.cfg.getint("server-port") + + self.cms_timestamp = None + + rpki.http_simple.server( + host = self.http_server_host, + port = self.http_server_port, + handlers = self.handler) + + def start_new_transaction(self): + # Entirely too much fun with read-only access to transactional databases. # # http://stackoverflow.com/questions/3346124/how-do-i-force-django-to-ignore-any-caches-and-reload-data @@ -209,14 +224,7 @@ class main(object): # the transaction isolation snapshot. import django.db.transaction - self.start_new_transaction = django.db.transaction.commit_manually(django.db.transaction.commit) - - self.http_server_host = self.cfg.get("server-host", "") - self.http_server_port = self.cfg.getint("server-port") - - self.cms_timestamp = None - rpki.http_simple.server( - host = self.http_server_host, - port = self.http_server_port, - handlers = self.handler) + with django.db.transaction.atomic(): + #django.db.transaction.commit() + pass diff --git a/rpki/pubd.py b/rpki/pubd.py index 71a62fee..335e9174 100644 --- a/rpki/pubd.py +++ b/rpki/pubd.py @@ -95,6 +95,9 @@ class main(object): if self.profile: logger.info("Running in profile mode with output to %s", self.profile) + import django + django.setup() + global rpki import rpki.pubdb diff --git a/rpki/pubdb/migrations/0001_initial.py b/rpki/pubdb/migrations/0001_initial.py index 73cecd0e..4f312844 100644 --- a/rpki/pubdb/migrations/0001_initial.py +++ b/rpki/pubdb/migrations/0001_initial.py @@ -1,119 +1,69 @@ # -*- 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 'Client' - db.create_table(u'pubdb_client', ( - (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), - ('client_handle', self.gf('django.db.models.fields.CharField')(unique=True, max_length=255)), - ('base_uri', self.gf('django.db.models.fields.TextField')()), - ('bpki_cert', self.gf('rpki.fields.BlobField')(default=None, blank=True)), - ('bpki_glue', self.gf('rpki.fields.BlobField')(default=None, null=True, blank=True)), - ('last_cms_timestamp', self.gf('rpki.fields.SundialField')(null=True, blank=True)), - )) - db.send_create_signal(u'pubdb', ['Client']) - - # Adding model 'Session' - db.create_table(u'pubdb_session', ( - (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), - ('uuid', self.gf('django.db.models.fields.CharField')(unique=True, max_length=36)), - ('serial', self.gf('django.db.models.fields.BigIntegerField')()), - ('snapshot', self.gf('django.db.models.fields.TextField')(blank=True)), - ('hash', self.gf('django.db.models.fields.CharField')(max_length=64, blank=True)), - )) - db.send_create_signal(u'pubdb', ['Session']) - - # Adding model 'Delta' - db.create_table(u'pubdb_delta', ( - (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), - ('serial', self.gf('django.db.models.fields.BigIntegerField')()), - ('xml', self.gf('django.db.models.fields.TextField')()), - ('hash', self.gf('django.db.models.fields.CharField')(max_length=64)), - ('expires', self.gf('rpki.fields.SundialField')()), - ('session', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['pubdb.Session'])), - )) - db.send_create_signal(u'pubdb', ['Delta']) - - # Adding model 'PublishedObject' - db.create_table(u'pubdb_publishedobject', ( - (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), - ('uri', self.gf('django.db.models.fields.CharField')(max_length=255)), - ('der', self.gf('rpki.fields.BlobField')(default=None, blank=True)), - ('hash', self.gf('django.db.models.fields.CharField')(max_length=64)), - ('client', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['pubdb.Client'])), - ('session', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['pubdb.Session'])), - )) - db.send_create_signal(u'pubdb', ['PublishedObject']) - - # Adding unique constraint on 'PublishedObject', fields ['session', 'hash'] - db.create_unique(u'pubdb_publishedobject', ['session_id', 'hash']) - - # Adding unique constraint on 'PublishedObject', fields ['session', 'uri'] - db.create_unique(u'pubdb_publishedobject', ['session_id', 'uri']) - - - def backwards(self, orm): - # Removing unique constraint on 'PublishedObject', fields ['session', 'uri'] - db.delete_unique(u'pubdb_publishedobject', ['session_id', 'uri']) - - # Removing unique constraint on 'PublishedObject', fields ['session', 'hash'] - db.delete_unique(u'pubdb_publishedobject', ['session_id', 'hash']) - - # Deleting model 'Client' - db.delete_table(u'pubdb_client') - - # Deleting model 'Session' - db.delete_table(u'pubdb_session') - - # Deleting model 'Delta' - db.delete_table(u'pubdb_delta') - - # Deleting model 'PublishedObject' - db.delete_table(u'pubdb_publishedobject') - - - models = { - u'pubdb.client': { - 'Meta': {'object_name': 'Client'}, - 'base_uri': ('django.db.models.fields.TextField', [], {}), - 'bpki_cert': ('rpki.fields.BlobField', [], {'default': 'None', 'blank': 'True'}), - 'bpki_glue': ('rpki.fields.BlobField', [], {'default': 'None', 'null': 'True', 'blank': 'True'}), - 'client_handle': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'last_cms_timestamp': ('rpki.fields.SundialField', [], {'null': 'True', 'blank': 'True'}) - }, - u'pubdb.delta': { - 'Meta': {'object_name': 'Delta'}, - 'expires': ('rpki.fields.SundialField', [], {}), - 'hash': ('django.db.models.fields.CharField', [], {'max_length': '64'}), - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'serial': ('django.db.models.fields.BigIntegerField', [], {}), - 'session': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['pubdb.Session']"}), - 'xml': ('django.db.models.fields.TextField', [], {}) - }, - u'pubdb.publishedobject': { - 'Meta': {'unique_together': "((u'session', u'hash'), (u'session', u'uri'))", 'object_name': 'PublishedObject'}, - 'client': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['pubdb.Client']"}), - 'der': ('rpki.fields.BlobField', [], {'default': 'None', 'blank': 'True'}), - 'hash': ('django.db.models.fields.CharField', [], {'max_length': '64'}), - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'session': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['pubdb.Session']"}), - 'uri': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - u'pubdb.session': { - 'Meta': {'object_name': 'Session'}, - 'hash': ('django.db.models.fields.CharField', [], {'max_length': '64', 'blank': 'True'}), - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'serial': ('django.db.models.fields.BigIntegerField', [], {}), - 'snapshot': ('django.db.models.fields.TextField', [], {'blank': 'True'}), - 'uuid': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '36'}) - } - } - - complete_apps = ['pubdb'] +from __future__ import unicode_literals + +from django.db import migrations, models +import rpki.fields + + +class Migration(migrations.Migration): + + dependencies = [ + ] + + operations = [ + migrations.CreateModel( + name='Client', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('client_handle', models.CharField(unique=True, max_length=255)), + ('base_uri', models.TextField()), + ('bpki_cert', rpki.fields.CertificateField(default=None, serialize=False, blank=True)), + ('bpki_glue', rpki.fields.CertificateField(default=None, serialize=False, null=True, blank=True)), + ('last_cms_timestamp', rpki.fields.SundialField(null=True, blank=True)), + ], + ), + migrations.CreateModel( + name='Delta', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('serial', models.BigIntegerField()), + ('xml', models.TextField()), + ('hash', models.CharField(max_length=64)), + ('expires', rpki.fields.SundialField()), + ], + ), + migrations.CreateModel( + name='PublishedObject', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('uri', models.CharField(max_length=255)), + ('der', rpki.fields.BlobField(default=None, serialize=False, blank=True)), + ('hash', models.CharField(max_length=64)), + ('client', models.ForeignKey(to='pubdb.Client')), + ], + ), + migrations.CreateModel( + name='Session', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('uuid', models.CharField(unique=True, max_length=36)), + ('serial', models.BigIntegerField()), + ('snapshot', models.TextField(blank=True)), + ('hash', models.CharField(max_length=64, blank=True)), + ], + ), + migrations.AddField( + model_name='publishedobject', + name='session', + field=models.ForeignKey(to='pubdb.Session'), + ), + migrations.AddField( + model_name='delta', + name='session', + field=models.ForeignKey(to='pubdb.Session'), + ), + migrations.AlterUniqueTogether( + name='publishedobject', + unique_together=set([('session', 'hash'), ('session', 'uri')]), + ), + ] diff --git a/rpki/rpkic.py b/rpki/rpkic.py index 0e485200..33f9e03e 100644 --- a/rpki/rpkic.py +++ b/rpki/rpkic.py @@ -130,6 +130,9 @@ class main(Cmd): os.environ.update(DJANGO_SETTINGS_MODULE = "rpki.django_settings.irdb") + import django + django.setup() + import rpki.irdb # pylint: disable=W0621 try: @@ -150,16 +153,6 @@ class main(Cmd): except rpki.config.ConfigParser.Error: pass - # Need to figure out whether we really want rpkic setting up - # databases or not. Defer until we've caught up to a current - # version of Django, are past the change from South to Django - # 1.7+'s migration scheme, and other potential complications. - - if False: - import django.core.management - django.core.management.call_command("syncdb", verbosity = 3, load_initial_data = False) - django.core.management.call_command("migrate", verbosity = 3) - self.zoo = rpki.irdb.Zookeeper(cfg = cfg, handle = self.handle, logstream = sys.stdout) |