mirror of
https://github.com/yunionio/cloudpods.git
synced 2026-09-21 14:19:49 +08:00
fix: image may missing os_arch and checksum (#13835)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
This commit is contained in:
@@ -120,6 +120,7 @@ func addImageOptionalOptions(s *mcclient.ClientSession, params *jsonutils.JSONDi
|
||||
}
|
||||
if len(args.OsArch) > 0 {
|
||||
params.Add(jsonutils.NewString(args.OsArch), "properties", "os_arch")
|
||||
params.Add(jsonutils.NewString(args.OsArch), "os_arch")
|
||||
}
|
||||
if len(args.OsLang) > 0 {
|
||||
params.Add(jsonutils.NewString(args.OsLang), "properties", "os_language")
|
||||
|
||||
@@ -1349,6 +1349,9 @@ func isActive(localPath string, size int64, chksum string, fastHash string, useF
|
||||
log.Errorf("size mistmatch: %s", localPath)
|
||||
return false
|
||||
}
|
||||
if len(chksum) == 0 || len(fastHash) == 0 {
|
||||
return true
|
||||
}
|
||||
if useFastHash && len(fastHash) > 0 {
|
||||
fhash, err := fileutils2.FastCheckSum(localPath)
|
||||
if err != nil {
|
||||
@@ -1654,6 +1657,12 @@ func (image *SImage) updateImageInfo(
|
||||
userCred mcclient.TokenCredential,
|
||||
imageInfo *deployapi.ImageInfo,
|
||||
) error {
|
||||
if image.OsArch != imageInfo.OsInfo.Arch {
|
||||
db.Update(image, func() error {
|
||||
image.OsArch = imageInfo.OsInfo.Arch
|
||||
return nil
|
||||
})
|
||||
}
|
||||
imageProperties := jsonutils.Marshal(imageInfo.OsInfo).(*jsonutils.JSONDict)
|
||||
imageProperties.Set(api.IMAGE_OS_ARCH, jsonutils.NewString(imageInfo.OsInfo.Arch))
|
||||
imageProperties.Set(api.IMAGE_OS_TYPE, jsonutils.NewString(imageInfo.OsType))
|
||||
@@ -1950,7 +1959,7 @@ func (img *SImage) Pipeline(ctx context.Context, userCred mcclient.TokenCredenti
|
||||
needChecksum = true
|
||||
}
|
||||
}
|
||||
if needChecksum {
|
||||
if needChecksum || len(img.Checksum) == 0 || len(img.FastHash) == 0 {
|
||||
err := img.updateChecksum()
|
||||
if err != nil {
|
||||
return errors.Wrap(err, "updateChecksum")
|
||||
|
||||
Reference in New Issue
Block a user