Преглед изворни кода

fix(api): avoid nslord lookup on load (unbreaks Celery)

Regression introduced in 1c6a6878708e43a5eba0bbf699219f33a4ad9c57.
Peter Thomassen пре 2 година
родитељ
комит
81e7f452f6
1 измењених фајлова са 6 додато и 2 уклоњено
  1. 6 2
      api/desecapi/pdns.py

+ 6 - 2
api/desecapi/pdns.py

@@ -1,6 +1,7 @@
 import json
 import re
 import socket
+from functools import cache
 from hashlib import sha1
 
 import requests
@@ -82,7 +83,10 @@ _config = {
     },
 }
 
-_nslord_ip = socket.gethostbyname("nslord")
+
+@cache
+def gethostbyname_cached(host):
+    return socket.gethostbyname(host)
 
 
 def _pdns_request(
@@ -248,7 +252,7 @@ def create_zone_master(name):
         {
             "name": name,
             "kind": "SLAVE",
-            "masters": [_nslord_ip],
+            "masters": [gethostbyname_cached("nslord")],
             "master_tsig_key_ids": ["default"],
         },
     )