go gin gorm获取harbor项目,镜像,tag代码示例
// 刷新镜像列表
func (imageService *ImageService) RefreshImageList(image autocode.Image) (err error) {// 先清空现有images表数据err = global.GVA_DB.Delete(&[]autocode.Image{}, "1=1").Errorvar image_slice []autocode.Image// 获取所有project http://192.168.xxx.xxx:8081/api/v2.0/projects?page_size=100000// 根据project获取所有repository http://192.168.xxx.xxx:8081/api/v2.0/projects/test/repositories?page_size=100000// 根据repository获取所有的artifact http://192.168.xxx.xxx:8081/api/v2.0/projects/test/repositories/zhangxueliang%252Fmyapp/artifacts?pageSize=100000// 【参数不详】根据artifact获取所有的tag http://192.168.xxx.xxx:8081/api/v2.0/projects/test/repositories/zhangxueliang%252Fmyapp/artifacts/xxx/tags?pageSize=100000// 获取所有project http://192.168.xxx.xxx:8081/api/v2.0/projects?page_size=100000project_url := "http://192.168.xxx.xxx:8081/api/v2.0/projects?page_size=100000"project_slice := []string{}repository_slice := []string{}tag_slice := []string{}var project_map_arr []map[string]stringvar repository_map_arr []map[string]stringvar artifact_map_arr []map[string]interface{}project_resp, project_err := http.Get(project_url)if project_err != nil {err = project_errreturn err}defer project_resp.Body.Close()project_resp_body, _ := ioutil.ReadAll(project_resp.Body)// project_resp_body_jsonstr := string(project_resp_body)// fmt.Printf(">>>>>>>>>>>>>>>>>>>>>>>>> %v \n", project_resp_body_jsonstr)json.Unmarshal(project_resp_body, &project_map_arr)for _, p := range project_map_arr {project_name := p["name"]project_slice = append(project_slice, project_name)// 根据project获取所有repository http://192.168.xxx.xxx:8081/api/v2.0/projects/test/repositories?page_size=100000repository_url := fmt.Sprintf("http://192.168.xxx.xxx:8081/api/v2.0/projects/%v/repositories?page_size=100000", project_name)repository_resp, repository_err := http.Get(repository_url)if repository_err != nil {return repository_err}defer repository_resp.Body.Close()repository_resp_body, _ := ioutil.ReadAll(repository_resp.Body)json.Unmarshal(repository_resp_body, &repository_map_arr)for _, r := range repository_map_arr {rname := r["name"]firstIdx := strings.Index(rname, "/")repository_name := rname[firstIdx+1:]repository_slice = append(repository_slice, repository_name)// 根据repository获取所有的artifact http://192.168.xxx.xxx:8081/api/v2.0/projects/test/repositories/zhangxueliang%252Fmyapp/artifacts?pageSize=100000// "test/zhangxueliang/myapp"r_name := strings.Replace(repository_name, "/", "%252F", -1)artifact_url := fmt.Sprintf("http://192.168.xxx.xxx:8081/api/v2.0/projects/%v/repositories/%v/artifacts?pageSize=100000", project_name, r_name)artifact_resp, artifact_err := http.Get(artifact_url)if artifact_err != nil {return artifact_err}defer artifact_resp.Body.Close()artifact_resp_body, _ := ioutil.ReadAll(artifact_resp.Body)json.Unmarshal(artifact_resp_body, &artifact_map_arr)for _, a := range artifact_map_arr {if a != nil && a["tags"] != nil {tags := a["tags"].([]interface{})tag_map := tags[0].(map[string]interface{})tag_name := tag_map["name"].(string)tag_slice = append(tag_slice, tag_name)image = autocode.Image{HarborUrl: "http://192.168.xxx.xxx:8081",HarborUser: "admin",HarborPwd: "123456pwd",ImageName: repository_name,ImageTagName: tag_name,HarborProjName: project_name,AppName: project_name,}image_slice = append(image_slice, image)}}}}// fmt.Printf(">>>>>>>>>>>>>>>>>>>>>>>>> %v \n", project_slice)// fmt.Printf(">>>>>>>>>>>>>>>>>>>>>>>>> %v \n", repository_slice)// fmt.Printf(">>>>>>>>>>>>>>>>>>>>>>>>> %v \n", tag_slice)// err = global.GVA_DB.Save(&image).Error// 批量插入,提高性能err = global.GVA_DB.CreateInBatches(&image_slice, 100).Errorreturn err
}
go gin gorm获取harbor项目,镜像,tag代码示例相关推荐
- 【Groovy】map 集合 ( map 集合定义 | 通过 getClass 函数获取 map 集合的类型 | 代码示例 )
文章目录 一.map 集合定义 二.获取 map 集合类型 三.代码示例 一.map 集合定义 声明键值对 , 其中 键 Key 可以 不使用引号 , 可以 使用单引号 '' , 也可以 使用双引号 ...
- 如何获取Harbor的带tag的镜像清单
博客主页:https://tomcat.blog.csdn.net 博主昵称:农民工老王 主要领域:Java.Linux.K8S 期待大家的关注
- repo 获取各个库的tag代码或者分支代码
关于mainfest.xml中的参数格式和说明,可以自己查阅,此处不详细写,我们知道project中的reversion可以指定分支,tag,commitid等,那么如何书写呢? 首先克隆mainfe ...
- Java客户端操作zookeeper:获取/节点的子节点代码示例
- java 获取dataset_Java OHLCDataset.getX方法代码示例
import org.jfree.data.xy.OHLCDataset; //导入方法依赖的package包/类 /** * Generates a tooltip text item for a ...
- java获取textfield_Java TextField.getText方法代码示例
import com.codename1.ui.TextField; //导入方法依赖的package包/类 public void onLoginAction(Form f) { final Tex ...
- ABAP:增强篇-MIGO过账增强之CHECK方法获取行项目
MIGO中做PO过账的时候,常常需要在MB_MIGO_BADI~CHECK方法里面写代码,这个方法只有两个参数,一个行号,一个返回报错消息 因此如果需要对行项目上的值做检查,则需要获取到行项目上的数据 ...
- Gin+Gorm+sessions 搭建 golang web项目
Gin是用Go(Golang)编写的HTTP web框架.它具有类似Martini的API,但性能比Martini快40倍 Gorm,Golang 出色的ORM库 sessions,具有多后端支持的用 ...
- java项目打镜像_docker通过dockerfile打java项目镜像
环境:centos7 思路:java -jar 启动的项目打包成docker images进行运行 创建dockerfile-->创建shell脚本-->打包images 1.docker ...
最新文章
- Java并发编程题库
- Oracle通用分页包
- Ciruy英雄谭 Chapter 3 杂谈
- python计算选手最后得分并取出前三名_MySQL中查询获取每个班级成绩前三名的学生信息...
- Php 安装 zend_loader,在Linux系统中为PHP5.x安装Zend Guard Loader
- cocos2dx基础篇(24)——基本动画CCAnimation/CCAnimate
- 学习JavaScript原型应用
- KKR创始人亨利·克拉维斯:像实业家那样思考和行动
- 简单c语言程序例子与运行结果图,C语言程序第一次作业
- MySQL数据库定期自动备份(定时任务)
- myeclipse linux 安装,安装MyEclipse
- kubernetes集群中的port、targetPort、nodePort和containerPort区别
- html5知识点:HTML5新特性
- anaconda 创建虚拟环境、激活,使用的基本方法及安装包的基本方法
- 关于日历实现代码里0x04bd8, 0x04ae0, 0x0a570的说明
- window服务安装、卸载
- IT老兵不死:柳传志隐退留下三大愿景
- 雷达原理---脉冲雷达和连续波雷达
- H5移动端下拉 - mobileSelect
- 视频:《满城尽带黄金甲》精彩预告片曝光
热门文章
- python顺序结构实验_Python程序设计实验报告二:顺序结构程序设计(验证性实验)...
- php如何知道服务器剩余空间,远程简单地获得每台服务器的cpu与memory使用情况
- Python 程序打包 -- 使用pyinstaller
- Debug shell: Syntax error: “(“ unexpected
- 【机器学习】Auto-Sklearn:使用 AutoML 加速你的机器学习模型
- 【深度学习】你不知道的车牌识别系统
- 【学术相关】RSPapers | 工业界推荐系统论文合集
- 好玩的deep dream(清晰版,pytorch完整代码)
- 推荐系统中的Bias/Debias大全
- 直播技术:从性能参数到业务大数据,浅谈直播CDN服务监控