查完端口层接着查哪层
按分层模型,端口这层没问题,next_check("端口") 接着查哪层?
贯穿全路线的分层模型:从底往上 LAYERS = 进程 → 端口 → 解析 → 连接 → HTTP。fault_layer(证据) 交回从底往上第一个不 OK 的层;deeper 哪层更底、next_check 查上一层、all_ok 是否全好。
LAYERS = ["进程", "端口", "解析", "连接", "HTTP"]
def fault_layer(ev):
"""ev: {层名: 这层是否 OK};交回从底往上第一个不 OK 的层(全 OK 交回 "")。"""
for L in LAYERS:
if not ev.get(L, True):
return L
return ""
def deeper(a, b):
"""哪一层更靠底层(进程最底、HTTP 最上);交回更底的那个。"""
return a if LAYERS.index(a) <= LAYERS.index(b) else b
def next_check(layer):
"""分层排查:某层没问题,接着查上面一层;到 HTTP 就停在 HTTP。"""
i = LAYERS.index(layer)
return LAYERS[min(i + 1, len(LAYERS) - 1)]
def all_ok(ev):
"""五层是否全都 OK。"""
return all(ev.get(L, True) for L in LAYERS)
print(next_check("端口"))
全部评论