| 
 
| | | 面板版本:Linux面板11.0.0 
 系统版本:OpenCloudOS 9.2 x86_64(Py3.7.16)
 
 浏览器版本:
 
 问题现象:
 添加了一个docker仓库以后,再次添加同名的仓库时,出现键不存在的问题,报错信息如下:
 
 
 出错了,面板运行时发生错误!KeyError: 'reg_url'
 Traceback (most recent call last):  File "/www/server/panel/BTPanel/__init__.py", line 2539, in publicObject    res = run_obj.run(toObject, defs, get)  File "/www/server/panel/BTPanel/__init__.py", line 2486, in run    result = getattr(toObject, get.action)(get)  File "class/panelController.py", line 81, in model    result = PluginLoader.module_run(module_name,def_name,pdata)  File "/www/server/panel/class/btdockerModel/registryModel.py", line 48, in add    if r['reg_name'] == args.name and r["reg_url"] == args.registry and r['username'] == args.username:KeyError: 'reg_url'
 重现方式:
 1. 添加一个仓库
 2. 再添加一个与刚才仓库同名的仓库
 
 解决方式:
 仓库列表中仓库地址的键是url,把/www/server/panel/class/btdockerModel/registryModel.py中48行和51行的r["reg_url"]都改为r["url"]以后就正常了
 而且这个逻辑也有问题,从数据库中拿到的仓库列表中的用户名是经过加密的,在循环内是直接使用未加密的用户名跟加密的用户名进行比较,这样导致的就是仓库名、仓库地址、用户名三个信息都是一致的也会正常添加。经过实际测试确实如此
 | 
 
 
 
 
 | 
 
 | 
 |