本文整理汇总了Golang中github.com/appc/spec/schema/types.Hash.Empty方法的典型用法代码示例。如果您正苦于以下问题:Golang Hash.Empty方法的具体用法?Golang Hash.Empty怎么用?Golang Hash.Empty使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类github.com/appc/spec/schema/types.Hash
的用法示例。
在下文中一共展示了Hash.Empty方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: getLocalImage
func (h *Host) getLocalImage(hash types.Hash, name types.ACIdentifier, labels types.Labels) (*Image, error) {
if hash.Empty() && name.Empty() {
return nil, errors.Trace(ErrUsage)
}
if !hash.Empty() {
if idStr, err := os.Readlink(h.Path("images", hash.String())); os.IsNotExist(err) {
return nil, ErrNotFound
} else if err != nil {
return nil, errors.Trace(err)
} else if id := uuid.Parse(idStr); id == nil {
return nil, errors.Errorf("Invalid UUID: %v", idStr)
} else if img, err := LoadImage(h, id); err != nil {
return nil, errors.Trace(err)
} else {
return img, nil
}
} else if imgs, err := h.Images(); err != nil {
return nil, errors.Trace(err)
} else {
for _, img := range imgs {
if img.Manifest.Name != name {
continue
}
if !acutil.MatchLabels(labels, img.Manifest.Labels) {
continue
}
// TODO: multiple matches?
return img, nil
}
return nil, ErrNotFound
}
}
示例2: doubleCheckImage
func doubleCheckImage(img *Image, hash types.Hash, name types.ACIdentifier, labels types.Labels) error {
if !hash.Empty() && hash != *img.Hash {
return stderrors.New("Image hash mismatch")
}
if !name.Empty() && name != img.Manifest.Name {
return stderrors.New("Image name mismatch")
}
if !acutil.MatchLabels(labels, img.Manifest.Labels) {
return stderrors.New("Image label mismatch")
}
return nil
}