File: //opt/imunify360/venv/bin/wafdsock_ready_check.py
#!/opt/imunify360/venv/bin/python3
#
# Wait for IPSD socket is ready
#
import socket as s
import sys
import time
from wafd_i360.internals import (CONFIG,
wafd_imunify_config,
logger_init)
wafdSOCK_PATH = '/var/run/imunify360/libiplists-daemon.sock'
DELAY = 1
TIMEOUT_DEFAULT = 20
logger = logger_init()
if __name__ == '__main__':
wafdsock = s.socket(s.AF_UNIX, s.SOCK_STREAM)
t0 = time.time()
try:
timeout = float(wafd_imunify_config()['socket_readycheck_timeout'])
except KeyError:
timeout = TIMEOUT_DEFAULT
except ValueError as e:
timeout = TIMEOUT_DEFAULT
logger.error("%s 'socket_readycheck_timeout=...' key parsing error: %s",
CONFIG,
e)
while True:
try:
wafdsock.connect(wafdSOCK_PATH)
except (ConnectionRefusedError, FileNotFoundError) as e:
logger.info("Waiting for wafd to start (%s)", e)
if time.time() >= t0 + timeout:
break
time.sleep(DELAY)
else:
logger.info("wafd socket is ready.")
sys.exit(0)
logger.error("Failed to connect wafd socket in time.")
sys.exit(1)