mirror of
https://github.com/dptech-corp/Uni-Lab-OS.git
synced 2025-12-17 13:01:12 +00:00
取消labid 和 强制config输入
This commit is contained in:
@@ -22,7 +22,7 @@ from unilabos.utils.banner_print import print_status, print_unilab_banner
|
|||||||
from unilabos.resources.graphio import modify_to_backend_format
|
from unilabos.resources.graphio import modify_to_backend_format
|
||||||
|
|
||||||
|
|
||||||
def load_config_from_file(config_path, override_labid=None):
|
def load_config_from_file(config_path):
|
||||||
if config_path is None:
|
if config_path is None:
|
||||||
config_path = os.environ.get("UNILABOS_BASICCONFIG_CONFIG_PATH", None)
|
config_path = os.environ.get("UNILABOS_BASICCONFIG_CONFIG_PATH", None)
|
||||||
if config_path:
|
if config_path:
|
||||||
@@ -31,10 +31,10 @@ def load_config_from_file(config_path, override_labid=None):
|
|||||||
elif not config_path.endswith(".py"):
|
elif not config_path.endswith(".py"):
|
||||||
print_status(f"配置文件 {config_path} 不是Python文件,必须以.py结尾", "error")
|
print_status(f"配置文件 {config_path} 不是Python文件,必须以.py结尾", "error")
|
||||||
else:
|
else:
|
||||||
load_config(config_path, override_labid)
|
load_config(config_path)
|
||||||
else:
|
else:
|
||||||
print_status(f"启动 UniLab-OS时,配置文件参数未正确传入 --config '{config_path}' 尝试本地配置...", "warning")
|
print_status(f"启动 UniLab-OS时,配置文件参数未正确传入 --config '{config_path}' 尝试本地配置...", "warning")
|
||||||
load_config(config_path, override_labid)
|
load_config(config_path)
|
||||||
|
|
||||||
|
|
||||||
def convert_argv_dashes_to_underscores(args: argparse.ArgumentParser):
|
def convert_argv_dashes_to_underscores(args: argparse.ArgumentParser):
|
||||||
@@ -52,8 +52,6 @@ def parse_args():
|
|||||||
"""解析命令行参数"""
|
"""解析命令行参数"""
|
||||||
parser = argparse.ArgumentParser(description="Start Uni-Lab Edge server.")
|
parser = argparse.ArgumentParser(description="Start Uni-Lab Edge server.")
|
||||||
parser.add_argument("-g", "--graph", help="Physical setup graph.")
|
parser.add_argument("-g", "--graph", help="Physical setup graph.")
|
||||||
# parser.add_argument("-d", "--devices", help="Devices config file.")
|
|
||||||
# parser.add_argument("-r", "--resources", help="Resources config file.")
|
|
||||||
parser.add_argument("-c", "--controllers", default=None, help="Controllers config file.")
|
parser.add_argument("-c", "--controllers", default=None, help="Controllers config file.")
|
||||||
parser.add_argument(
|
parser.add_argument(
|
||||||
"--registry_path",
|
"--registry_path",
|
||||||
@@ -128,12 +126,6 @@ def parse_args():
|
|||||||
default="disable",
|
default="disable",
|
||||||
help="选择可视化工具: rviz, web",
|
help="选择可视化工具: rviz, web",
|
||||||
)
|
)
|
||||||
parser.add_argument(
|
|
||||||
"--labid",
|
|
||||||
type=str,
|
|
||||||
default="",
|
|
||||||
help="实验室唯一ID,也可通过环境变量 UNILABOS_MQCONFIG_LABID 设置或传入--config设置",
|
|
||||||
)
|
|
||||||
parser.add_argument(
|
parser.add_argument(
|
||||||
"--ak",
|
"--ak",
|
||||||
type=str,
|
type=str,
|
||||||
@@ -215,13 +207,12 @@ def main():
|
|||||||
os.path.join(os.path.dirname(os.path.dirname(__file__)), "config", "example_config.py"), config_path
|
os.path.join(os.path.dirname(os.path.dirname(__file__)), "config", "example_config.py"), config_path
|
||||||
)
|
)
|
||||||
print_status(f"已创建 local_config.py 路径: {config_path}", "info")
|
print_status(f"已创建 local_config.py 路径: {config_path}", "info")
|
||||||
print_status(f"请在文件夹中配置lab_id,放入下载的CA.crt、lab.crt、lab.key重新启动本程序", "info")
|
|
||||||
os._exit(1)
|
os._exit(1)
|
||||||
else:
|
else:
|
||||||
os._exit(1)
|
os._exit(1)
|
||||||
# 加载配置文件
|
# 加载配置文件
|
||||||
print_status(f"当前工作目录为 {working_dir}", "info")
|
print_status(f"当前工作目录为 {working_dir}", "info")
|
||||||
load_config_from_file(config_path, args_dict["labid"])
|
load_config_from_file(config_path)
|
||||||
if args_dict["addr"] == "test":
|
if args_dict["addr"] == "test":
|
||||||
print_status("使用测试环境地址", "info")
|
print_status("使用测试环境地址", "info")
|
||||||
HTTPConfig.remote_addr = "https://uni-lab.test.bohrium.com/api/v1"
|
HTTPConfig.remote_addr = "https://uni-lab.test.bohrium.com/api/v1"
|
||||||
|
|||||||
@@ -87,7 +87,7 @@ class ROSConfig:
|
|||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
def _update_config_from_module(module, override_labid: Optional[str]):
|
def _update_config_from_module(module):
|
||||||
for name, obj in globals().items():
|
for name, obj in globals().items():
|
||||||
if isinstance(obj, type) and name.endswith("Config"):
|
if isinstance(obj, type) and name.endswith("Config"):
|
||||||
if hasattr(module, name) and isinstance(getattr(module, name), type):
|
if hasattr(module, name) and isinstance(getattr(module, name), type):
|
||||||
@@ -97,38 +97,6 @@ def _update_config_from_module(module, override_labid: Optional[str]):
|
|||||||
# 更新OSS认证
|
# 更新OSS认证
|
||||||
if len(OSSUploadConfig.authorization) == 0:
|
if len(OSSUploadConfig.authorization) == 0:
|
||||||
OSSUploadConfig.authorization = f"Lab {MQConfig.lab_id}"
|
OSSUploadConfig.authorization = f"Lab {MQConfig.lab_id}"
|
||||||
# 对 ca_file cert_file key_file 进行初始化
|
|
||||||
if override_labid:
|
|
||||||
MQConfig.lab_id = override_labid
|
|
||||||
logger.warning(f"[ENV] 当前实验室启动的ID被设置为:{override_labid}")
|
|
||||||
if len(MQConfig.ca_content) == 0:
|
|
||||||
# 需要先判断是否为相对路径
|
|
||||||
if MQConfig.ca_file.startswith("."):
|
|
||||||
MQConfig.ca_file = os.path.join(BasicConfig.config_path, MQConfig.ca_file)
|
|
||||||
if len(MQConfig.ca_file) != 0:
|
|
||||||
with open(MQConfig.ca_file, "r", encoding="utf-8") as f:
|
|
||||||
MQConfig.ca_content = f.read()
|
|
||||||
else:
|
|
||||||
logger.warning("Skipping CA file loading, ca_file is empty")
|
|
||||||
if len(MQConfig.cert_content) == 0:
|
|
||||||
# 需要先判断是否为相对路径
|
|
||||||
if MQConfig.cert_file.startswith("."):
|
|
||||||
MQConfig.cert_file = os.path.join(BasicConfig.config_path, MQConfig.cert_file)
|
|
||||||
if len(MQConfig.ca_file) != 0:
|
|
||||||
with open(MQConfig.cert_file, "r", encoding="utf-8") as f:
|
|
||||||
MQConfig.cert_content = f.read()
|
|
||||||
else:
|
|
||||||
logger.warning("Skipping cert file loading, cert_file is empty")
|
|
||||||
if len(MQConfig.key_content) == 0:
|
|
||||||
# 需要先判断是否为相对路径
|
|
||||||
if MQConfig.key_file.startswith("."):
|
|
||||||
MQConfig.key_file = os.path.join(BasicConfig.config_path, MQConfig.key_file)
|
|
||||||
if len(MQConfig.ca_file) != 0:
|
|
||||||
with open(MQConfig.key_file, "r", encoding="utf-8") as f:
|
|
||||||
MQConfig.key_content = f.read()
|
|
||||||
else:
|
|
||||||
logger.warning("Skipping key file loading, key_file is empty")
|
|
||||||
|
|
||||||
|
|
||||||
def _update_config_from_env():
|
def _update_config_from_env():
|
||||||
prefix = "UNILABOS_"
|
prefix = "UNILABOS_"
|
||||||
@@ -181,7 +149,7 @@ def _update_config_from_env():
|
|||||||
logger.warning(f"[ENV] 解析环境变量 {env_key} 失败: {e}")
|
logger.warning(f"[ENV] 解析环境变量 {env_key} 失败: {e}")
|
||||||
|
|
||||||
|
|
||||||
def load_config(config_path=None, override_labid=None):
|
def load_config(config_path=None):
|
||||||
# 如果提供了配置文件路径,从该文件导入配置
|
# 如果提供了配置文件路径,从该文件导入配置
|
||||||
if config_path:
|
if config_path:
|
||||||
env_config_path = os.environ.get("UNILABOS_BASICCONFIG_CONFIG_PATH")
|
env_config_path = os.environ.get("UNILABOS_BASICCONFIG_CONFIG_PATH")
|
||||||
@@ -198,7 +166,7 @@ def load_config(config_path=None, override_labid=None):
|
|||||||
return
|
return
|
||||||
module = importlib.util.module_from_spec(spec)
|
module = importlib.util.module_from_spec(spec)
|
||||||
spec.loader.exec_module(module) # type: ignore
|
spec.loader.exec_module(module) # type: ignore
|
||||||
_update_config_from_module(module, override_labid)
|
_update_config_from_module(module)
|
||||||
logger.info(f"[ENV] 配置文件 {config_path} 加载成功")
|
logger.info(f"[ENV] 配置文件 {config_path} 加载成功")
|
||||||
_update_config_from_env()
|
_update_config_from_env()
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
@@ -207,4 +175,4 @@ def load_config(config_path=None, override_labid=None):
|
|||||||
exit(1)
|
exit(1)
|
||||||
else:
|
else:
|
||||||
config_path = os.path.join(os.path.dirname(__file__), "local_config.py")
|
config_path = os.path.join(os.path.dirname(__file__), "local_config.py")
|
||||||
load_config(config_path, override_labid)
|
load_config(config_path)
|
||||||
|
|||||||
@@ -1,18 +1 @@
|
|||||||
# MQTT配置
|
# 暂无配置
|
||||||
class MQConfig:
|
|
||||||
lab_id = ""
|
|
||||||
instance_id = ""
|
|
||||||
access_key = ""
|
|
||||||
secret_key = ""
|
|
||||||
group_id = ""
|
|
||||||
broker_url = ""
|
|
||||||
port = 1883
|
|
||||||
|
|
||||||
ca_file = "./CA.crt"
|
|
||||||
cert_file = "./lab.crt"
|
|
||||||
key_file = "./lab.key"
|
|
||||||
|
|
||||||
|
|
||||||
# HTTP配置
|
|
||||||
class HTTPConfig:
|
|
||||||
remote_addr = "https://uni-lab.bohrium.com/api/v1"
|
|
||||||
Reference in New Issue
Block a user