diff options
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) |