浏览代码

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