aboutsummaryrefslogtreecommitdiff
path: root/rpki/rpkidb/models.py
diff options
context:
space:
mode:
authorTom Harrison <tomh@apnic.net>2018-08-25 14:11:12 +1000
committerRob Austein <sra@hactrn.net>2018-08-26 14:54:34 -0400
commit349194f64968fdade05c70db900e8518d56114ad (patch)
tree366fd036bc65e29a8fee63c29ea5f836e0f8fbc9 /rpki/rpkidb/models.py
parent1acf23f78c839e16998ae391811b1152709b8377 (diff)
[max-length] Fix ROA parsing issue
The ROA update and generate methods were parsing the ipv4 and ipv6 instance variables as if they were resource sets, rather than ROA prefix sets. This works as expected when max-length is not being used, but when max-length is used, parsing does not succeed and ROAs cannot be generated or updated. Parsing each variable as if it's a ROA prefix set, and then converting the result to a resource set, appears to fix the problem. Signed-off-by: Rob Austein <sra@hactrn.net>
Diffstat (limited to 'rpki/rpkidb/models.py')
-rw-r--r--rpki/rpkidb/models.py8
1 files changed, 4 insertions, 4 deletions
diff --git a/rpki/rpkidb/models.py b/rpki/rpkidb/models.py
index 7fdb7353..746700cf 100644
--- a/rpki/rpkidb/models.py
+++ b/rpki/rpkidb/models.py
@@ -2318,8 +2318,8 @@ class ROA(models.Model):
logger.debug("%r oversized with respect to CA, regenerating", self)
return self.regenerate(publisher = publisher)
- v4 = rpki.resource_set.resource_set_ipv4(self.ipv4)
- v6 = rpki.resource_set.resource_set_ipv6(self.ipv6)
+ v4 = rpki.resource_set.roa_prefix_set_ipv4(self.ipv4).to_resource_set()
+ v6 = rpki.resource_set.roa_prefix_set_ipv6(self.ipv6).to_resource_set()
if ee_resources.v4 != v4 or ee_resources.v6 != v6:
logger.debug("%r resources do not match EE, regenerating", self)
@@ -2353,8 +2353,8 @@ class ROA(models.Model):
if self.ipv4 is None and self.ipv6 is None:
raise rpki.exceptions.EmptyROAPrefixList
- v4 = rpki.resource_set.resource_set_ipv4(self.ipv4)
- v6 = rpki.resource_set.resource_set_ipv6(self.ipv6)
+ v4 = rpki.resource_set.roa_prefix_set_ipv4(self.ipv4).to_resource_set()
+ v6 = rpki.resource_set.roa_prefix_set_ipv6(self.ipv6).to_resource_set()
# http://stackoverflow.com/questions/26270042/how-do-you-catch-this-exception
# "Django is amazing when its not terrifying."