On Tue, Oct 20, 2020 at 07:10:46PM +0800, Wu Fengguang wrote:
On Tue, Oct 20, 2020 at 05:20:31PM +0800, Yu Chuan wrote:
+check_iso_name() +{
- local skipped_iso_prefixes
How about
skipped_iso_prefixes => iso_prefixes_to_skip
Good, looks more clearly.
- case ${iso_os} in
"openeuler")
skipped_iso_prefixes=("openEuler-2.0-SP8")
感觉这样的测试没抓住问题的本质 -- 想要的是xxx, 测试的却是yyy. 有什么办法直接测试xxx? 这样的测试就有鲁棒性.
我们当前的检测iso更新的策略如下: 监测是不同os(如openeuler)的iso是否有发布更新,目前openeuler 提供的是一个iso的sha256sum文件,该文件会在每次发布新的iso时候被更新。 文件中有如下两个内容: - latest iso url; - latest iso sha256sum;
关于iso url中的iso名称,我咨询了下openeuler的iso版本发布的支持人员, 得到以下答复:
- iso名称当前有两种,openEuler-2.0-SP8-xxx.iso,openEuler-20.03-xxx.iso;
- 其中openEuler-2.0.SP8-xx.iso不是给我们用的;
- 不确定以后是否会有用作新用途的iso加入进来;
所以我这边的策略是准备了一个array,用来填写要跳过的iso names,以后openeuler 若有新增则进行排除。
很好的总结! Sorry 我猜错了,还以为是要跟正常的release iso区别开来.. 上面的总结是不是可以写进changelog or comment? 中文的也行。比没有强多了。
好的,我再改进下change log。
-------- Thanks Yu Chuan
上面的列表将来需要更新, 会有长期维护代价.
所以说优化的话,限于上面说的背景,我能想到的是把array从记录要跳过的iso名, 换为记录要执行的iso名,但这样我觉得意义不是很大?
由于我这边暂时也没有其他好的思路,所以如果有好的办法来实现,还望不吝赐教~
没问题.
Thanks, Fengguang
;;
*)
return
;;
- esac
- local prefix
- for prefix in "${skipped_iso_prefixes[@]}"
- do
[[ ${ISO_NAME} != ${prefix}* ]] ||
exit_info "${iso_os} haven't release new iso for openEuler, no need to generate rootfs"
- done
+}
get_daily_iso_checksum() { ISO_URL="$(curl "${iso_url_file}")" @@ -63,8 +89,10 @@ get_daily_iso_checksum() local pub_ip=$(echo "${iso_url_file}" | grep -oEw "[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}") ISO_URL="$(curl "${iso_url_file}" |sed -r "s/[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}/${pub_ip}/g")" }
ISO_NAME=$(basename "$ISO_URL") ISO_CHECKSUM_URL="${ISO_URL}.sha256sum"
check_iso_name
curl -o "${CHECKSUM_FILE_CACHE}.tmp" "${ISO_CHECKSUM_URL}" SHA256SUM_NET=$(awk '{print $1}' "${CHECKSUM_FILE_CACHE}.tmp")
@@ -118,9 +146,8 @@ check_sha256sum_update()
if [ "$SHA256SUM_CACHE" == "$SHA256SUM_NET" ] then
log_info "${iso_os} haven't release new iso, no need to generate rootfs" rm -f "${CHECKSUM_FILE_CACHE}.tmp"
exit 0
else log_info "${iso_os} release a new iso, start to generate rootfs ..." returnexit_info "${iso_os} haven't release new iso, no need to generate rootfs"
-- 2.23.0