👨🏻🎓博主介绍:大家好!我是李大白,一名运维容器运维工程师,热爱分享知识🌟
🌈擅长领域:云原生、数据库、自动化运维
🙏🏻如果本文章对小伙伴们有帮助的话,🍭关注+👍🏻点赞+🗣评论+📦收藏!
🤝如果在文章描述时如有错,恳请各位大佬指正,在此感谢!!!
🍂 落叶而知秋,博闻而强识!
📕 精品专栏:Harbor进阶实战(企业级)
文章来源:《Harbor进阶实战》公众
BUG描述
在使用curl命令获取Harbor Projects数量时,出现了一个BUG:只能获取到前面10个Projects。
BUG复现
2.1 批量创建projects(项目)
1) 把创建的项目名称保存到指定文件
$ cat <<EOF > Projects.txt
lidabai-test1
lidabai-test2
lidabai-test3
lidabai-test4
lidabai-test5
lidabai-test6
lidabai-test7
lidabai-test8
lidabai-test9
lidabai-test10
lidabai-test11
lidabai-test12
lidabai-test13
lidabai-test14
EOF
2)编写批量创建Projects的脚本
$ vim Harbor-project-create-v1.sh
#!/bin/bash
Harbor_Url=https://192.168.2.250:443
User=admin
Passwd=Harbor12345
# 将需要创建的项目名称填入到Projects.txt文件中
for project in `cat Projects.txt`;do
cat <<EOF > tempharborProject.json
{
"project_name": "$project",
"public": false
}
EOF
echo "查看文件内容:"
cat tempharborProject.json
echo "====================="
curl -u "$User:$Passwd" -X POST -H "Content-Type: application/json" $Harbor_Url/api/v2.0/projects -k -d @tempharborProject.json
done
3)执行脚本批量创建projects
$ chmod +x Harbor-project-create-v1.sh #给脚本可执行权限
$ sh Harbor-project-create-v1.sh #执行脚本
查看文件内容:
{
"project_name": "lidabai-test1",
"public": false
}
=====================
查看文件内容:
{
"project_name": "lidabai-test2",
"public": false
}
=====================
查看文件内容:
{
"project_name": "lidabai-test3",
"public": false
}
=====================
查看文件内容:
{
"project_name": "lidabai-test4",
"public": false
}
=====================
查看文件内容:
{
"project_name": "lidabai-test5",
"public": false
}
=====================
查看文件内容:
{
"project_name": "lidabai-test6",
"public": false
}
=====================
查看文件内容:
{
"project_name": "lidabai-test7",
"public": false
}
=====================
查看文件内容:
{
"project_name": "lidabai-test8",
"public": false
}
=====================
查看文件内容:
{
"project_name": "lidabai-test9",
"public": false
}
=====================
查看文件内容:
{
"project_name": "lidabai-test10",
"public": false
}
=====================
查看文件内容:
{
"project_name": "lidabai-test11",
"public": false
}
=====================
查看文件内容:
{
"project_name": "lidabai-test12",
"public": false
}
=====================
查看文件内容:
{
"project_name": "lidabai-test13",
"public": false
}
=====================
查看文件内容:
{
"project_name": "lidabai-test14",
"public": false
}
=====================
4)Harbor UI查看Projects数量
通过Harbor UI界面可以看到项目(Projects)的数量为16个。
2.2 API 获取Projects数量
调用Harbor v2 API 获取Projects数量。
$ curl -u admin:Harbor12345 -H "Content-Type: application/json" -X GET https://192.168.2.250:443/api/v2.0/projects? -k | python -m json.tool | grep name | awk '/"name": /' | awk -F '"' '{print $4}'
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 4255 0 4255 0 0 89720 0 --:--:-- --:--:-- --:--:-- 90531
jenkins-demo
library
lidabai-test1
lidabai-test10
lidabai-test11
lidabai-test12
lidabai-test13
lidabai-test14
lidabai-test2
lidabai-test3