更新启动逻辑

This commit is contained in:
Xuwznln
2025-08-01 12:12:30 +08:00
parent ed123db5e9
commit fab90f0b46
3 changed files with 25 additions and 18 deletions

View File

@@ -140,10 +140,24 @@ def main():
# 加载配置文件优先加载config然后从env读取
config_path = args_dict.get("config")
working_dir = os.path.abspath(os.path.join(os.getcwd(), "unilabos_data"))
if not config_path and (not os.path.exists(working_dir) or not os.path.exists(os.path.join(working_dir, "local_config.py"))):
print_status(f"当前未指定config路径非第一次使用请通过 --config 传入 local_config.py 文件路径", "info")
print_status(f"您是否为第一次使用?并将当前文件路径 {working_dir} 作为工作目录? (Y/n)", "info")
if os.getcwd().endswith("unilabos_data"):
working_dir = os.path.abspath(os.getcwd())
else:
working_dir = os.path.abspath(os.path.join(os.getcwd(), "unilabos_data"))
if args_dict.get("working_dir"):
working_dir = args_dict.get("working_dir")
if config_path and not os.path.exists(config_path):
config_path = os.path.join(working_dir, "local_config.py")
if not os.path.exists(config_path):
print_status(
f"当前工作目录 {working_dir} 未找到local_config.py请通过 --config 传入 local_config.py 文件路径",
"error")
os._exit(1)
elif os.path.exists(working_dir) and os.path.exists(os.path.join(working_dir, "local_config.py")):
config_path = os.path.join(working_dir, "local_config.py")
elif not config_path and (not os.path.exists(working_dir) or not os.path.exists(os.path.join(working_dir, "local_config.py"))):
print_status(f"未指定config路径可通过 --config 传入 local_config.py 文件路径", "info")
print_status(f"您是否为第一次使用?并将当前路径 {working_dir} 作为工作目录? (Y/n)", "info")
if input() != "n":
os.makedirs(working_dir, exist_ok=True)
config_path = os.path.join(working_dir, "local_config.py")
@@ -153,16 +167,8 @@ def main():
os._exit(1)
else:
os._exit(1)
else:
working_dir = args_dict.get("working_dir") or os.path.abspath(os.path.join(os.getcwd(), "unilabos_data"))
if working_dir:
if config_path and not os.path.exists(config_path):
config_path = os.path.join(working_dir, "local_config.py")
if not os.path.exists(config_path):
print_status(f"当前工作目录 {working_dir} 未找到local_config.py请通过 --config 传入 local_config.py 文件路径", "error")
os._exit(1)
print_status(f"当前工作目录为 {working_dir}", "info")
# 加载配置文件
print_status(f"当前工作目录为 {working_dir}", "info")
load_config_from_file(config_path, args_dict["labid"])
# 设置BasicConfig参数

View File

@@ -4,11 +4,12 @@ HTTP客户端模块
提供与远程服务器通信的客户端功能只有host需要用
"""
import json
import os
from typing import List, Dict, Any, Optional
import requests
from unilabos.utils.log import info
from unilabos.config.config import MQConfig, HTTPConfig
from unilabos.config.config import MQConfig, HTTPConfig, BasicConfig
from unilabos.utils import logger
@@ -189,7 +190,7 @@ class HTTPClient:
logger.error(f"请求启动配置失败: {response.status_code}, {response.text}")
else:
try:
with open("startup_config.json", "w", encoding="utf-8") as f:
with open(os.path.join(BasicConfig.working_dir, "startup_config.json"), "w", encoding="utf-8") as f:
f.write(response.text)
target_dict = json.loads(response.text)
if "data" in target_dict:

View File

@@ -8,9 +8,9 @@ class MQConfig:
broker_url = ""
port = 1883
ca_file = "CA.crt"
cert_file = "lab.crt"
key_file = "lab.key"
ca_file = "./CA.crt"
cert_file = "./lab.crt"
key_file = "./lab.key"
# HTTP配置
class HTTPConfig: