Add French docstrings and README

- Docstrings for all modules, classes and methods
- README.md with installation and usage instructions
- Update CLAUDE.md with dns.py

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
2026-01-26 18:25:20 +01:00
parent 9f3c052e2a
commit b0d571ae26
8 changed files with 341 additions and 18 deletions

View File

@@ -1,3 +1,10 @@
"""
Checker DNS.
Vérifie la disponibilité d'un serveur DNS et sa capacité à résoudre
des requêtes.
"""
import time
import dns.resolver
@@ -7,13 +14,38 @@ from .ping import PingChecker
class DnsChecker(BaseChecker):
"""
Vérifie la disponibilité d'un serveur DNS.
Effectue d'abord un ping pour vérifier que le serveur est joignable,
puis exécute une requête DNS configurable.
Configuration YAML:
host: Adresse IP du serveur DNS (obligatoire).
query: Nom de domaine à résoudre (obligatoire).
record_type: Type d'enregistrement DNS (défaut: A).
Valeurs possibles: A, AAAA, MX, TXT, CNAME, etc.
timeout: Délai d'attente en secondes (défaut: 5).
"""
def check(self) -> CheckResult:
"""
Vérifie le serveur DNS.
Étapes:
1. Ping du serveur DNS pour vérifier sa disponibilité.
2. Requête DNS du type configuré.
Returns:
CheckResult avec success=True si le serveur répond
et la requête DNS aboutit.
"""
host = self.config["host"]
query_name = self.config["query"]
query_type = self.config.get("record_type", "A")
timeout = self.config.get("timeout", 5)
# First check if host is reachable via ping
# Vérifie d'abord que le serveur est joignable
ping_checker = PingChecker(self.name, {"host": host, "timeout": timeout})
ping_result = ping_checker.check()
@@ -24,7 +56,7 @@ class DnsChecker(BaseChecker):
response_time=None
)
# Now perform DNS query
# Exécute la requête DNS
resolver = dns.resolver.Resolver()
resolver.nameservers = [host]
resolver.timeout = timeout