本文整理汇总了Golang中github.com/containerops/dockyard/models.Repository.PutJSONFromManifests方法的典型用法代码示例。如果您正苦于以下问题:Golang Repository.PutJSONFromManifests方法的具体用法?Golang Repository.PutJSONFromManifests怎么用?Golang Repository.PutJSONFromManifests使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类github.com/containerops/dockyard/models.Repository
的用法示例。
在下文中一共展示了Repository.PutJSONFromManifests方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: ParseManifest
func ParseManifest(data []byte, namespace, repository, tag string) (error, int64) {
var manifest map[string]interface{}
if err := json.Unmarshal(data, &manifest); err != nil {
return err, 0
}
schemaVersion := int64(manifest["schemaVersion"].(float64))
if schemaVersion == 1 {
for k := len(manifest["history"].([]interface{})) - 1; k >= 0; k-- {
v := manifest["history"].([]interface{})[k]
compatibility := v.(map[string]interface{})["v1Compatibility"].(string)
var image map[string]interface{}
if err := json.Unmarshal([]byte(compatibility), &image); err != nil {
return err, 0
}
i := map[string]string{}
r := new(models.Repository)
if k == 0 {
i["Tag"] = tag
}
i["id"] = image["id"].(string)
if err := r.PutJSONFromManifests(i, namespace, repository); err != nil {
return err, 0
}
if k == 0 {
if err := r.PutTagFromManifests(image["id"].(string), namespace, repository, tag, string(data), schemaVersion); err != nil {
return err, 0
}
}
}
} else if schemaVersion == 2 {
r := new(models.Repository)
if err := r.PutTagFromManifests("schemaV2", namespace, repository, tag, string(data), schemaVersion); err != nil {
return err, 0
}
} else {
return fmt.Errorf("invalid schema version"), 0
}
return nil, schemaVersion
}
示例2: ParseManifest
func ParseManifest(data []byte) error {
var manifest map[string]interface{}
if err := json.Unmarshal(data, &manifest); err != nil {
return err
}
tag := manifest["tag"]
namespace, repository := strings.Split(manifest["name"].(string), "/")[0], strings.Split(manifest["name"].(string), "/")[1]
for k := len(manifest["history"].([]interface{})) - 1; k >= 0; k-- {
v := manifest["history"].([]interface{})[k]
compatibility := v.(map[string]interface{})["v1Compatibility"].(string)
var image map[string]interface{}
if err := json.Unmarshal([]byte(compatibility), &image); err != nil {
return err
}
i := map[string]string{}
r := new(models.Repository)
if k == 0 {
i["Tag"] = tag.(string)
}
i["id"] = image["id"].(string)
if err := r.PutJSONFromManifests(i, namespace, repository); err != nil {
return err
}
if k == 0 {
if err := r.PutTagFromManifests(image["id"].(string), namespace, repository, tag.(string), string(data)); err != nil {
return err
}
}
}
return nil
}