feat: 状态检测

This commit is contained in:
李如威 2025-09-22 16:56:15 +08:00
parent fb646cd3f7
commit d29df4d867
1 changed files with 16 additions and 12 deletions

View File

@ -15,24 +15,28 @@ class StatusNode(AsyncNode):
status_url = self.params[self.id].get("status_url", "")
cmd_str = "\n".join(
[
f'status_code=$(curl -s -o /dev/null -w "%{{http_code}}" {status_url})',
'if [ "$status_code" -eq 200 ]; then',
' echo "true"',
" exit 0",
"else",
' echo "Error: status code $status_code" >&2',
" exit 1",
"fi",
]
)
logger.info(cmd_str)
return {
"host": self.params[self.id].get("host"),
"user": self.params[self.id].get("user"),
"password": self.params[self.id].get("password"),
"port": self.params[self.id].get("port"),
"sudo": self.params[self.id].get("sudo", False),
"cmd": " \ \n".join(
[
f'status_code=$(curl -s -o /dev/null -w "%{{http_code}}" {status_url})',
'if [ "$status_code" -eq 200 ]; then',
' echo "true"',
" exit 0",
"else",
' echo "Error: status code $status_code" >&2',
" exit 1",
"fi",
]
),
"cmd": cmd_str,
}
async def exec_async(self, prep_res):