aboutsummaryrefslogtreecommitdiff
path: root/rpki
diff options
context:
space:
mode:
authorRob Austein <sra@hactrn.net>2016-04-23 15:03:14 +0000
committerRob Austein <sra@hactrn.net>2016-04-23 15:03:14 +0000
commitc7d9a8366304b2a79c97948890656644218e6f97 (patch)
tree37f09cb3a7c4de29e8772d2428ae1684cfd5b3ac /rpki
parent44d1c604a15ff23151b5b7b40a5953b2af9ca935 (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.py28
-rw-r--r--rpki/rpkidb/migrations/0007_root.py25
-rw-r--r--rpki/rpkidb/models.py7
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)