mirror of
https://github.com/NicolasBohn/NexQuant.git
synced 2026-08-09 04:57:44 +00:00
chore: fix PR template (#487)
* fix PR template * subfolders of the log displayed on the web page * fix code error * add health check * reformat with isort * reformat with black * update README * fix bug && experience confusing * reformat with black & update health check code * reformat with isort * reformat with black * update README.md * Removed duplicates in documentation and health_check && Upgraded code for filtering folders * update docs * reformat with black
This commit is contained in:
@@ -0,0 +1,49 @@
|
||||
import socket
|
||||
|
||||
import docker
|
||||
|
||||
from rdagent.log import rdagent_logger as logger
|
||||
|
||||
|
||||
def check_docker() -> None:
|
||||
try:
|
||||
client = docker.from_env()
|
||||
client.images.pull("hello-world")
|
||||
container = client.containers.run("hello-world", detach=True)
|
||||
logs = container.logs().decode("utf-8")
|
||||
print(logs)
|
||||
container.remove()
|
||||
logger.info(f"The docker status is normal")
|
||||
except docker.errors.DockerException as e:
|
||||
logger.error(f"An error occurred: {e}")
|
||||
logger.warning(
|
||||
f"Docker status is exception, please check the docker configuration or reinstall it. Refs: https://docs.docker.com/engine/install/ubuntu/."
|
||||
)
|
||||
|
||||
|
||||
def is_port_in_use(port):
|
||||
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
|
||||
return s.connect_ex(("127.0.0.1", port)) == 0
|
||||
|
||||
|
||||
def check_and_list_free_ports(start_port=19899, max_ports=10) -> None:
|
||||
is_occupied = is_port_in_use(port=start_port)
|
||||
if is_occupied:
|
||||
free_ports = []
|
||||
for port in range(start_port, start_port + max_ports):
|
||||
if not is_port_in_use(port):
|
||||
free_ports.append(port)
|
||||
logger.warning(
|
||||
f"Port 19899 is occupied, please replace it with an available port when running the `rdagent ui` command. Available ports: {free_ports}"
|
||||
)
|
||||
else:
|
||||
logger.info(f"Port 19899 is not occupied, you can run the `rdagent ui` command")
|
||||
|
||||
|
||||
def health_check():
|
||||
"""
|
||||
Check that docker is installed correctly,
|
||||
and that the ports used in the sample README are not occupied.
|
||||
"""
|
||||
check_docker()
|
||||
check_and_list_free_ports()
|
||||
Reference in New Issue
Block a user