日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

go gin gorm获取harbor项目,镜像,tag代码示例

發布時間:2025/1/21 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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代码示例的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。