aboutsummaryrefslogtreecommitdiff
path: root/rpki/gui
diff options
context:
space:
mode:
Diffstat (limited to 'rpki/gui')
-rw-r--r--rpki/gui/app/glue.py7
-rw-r--r--rpki/gui/app/models.py26
2 files changed, 22 insertions, 11 deletions
diff --git a/rpki/gui/app/glue.py b/rpki/gui/app/glue.py
index f4267edc..8bc24fbf 100644
--- a/rpki/gui/app/glue.py
+++ b/rpki/gui/app/glue.py
@@ -27,11 +27,11 @@ from datetime import datetime
from rpki.resource_set import (resource_set_as, resource_set_ipv4,
resource_set_ipv6, resource_range_ipv4,
resource_range_ipv6)
-from rpki.left_right import list_received_resources_elt, report_error_elt
from rpki.irdb.zookeeper import Zookeeper
from rpki.gui.app import models
from rpki.exceptions import BadIPResource
+from lxml.etree import Element, SubElement
from django.contrib.auth.models import User
from django.db.transaction import commit_on_success
@@ -77,7 +77,10 @@ def list_received_resources(log, conf):
"""
z = Zookeeper(handle=conf.handle)
- pdus = z.call_rpkid(list_received_resources_elt.make_pdu(self_handle=conf.handle))
+ req = Elements(rpki.left_right.tag_msg, nsmap=rpki.left_right.nsmap,
+ type="query", version=rpki.left_right.version)
+ SubElement(req, rpki.left_right.tag_list_received_resources, self_handle=conf.handle)
+ pdus = z.call_rpkid(req)
# pdus is sometimes None (see https://trac.rpki.net/ticket/681)
if pdus is None:
print >>log, 'error: call_rpkid() returned None for handle %s when fetching received resources' % conf.handle
diff --git a/rpki/gui/app/models.py b/rpki/gui/app/models.py
index 9d453261..ed32e9d2 100644
--- a/rpki/gui/app/models.py
+++ b/rpki/gui/app/models.py
@@ -153,11 +153,15 @@ class Conf(rpki.irdb.models.ResourceHolderCA):
# build a Q filter to select all RouteOrigin objects covered by
# prefixes in the resource holder's certificates
- q = models.Q()
- for p in ResourceRangeAddressV4.objects.filter(cert__conf=self):
- q |= models.Q(prefix_min__gte=p.prefix_min,
+ prefixes = ResourceRangeAddressV4.objects.filter(cert__conf=self)
+ if prefixes:
+ q = models.Q()
+ for p in prefixes:
+ q |= models.Q(prefix_min__gte=p.prefix_min,
prefix_max__lte=p.prefix_max)
- return RouteOrigin.objects.filter(q)
+ return RouteOrigin.objects.filter(q)
+ else:
+ return RouteOrigin.objects.none()
@property
def routes_v6(self):
@@ -167,11 +171,15 @@ class Conf(rpki.irdb.models.ResourceHolderCA):
# build a Q filter to select all RouteOrigin objects covered by
# prefixes in the resource holder's certificates
- q = models.Q()
- for p in ResourceRangeAddressV6.objects.filter(cert__conf=self):
- q |= models.Q(prefix_min__gte=p.prefix_min,
- prefix_max__lte=p.prefix_max)
- return RouteOriginV6.objects.filter(q)
+ prefixes = ResourceRangeAddressV6.objects.filter(cert__conf=self)
+ if prefixes:
+ q = models.Q()
+ for p in ResourceRangeAddressV6.objects.filter(cert__conf=self):
+ q |= models.Q(prefix_min__gte=p.prefix_min,
+ prefix_max__lte=p.prefix_max)
+ return RouteOriginV6.objects.filter(q)
+ else:
+ return RouteOriginV6.objects.none()
def send_alert(self, subject, message, from_email, severity=Alert.INFO):
"""Store an alert for this resource holder."""