Skip to content

Commit

Permalink
Fix more domain/host naming inconsistencies for RPKI
Browse files Browse the repository at this point in the history
  • Loading branch information
mxsasha committed Jun 21, 2022
1 parent 2eaeb3d commit 2ccf9a8
Show file tree
Hide file tree
Showing 5 changed files with 78 additions and 26 deletions.
2 changes: 1 addition & 1 deletion checks/migrations/0011_rpkimxnsdomain.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ class Migration(migrations.Migration):
models.ForeignKey(
null=True,
on_delete=django.db.models.deletion.CASCADE,
related_name="mxnsdomains",
related_name="mxnshost",
to="checks.mailtestrpki",
),
),
Expand Down
52 changes: 52 additions & 0 deletions checks/migrations/0013_auto_20220621_1844.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
# Generated by Django 3.2.12 on 2022-06-21 18:44

from django.db import migrations, models
import django.db.models.deletion


class Migration(migrations.Migration):

dependencies = [
("checks", "0012_rpki_name_change"),
]

operations = [
migrations.AlterField(
model_name="rpkimxhost",
name="mailtestrpki",
field=models.ForeignKey(
null=True, on_delete=django.db.models.deletion.CASCADE, related_name="mxhosts", to="checks.mailtestrpki"
),
),
migrations.AlterField(
model_name="rpkimxnshost",
name="mailtestrpki",
field=models.ForeignKey(
null=True,
on_delete=django.db.models.deletion.CASCADE,
related_name="mxnshosts",
to="checks.mailtestrpki",
),
),
migrations.AlterField(
model_name="rpkinshost",
name="mailtestrpki",
field=models.ForeignKey(
null=True, on_delete=django.db.models.deletion.CASCADE, related_name="nshosts", to="checks.mailtestrpki"
),
),
migrations.AlterField(
model_name="rpkinshost",
name="webtestrpki",
field=models.ForeignKey(
null=True, on_delete=django.db.models.deletion.CASCADE, related_name="nshosts", to="checks.webtestrpki"
),
),
migrations.AlterField(
model_name="rpkiwebhost",
name="webtestrpki",
field=models.ForeignKey(
null=True, on_delete=django.db.models.deletion.CASCADE, related_name="webhosts", to="checks.webtestrpki"
),
),
]
10 changes: 5 additions & 5 deletions checks/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -788,7 +788,7 @@ class Meta:


class RpkiMxHost(RpkiTestHost):
mailtestrpki = models.ForeignKey(MailTestRpki, null=True, related_name="mxdomains", on_delete=models.CASCADE)
mailtestrpki = models.ForeignKey(MailTestRpki, null=True, related_name="mxhosts", on_delete=models.CASCADE)

def __dir__(self):
return (
Expand All @@ -803,8 +803,8 @@ def __dir__(self):


class RpkiNsHost(RpkiTestHost):
webtestrpki = models.ForeignKey(WebTestRpki, null=True, related_name="nsdomains", on_delete=models.CASCADE)
mailtestrpki = models.ForeignKey(MailTestRpki, null=True, related_name="nsdomains", on_delete=models.CASCADE)
webtestrpki = models.ForeignKey(WebTestRpki, null=True, related_name="nshosts", on_delete=models.CASCADE)
mailtestrpki = models.ForeignKey(MailTestRpki, null=True, related_name="nshosts", on_delete=models.CASCADE)

def __dir__(self):
return (
Expand All @@ -820,7 +820,7 @@ def __dir__(self):


class RpkiMxNsHost(RpkiTestHost):
mailtestrpki = models.ForeignKey(MailTestRpki, null=True, related_name="mxnsdomains", on_delete=models.CASCADE)
mailtestrpki = models.ForeignKey(MailTestRpki, null=True, related_name="mxnshosts", on_delete=models.CASCADE)

def __dir__(self):
return (
Expand All @@ -835,7 +835,7 @@ def __dir__(self):


class RpkiWebHost(RpkiTestHost):
webtestrpki = models.ForeignKey(WebTestRpki, null=True, related_name="webdomains", on_delete=models.CASCADE)
webtestrpki = models.ForeignKey(WebTestRpki, null=True, related_name="webhosts", on_delete=models.CASCADE)

def __dir__(self):
return (
Expand Down
10 changes: 5 additions & 5 deletions checks/tasks/rpki.py
Original file line number Diff line number Diff line change
Expand Up @@ -380,18 +380,18 @@ def gen_tech_data(host, asn, prefix, validity, errors) -> List[str]:
def build_summary_report(parent, parent_name, category) -> None:
"""Build the summary report for all the IP addresses."""
if parent_name == "webtestrpki":
webset = parent.webdomains.all().order_by("host")
nsset = parent.nsdomains.all().order_by("host")
webset = parent.webhosts.all().order_by("host")
nsset = parent.nshosts.all().order_by("host")

generate_roa_existence_report("web_rpki_exists", category, webset)
generate_validity_report("web_rpki_valid", category, webset)
generate_roa_existence_report("ns_rpki_exists", category, nsset)
generate_validity_report("ns_rpki_valid", category, nsset)

elif parent_name == "mailtestrpki":
mxset = parent.mxdomains.all().order_by("host")
nsset = parent.nsdomains.all().order_by("host")
mxnsset = parent.mxnsdomains.all().order_by("host")
mxset = parent.mxhosts.all().order_by("host")
nsset = parent.nshosts.all().order_by("host")
mxnsset = parent.mxnshosts.all().order_by("host")

generate_roa_existence_report("mail_rpki_exists", category, mxset)
generate_validity_report("mail_rpki_valid", category, mxset)
Expand Down
30 changes: 15 additions & 15 deletions interface/batch/util.py
Original file line number Diff line number Diff line change
Expand Up @@ -387,8 +387,8 @@ def get_batch_request_info(batch_request, prefetch_related, custom_instances):
elif probe.name == "appsecpriv":
prefetch_fields.add(f"{inter_table_relation}__webtestset")
elif probe.name == "rpki":
prefetch_fields.add(f"{inter_table_relation}__nsdomains")
prefetch_fields.add(f"{inter_table_relation}__webdomains")
prefetch_fields.add(f"{inter_table_relation}__nshosts")
prefetch_fields.add(f"{inter_table_relation}__webhosts")
else:
if probe.name == "tls":
prefetch_fields.add(f"{inter_table_relation}__testset")
Expand All @@ -398,8 +398,8 @@ def get_batch_request_info(batch_request, prefetch_related, custom_instances):
elif probe.name == "dnssec":
prefetch_fields.add(f"{inter_table_relation}__testset")
elif probe.name == "rpki":
prefetch_fields.add(f"{inter_table_relation}__nsdomains")
prefetch_fields.add(f"{inter_table_relation}__mxdomains")
prefetch_fields.add(f"{inter_table_relation}__nshosts")
prefetch_fields.add(f"{inter_table_relation}__mxhosts")

for custom_instance in custom_instances:
custom_prefetch = custom_instance.related_db_tables(batch_request.type)
Expand Down Expand Up @@ -555,8 +555,8 @@ def _get_web_nameservers(cls, report_table):
for nsdomain in nsdomains:
nameservers[nsdomain.domain] = cls._get_addresses_info(nsdomain)

for nsdomain in report_table.rpki.nsdomains.all():
nameservers[nsdomain.host] = cls._add_routing_info(nsdomain, nameservers.get(nsdomain.host, None))
for nshost in report_table.rpki.nshosts.all():
nameservers[nshost.host] = cls._add_routing_info(nshost, nameservers.get(nshost.host, None))

return nameservers

Expand All @@ -567,16 +567,16 @@ def _get_mail_nameservers(cls, report_table):
for nsdomain in nsdomains:
nameservers[nsdomain.domain] = cls._get_addresses_info(nsdomain)

for nsdomain in report_table.rpki.nsdomains.all():
nameservers[nsdomain.host] = cls._add_routing_info(nsdomain, nameservers.get(nsdomain.host, None))
for nshost in report_table.rpki.nshosts.all():
nameservers[nshost.host] = cls._add_routing_info(nshost, nameservers.get(nshost.host, None))

return nameservers

@classmethod
def _get_mail_mx_nameservers(cls, report_table):
nameservers = {}
for mxnsdomain in report_table.rpki.mxnsdomains.all():
nameservers[mxnsdomain.host] = cls._get_routing_info(mxnsdomain)
for mxnshost in report_table.rpki.mxnshosts.all():
nameservers[mxnshost.host] = cls._get_routing_info(mxnshost)

return nameservers

Expand All @@ -598,8 +598,8 @@ def _get_web_webservers(cls, report_table):
return webservers

# only loops when there's actual A/AAAA records (and routing info)
for webdomain in report_table.rpki.webdomains.all():
webservers = cls._add_routing_info(webdomain, webservers)
for webhost in report_table.rpki.webhosts.all():
webservers = cls._add_routing_info(webhost, webservers)

for dttls in report_table.tls.webtestset.all():
info = cls._get_web_tls_info(dttls, report_table)
Expand Down Expand Up @@ -627,9 +627,9 @@ def _get_mail_mailservers(cls, report_table):
if not dtdnssec.domain.endswith("."):
continue

for mxdomain in report_table.rpki.mxdomains.all():
addr = mailservers.get(mxdomain.host, {}).get("addresses")
mailservers[mxdomain.host] = cls._add_routing_info(mxdomain, addr)
for mxhost in report_table.rpki.mxhosts.all():
addr = mailservers.get(mxhost.host, {}).get("addresses")
mailservers[mxhost.host] = cls._add_routing_info(mxhost, addr)

for dtdnssec in report_table.dnssec.testset.all():
# Cheap way to see if the result is for the domain
Expand Down

0 comments on commit 2ccf9a8

Please sign in to comment.