diff options
author | Rob Austein <sra@hactrn.net> | 2016-04-23 15:03:14 +0000 |
---|---|---|
committer | Rob Austein <sra@hactrn.net> | 2016-04-23 15:03:14 +0000 |
commit | c7d9a8366304b2a79c97948890656644218e6f97 (patch) | |
tree | 37f09cb3a7c4de29e8772d2428ae1684cfd5b3ac /rpki | |
parent | 44d1c604a15ff23151b5b7b40a5953b2af9ca935 (diff) |
Add Root model to rpki.rpkidb and root-related attributes to
left-right schema. Not really using of this stuff yet, but haven't
broken existing code yet either.
svn path=/branches/tk705/; revision=6371
Diffstat (limited to 'rpki')
-rw-r--r-- | rpki/relaxng.py | 28 | ||||
-rw-r--r-- | rpki/rpkidb/migrations/0007_root.py | 25 | ||||
-rw-r--r-- | rpki/rpkidb/models.py | 7 |
3 files changed, 59 insertions, 1 deletions
diff --git a/rpki/relaxng.py b/rpki/relaxng.py index 7375a077..9a01306c 100644 --- a/rpki/relaxng.py +++ b/rpki/relaxng.py @@ -8,7 +8,7 @@ from rpki.relaxng_parser import RelaxNGParser ## Parsed RelaxNG left_right schema left_right = RelaxNGParser(r'''<?xml version="1.0" encoding="UTF-8"?> <!-- - $Id: left-right.rnc 6137 2015-10-20 19:21:37Z sra $ + $Id$ RelaxNG schema for RPKI left-right protocol. @@ -554,6 +554,21 @@ left_right = RelaxNGParser(r'''<?xml version="1.0" encoding="UTF-8"?> </attribute> </optional> <optional> + <attribute name="root_asn_resources"> + <ref name="asn_list"/> + </attribute> + </optional> + <optional> + <attribute name="root_ipv4_resources"> + <ref name="ipv4_list"/> + </attribute> + </optional> + <optional> + <attribute name="root_ipv6_resources"> + <ref name="ipv6_list"/> + </attribute> + </optional> + <optional> <element name="bpki_cert"> <ref name="base64"/> </element> @@ -564,6 +579,13 @@ left_right = RelaxNGParser(r'''<?xml version="1.0" encoding="UTF-8"?> </element> </optional> </define> + <define name="parent_readonly"> + <optional> + <element name="rpki_root_cert"> + <ref name="base64"/> + </element> + </optional> + </define> <define name="parent_query" combine="choice"> <element name="parent"> <ref name="ctl_create"/> @@ -578,6 +600,7 @@ left_right = RelaxNGParser(r'''<?xml version="1.0" encoding="UTF-8"?> <ref name="ctl_create"/> <ref name="tenant_handle"/> <ref name="parent_handle"/> + <ref name="parent_readonly"/> </element> </define> <define name="parent_query" combine="choice"> @@ -594,6 +617,7 @@ left_right = RelaxNGParser(r'''<?xml version="1.0" encoding="UTF-8"?> <ref name="ctl_set"/> <ref name="tenant_handle"/> <ref name="parent_handle"/> + <ref name="parent_readonly"/> </element> </define> <define name="parent_query" combine="choice"> @@ -609,6 +633,7 @@ left_right = RelaxNGParser(r'''<?xml version="1.0" encoding="UTF-8"?> <ref name="tenant_handle"/> <ref name="parent_handle"/> <ref name="parent_payload"/> + <ref name="parent_readonly"/> </element> </define> <define name="parent_query" combine="choice"> @@ -623,6 +648,7 @@ left_right = RelaxNGParser(r'''<?xml version="1.0" encoding="UTF-8"?> <ref name="tenant_handle"/> <ref name="parent_handle"/> <ref name="parent_payload"/> + <ref name="parent_readonly"/> </element> </define> <define name="parent_query" combine="choice"> diff --git a/rpki/rpkidb/migrations/0007_root.py b/rpki/rpkidb/migrations/0007_root.py new file mode 100644 index 00000000..f319b477 --- /dev/null +++ b/rpki/rpkidb/migrations/0007_root.py @@ -0,0 +1,25 @@ +# -*- coding: utf-8 -*- +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('rpkidb', '0006_turtle_rename'), + ] + + operations = [ + migrations.CreateModel( + name='Root', + fields=[ + ('turtle_ptr', models.OneToOneField(parent_link=True, auto_created=True, primary_key=True, serialize=False, to='rpkidb.Turtle')), + ('asn_resources', models.TextField()), + ('ipv4_resources', models.TextField()), + ('ipv6_resources', models.TextField()), + ('worker', models.OneToOneField(related_name='rooter', to='rpkidb.Parent')), + ], + bases=('rpkidb.turtle',), + ), + ] diff --git a/rpki/rpkidb/models.py b/rpki/rpkidb/models.py index 4bb95932..d2d6c6f2 100644 --- a/rpki/rpkidb/models.py +++ b/rpki/rpkidb/models.py @@ -789,6 +789,13 @@ class Parent(Turtle): return sia_uri +class Root(Turtle): + asn_resources = models.TextField() + ipv4_resources = models.TextField() + ipv6_resources = models.TextField() + worker = models.OneToOneField(Parent, related_name = "rooter") + + class CA(models.Model): last_crl_manifest_number = models.BigIntegerField(default = 1) last_issued_sn = models.BigIntegerField(default = 1) |