-
Notifications
You must be signed in to change notification settings - Fork 8
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
支持从远程站点获取列表并对配置文件指定条目试运行以提升本地测试体验 #6
Comments
README.md
原先 TUNA 版本的 genisolist.py 也是将 rsync 支持写在了 genisolist.py 里面,但是从我的角度看,恰恰不应该这么做:rsync 和其他的部分应该解耦,否则会带来不必要的困惑,例如 tuna/mirror-web#425 所述:
|
关于此前版本的脚本还有个问题,每次测试都需要从 rsync 拉一遍服务器的文件列表。考虑到写一次配置可能需要若干次测试,这样也造成了不必要的 IO 压力,所以把获取文件列表和生成 isoinfo 分离可能是更好的选择 |
这文件我先前看到了,分离也合理,没有问题。我理解这个做法相当于是同步和测试分开,同步一些占位文件在本地来直接测试,这其实是我之前考虑的方案😂但是后来没有这么采用,是从使用者角度考虑觉得这样不方便。 这个最开始初衷是为了让更多非镜像站成员参与进来也方便调试,并且尽量减少对本地的影响,比如,我作为一个萌新,本地没有这些东西,也不希望为了这个在本地同步一大堆文件(即便只是stub)在本地, 或者说,从我的角度看,我更希望能简化一下这个脚本的使用方式。毕竟也有条目有多个location,指定path有点太麻烦了,本地的目录应该从我定义的这些条目本身出发去获取最为自然,而不是我去找这个链接,这个不太方便。 也许可以折中一下,只在genisolist上加一个可选的条目测试,只输出指定几个条目的结果不用存成文件也可以。 |
这个我同意,这个问题我一开始觉得问题不大主要是因为我们实际应用中新增条目一般都很小。对于有些巨量的条目这确实是个问题 |
如果是为了测试,可以放在 tmpfs 下面,几乎不会影响本地。
如果只是测试少量的条目,获取路径的成本并不是很高。如果让 rsync-stub-generator 能够读取 ini 文件获得具体要同步的路径,我也不反对。
是说运行时支持指定启用的 key 吗?这个功能我没有意见。此外现在本来也是输出到 stdout 的,不重定向就不会进文件。如果要做一些非 JSON 的 pretty-print 之类的功能我也支持,只要保持最小的依赖就好。 |
(可以认为这个纯属我个人洁癖,大家都觉得无碍那也没啥……)
意思是运行
是的,我的意思就是指定distro后输出本来就是测试目的看一眼,也不用重定向。 |
原来之前 yaoge 搬到这儿来之后,你们觉得需要解耦又改了回去,双向奔赴了属于是😂 |
我自己测试 #5 的时候的做法是 example.ini 复制了一份 test.ini,然后在 或许可以把 test.ini 加到 |
对于某些镜像站支持外部贡献更新genisolist的情况,贡献者往往没有镜像站服务器的权限,无法本地运行脚本来测试配置是否正确。且即便是有服务器权限,完全运行完毕检查配置正确性也会消耗大量时间。因此,我建议增加一个指定条目试运行(类似于dry-run)功能,并支持从远程站点获取文件列表并用于配置测试。
其实现思路是:
genisolist.py
内,以参数可选执行。例如,当某镜像some.mirror.site的贡献者增加多个条目AA、BB、CC之后,他可以通过
python genisolist.py -R some.mirror.site -T AA BB CC
从远端测试AA、BB、CC的条目试运行结果。我们之前实现过这一功能,谨供参考:https://git.nju.edu.cn/nju-lug/NJU-Mirror-Configs/-/blob/main/scripts/genisolist/genisolist.py
The text was updated successfully, but these errors were encountered: