diff options
author | Rob Austein <sra@hactrn.net> | 2015-10-26 20:31:13 +0000 |
---|---|---|
committer | Rob Austein <sra@hactrn.net> | 2015-10-26 20:31:13 +0000 |
commit | e1d631df7838515e44edf5a38ff6362451da1340 (patch) | |
tree | 9f1a11905d9ef52d988b999cc085247c22c4c713 | |
parent | b46deb1417dc3596e9ac9fe2fe8cc0b7f42457e7 (diff) |
Whack a few things stale imports and Django 1.6-isms to get GUI
running with new code base. Now working with
$ yamltest.py --sql mysql --gui smoketest.1.yaml
svn path=/branches/tk705/; revision=6153
-rwxr-xr-x[-rw-r--r--] | ca/tests/yamltest.py | 9 | ||||
-rw-r--r-- | rpki/gui/app/glue.py | 4 | ||||
-rw-r--r-- | rpki/gui/app/migrations/0001_initial.py | 249 | ||||
-rw-r--r-- | rpki/gui/app/views.py | 3 | ||||
-rw-r--r-- | rpki/gui/cacheview/util.py | 4 |
5 files changed, 260 insertions, 9 deletions
diff --git a/ca/tests/yamltest.py b/ca/tests/yamltest.py index f82cc192..ae87f949 100644..100755 --- a/ca/tests/yamltest.py +++ b/ca/tests/yamltest.py @@ -689,6 +689,7 @@ class allocation(object): cmd = (prog_rpki_manage, "runserver", str(port)) env = dict(os.environ, RPKI_CONF = self.path("rpki.conf"), + DJANGO_SETTINGS_MODULE = "rpki.django_settings.gui", RPKI_DJANGO_DEBUG = "yes", ALLOW_PLAIN_HTTP_FOR_TESTING = "I solemnly swear that I am not running this in production") p = subprocess.Popen(cmd, cwd = self.path(), env = env, @@ -756,10 +757,10 @@ parser.add_argument("--synchronize", action = "store_true", help = "synchronize IRDB with daemons") parser.add_argument("--profile", action = "store_true", help = "enable profiling") -parser.add_argument("-g", "--run_gui", action = "store_true", +parser.add_argument("-g", "--run_gui", "--gui", action = "store_true", help = "enable GUI using django-admin runserver") -parser.add_argument("--browser", action = "store_true", - help = "create web browser tabs for GUI") +parser.add_argument("--no-browser", action = "store_true", + help = "don't create web browser tabs for GUI") parser.add_argument("--notify-when-startup-complete", type = int, help = "send SIGUSR1 to this process when startup is complete") parser.add_argument("--store-router-private-keys", action = "store_true", @@ -950,7 +951,7 @@ try: if not d.is_hosted: url = "http://127.0.0.1:%d/rpki/" % (8000 + d.engine) print "GUI URL", url, "for", d.name - if args.browser: + if not args.no_browser: if d is db.root: webbrowser.open_new(url) else: diff --git a/rpki/gui/app/glue.py b/rpki/gui/app/glue.py index 330e014b..c312618f 100644 --- a/rpki/gui/app/glue.py +++ b/rpki/gui/app/glue.py @@ -34,7 +34,7 @@ from rpki.left_right import nsmap, version, tag_msg, tag_list_received_resources from lxml.etree import Element, SubElement from django.contrib.auth.models import User -from django.db.transaction import commit_on_success +from django.db.transaction import atomic def ghostbuster_to_vcard(gbr): @@ -67,7 +67,7 @@ def ghostbuster_to_vcard(gbr): return vcard.serialize() -@commit_on_success +@atomic def list_received_resources(log, conf): """ Query rpkid for this resource handle's received resources. diff --git a/rpki/gui/app/migrations/0001_initial.py b/rpki/gui/app/migrations/0001_initial.py new file mode 100644 index 00000000..1a02dd8a --- /dev/null +++ b/rpki/gui/app/migrations/0001_initial.py @@ -0,0 +1,249 @@ +# -*- coding: utf-8 -*- +from __future__ import unicode_literals + +from django.db import migrations, models +from django.conf import settings +import rpki.gui.models +import rpki.gui.app.models + + +class Migration(migrations.Migration): + + dependencies = [ + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ('irdb', '0005_auto_20151023_2151'), + ('routeview', '__first__'), + ] + + operations = [ + migrations.CreateModel( + name='Alert', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('severity', models.SmallIntegerField(default=0, choices=[(0, b'info'), (1, b'warning'), (2, b'error')])), + ('when', models.DateTimeField(auto_now_add=True)), + ('seen', models.BooleanField(default=False)), + ('subject', models.CharField(max_length=66)), + ('text', models.TextField()), + ], + ), + migrations.CreateModel( + name='ConfACL', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ], + ), + migrations.CreateModel( + name='GhostbusterRequest', + fields=[ + ('ghostbusterrequest_ptr', models.OneToOneField(parent_link=True, auto_created=True, primary_key=True, serialize=False, to='irdb.GhostbusterRequest')), + ('full_name', models.CharField(max_length=40)), + ('family_name', models.CharField(max_length=20)), + ('given_name', models.CharField(max_length=20)), + ('additional_name', models.CharField(max_length=20, null=True, blank=True)), + ('honorific_prefix', models.CharField(max_length=10, null=True, blank=True)), + ('honorific_suffix', models.CharField(max_length=10, null=True, blank=True)), + ('email_address', models.EmailField(max_length=254, null=True, blank=True)), + ('organization', models.CharField(max_length=255, null=True, blank=True)), + ('telephone', rpki.gui.app.models.TelephoneField(max_length=40, null=True, blank=True)), + ('box', models.CharField(max_length=40, null=True, verbose_name=b'P.O. Box', blank=True)), + ('extended', models.CharField(max_length=255, null=True, blank=True)), + ('street', models.CharField(max_length=255, null=True, blank=True)), + ('city', models.CharField(max_length=40, null=True, blank=True)), + ('region', models.CharField(help_text=b'state or province', max_length=40, null=True, blank=True)), + ('code', models.CharField(max_length=40, null=True, verbose_name=b'Postal Code', blank=True)), + ('country', models.CharField(max_length=40, null=True, blank=True)), + ], + options={ + 'ordering': ('family_name', 'given_name'), + }, + bases=('irdb.ghostbusterrequest',), + ), + migrations.CreateModel( + name='ResourceCert', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('not_before', models.DateTimeField()), + ('not_after', models.DateTimeField()), + ('uri', models.CharField(max_length=255)), + ], + ), + migrations.CreateModel( + name='ResourceRangeAddressV4', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('prefix_min', rpki.gui.models.IPv4AddressField(db_index=True)), + ('prefix_max', rpki.gui.models.IPv4AddressField(db_index=True)), + ('cert', models.ForeignKey(related_name='address_ranges', to='app.ResourceCert')), + ], + options={ + 'ordering': ('prefix_min',), + 'abstract': False, + }, + ), + migrations.CreateModel( + name='ResourceRangeAddressV6', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('prefix_min', rpki.gui.models.IPv6AddressField(db_index=True)), + ('prefix_max', rpki.gui.models.IPv6AddressField(db_index=True)), + ('cert', models.ForeignKey(related_name='address_ranges_v6', to='app.ResourceCert')), + ], + options={ + 'ordering': ('prefix_min',), + 'abstract': False, + }, + ), + migrations.CreateModel( + name='ResourceRangeAS', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('min', models.PositiveIntegerField()), + ('max', models.PositiveIntegerField()), + ('cert', models.ForeignKey(related_name='asn_ranges', to='app.ResourceCert')), + ], + options={ + 'ordering': ('min', 'max'), + 'abstract': False, + }, + ), + migrations.CreateModel( + name='Timestamp', + fields=[ + ('name', models.CharField(max_length=30, serialize=False, primary_key=True)), + ('ts', models.DateTimeField()), + ], + ), + migrations.CreateModel( + name='Child', + fields=[ + ], + options={ + 'proxy': True, + 'verbose_name_plural': 'children', + }, + bases=('irdb.child',), + ), + migrations.CreateModel( + name='ChildASN', + fields=[ + ], + options={ + 'proxy': True, + }, + bases=('irdb.childasn',), + ), + migrations.CreateModel( + name='ChildNet', + fields=[ + ], + options={ + 'proxy': True, + }, + bases=('irdb.childnet',), + ), + migrations.CreateModel( + name='Client', + fields=[ + ], + options={ + 'verbose_name': 'Client', + 'proxy': True, + }, + bases=('irdb.client',), + ), + migrations.CreateModel( + name='Conf', + fields=[ + ], + options={ + 'proxy': True, + }, + bases=('irdb.resourceholderca',), + ), + migrations.CreateModel( + name='Parent', + fields=[ + ], + options={ + 'proxy': True, + }, + bases=('irdb.parent',), + ), + migrations.CreateModel( + name='Repository', + fields=[ + ], + options={ + 'verbose_name': 'Repository', + 'proxy': True, + 'verbose_name_plural': 'Repositories', + }, + bases=('irdb.repository',), + ), + migrations.CreateModel( + name='ROARequest', + fields=[ + ], + options={ + 'proxy': True, + }, + bases=('irdb.roarequest',), + ), + migrations.CreateModel( + name='ROARequestPrefix', + fields=[ + ], + options={ + 'proxy': True, + }, + bases=('irdb.roarequestprefix',), + ), + migrations.CreateModel( + name='RouteOrigin', + fields=[ + ], + options={ + 'proxy': True, + }, + bases=('routeview.routeorigin',), + ), + migrations.CreateModel( + name='RouteOriginV6', + fields=[ + ], + options={ + 'proxy': True, + }, + bases=('routeview.routeoriginv6',), + ), + migrations.AddField( + model_name='resourcecert', + name='conf', + field=models.ForeignKey(related_name='certs', to='app.Conf'), + ), + migrations.AddField( + model_name='resourcecert', + name='parent', + field=models.ForeignKey(related_name='certs', to='app.Parent', null=True), + ), + migrations.AddField( + model_name='confacl', + name='conf', + field=models.ForeignKey(to='app.Conf'), + ), + migrations.AddField( + model_name='confacl', + name='user', + field=models.ForeignKey(to=settings.AUTH_USER_MODEL), + ), + migrations.AddField( + model_name='alert', + name='conf', + field=models.ForeignKey(related_name='alerts', to='app.Conf'), + ), + migrations.AlterUniqueTogether( + name='confacl', + unique_together=set([('user', 'conf')]), + ), + ] diff --git a/rpki/gui/app/views.py b/rpki/gui/app/views.py index 1d468a07..469cebc9 100644 --- a/rpki/gui/app/views.py +++ b/rpki/gui/app/views.py @@ -42,7 +42,8 @@ from django.forms.formsets import formset_factory, BaseFormSet from django.contrib import messages from django.db.models import Q -from rpki.irdb import Zookeeper, ChildASN, ChildNet, ROARequestPrefix +from rpki.irdb import Zookeeper +from rpki.irdb.models import ChildASN, ChildNet, ROARequestPrefix from rpki.gui.app import models, forms, glue, range_list from rpki.resource_set import (resource_range_as, resource_range_ip, roa_prefix_ipv4) diff --git a/rpki/gui/cacheview/util.py b/rpki/gui/cacheview/util.py index 7ab4837a..e843b7cd 100644 --- a/rpki/gui/cacheview/util.py +++ b/rpki/gui/cacheview/util.py @@ -249,7 +249,7 @@ def save_status(repo, vs): logger.debug('object is unchanged') -@transaction.commit_on_success +@transaction.atomic def process_cache(root, xml_file): last_uri = None @@ -289,7 +289,7 @@ def process_cache(root, xml_file): logger.info('done with garbage collection') -@transaction.commit_on_success +@transaction.atomic def process_labels(xml_file): logger.info('updating labels...') |