Funktionalität des DNS-RR-Imports

Verfahrensbeschreibung

Durch das Import-Verfahren besteht die Möglichkeit, den Sollzustand eines ganzheitlichen Datenbestandes abzubilden. Dieser ganzheitliche Datenbestand umfasst alle (regulär modifizierbaren, dh. dnscfg.record_type.force_auto_dml = false) RR-Sätze eines FQDNs.

Als Import-Medium dient ein JSON-Dokument. Das Import-Verfahren besteht darin, dass der aktuell vorhandene Datenbestand eines FQDNs (d.h. dessen RR-Sätze) mit dem des zu importierenden Datenbestandes (RR-Sätze des Import-JSON-Dokuments) nach einem Differenzverfahren abgeglichen wird. Nach erfolgreichem Abschluss des Imports gibt es je nach strict_mode

  • true (Standard): keinen Unterschied zwischen beiden Datenbeständen, dh. der Stand der Daten im Import-Medium stellt den Sollzustand dar.
  • false: einen Unterschied; dieser besteht nur aus den Import-Daten selbst, dh. nicht importierte, aber vorher vorhandene Daten bleiben erhalten.

Pro Import-Vorgang wird genau ein FQDN behandelt. Für FQDNs selbst können Änderungen des Namens (Altwert -> Neuwert), Typs oder der Beschreibung, sowie Einträge oder Löschungen vorgenommen werden. Existiert der neue FQDN vor dem Import noch nicht, wird er automatisch angelegt. Wurde der Altwert (optional) angegeben und existiert dieser alte FQDN, wird dieser auf den Neuwert geändert. In diesem Fall darf der Neuwert als FQDN noch nicht existieren. Existiert der Altwert nicht als FQDN, wird dieser ignoriert.

Hat der FQDN nach dem Import keine RR-Sätze mehr, wird er automatisch gelöscht, sofern keine anderen Referenzen mehr bestehen. Eine Typänderung eines vorhandenen FQDNs wird, soweit sie durch den Import erforderlich wäre und eindeutig ist, automatisch vorgenommen. Eine explizite Typänderung bzw. Typangabe ist nur erforderlich, wenn die RR-Sätze des FQDNs (im Ergebnis des Imports) mehrere Möglichkeiten offenlassen und daraus ein bestimmter Typ bevorzugt werden soll.

Die folgende Tabelle zeigt die Zuordnung zwischen regulärem Objekttyp (FQDN-bezogen) und Import-Objekttyp des JSON-Dokuments:

FQDN-bezogener Objekttyp korrespondierender Import-Objekttyp (JSON)
dns.record dns.record_imp

Obwohl diese Zuordnung nur aus einem Objekttyp-Paar besteht, ist sie erforderlich, weil die imp- Funktion für die aktuell unterstützten Objekttypen generisch ist.

Datenstruktur des Import-JSON-Dokuments

Die Daten im JSON-Dokument für den RR-Import haben immer überschreibende Wirkung, dh. der Stand der Daten im importierten JSON-Dokument stellt den Sollzustand dar. Schema:

{
  "dns.record_imp": [
    {
      "data_list": [""],
      "target_is_reverse_unique": false,
      "target_is_singleton": false,
      "ttl": 0,
      "ttl_reset_days": 0,
      "type": "TXT"
    }
  ]
}

Die Import-Objekttypen (JSON-Keys des importierten JSON-Dokuments) und deren Attribute sowie Datenintegritätsbedingungen (Constraints) sind im Objekttyp- bzw. Funktionsindex unter der Funktion document sichtbar. Die inneren JSON-Objekte stellen die zu importierenden Datensätze dar. Deren Keys entsprechen den Attributnamen des zugehörigen Import-Objekttyps. Wird data_list als leeres JSON-Array übergeben, bewirkt dies die Löschung des RR-Satzes. Nicht vorkommende (weggelassene) Attribute in den inneren JSON-Objekten bekommen automatisch den Wert NULL, sofern kein Standardwert existiert.

Beispiel