0
Fork 0
mirror of https://github.com/project-zot/zot.git synced 2025-02-03 23:09:41 -05:00

fix(sync): fix digest set into repodb (#1446)

Signed-off-by: Laurentiu Niculae <niculae.laurentiu1@gmail.com>
This commit is contained in:
LaurentiuNiculae 2023-05-15 20:43:41 +03:00 committed by GitHub
parent 7bf40e7308
commit 912854f29b
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -292,15 +292,15 @@ func (sig *signaturesCopier) syncORASRefs(localRepo, remoteRepo, digestStr strin
return nil return nil
} }
func (sig *signaturesCopier) syncOCIRefs(localRepo, remoteRepo, digestStr string, index ispec.Index, func (sig *signaturesCopier) syncOCIRefs(localRepo, remoteRepo, subjectStr string, index ispec.Index,
) error { ) error {
if len(index.Manifests) == 0 { if len(index.Manifests) == 0 {
return nil return nil
} }
skipOCIRefs, err := sig.canSkipOCIRefs(localRepo, digestStr, index) skipOCIRefs, err := sig.canSkipOCIRefs(localRepo, subjectStr, index)
if err != nil { if err != nil {
sig.log.Error().Err(err).Str("repository", remoteRepo).Str("reference", digestStr). sig.log.Error().Err(err).Str("repository", remoteRepo).Str("reference", subjectStr).
Msg("couldn't check if the upstream image oci references can be skipped") Msg("couldn't check if the upstream image oci references can be skipped")
} }
@ -362,7 +362,7 @@ func (sig *signaturesCopier) syncOCIRefs(localRepo, remoteRepo, digestStr string
continue continue
} }
digest, _, err := imageStore.PutImageManifest(localRepo, ref.Digest.String(), refDigest, _, err := imageStore.PutImageManifest(localRepo, ref.Digest.String(),
ref.MediaType, OCIRefBody) ref.MediaType, OCIRefBody)
if err != nil { if err != nil {
sig.log.Error().Str("errorType", common.TypeOf(err)). sig.log.Error().Str("errorType", common.TypeOf(err)).
@ -372,34 +372,34 @@ func (sig *signaturesCopier) syncOCIRefs(localRepo, remoteRepo, digestStr string
} }
if sig.repoDB != nil { if sig.repoDB != nil {
sig.log.Debug().Str("repository", localRepo).Str("digest", digestStr).Msg("trying to add OCI refs for repo digest") sig.log.Debug().Str("repository", localRepo).Str("digest", subjectStr).Msg("trying to add OCI refs for repo digest")
isSig, _, signedManifestDig, err := storage.CheckIsImageSignature(localRepo, OCIRefBody, ref.Digest.String()) isSig, sigType, signedManifestDig, err := storage.CheckIsImageSignature(localRepo, OCIRefBody, ref.Digest.String())
if err != nil { if err != nil {
return fmt.Errorf("failed to set metadata for OCI ref in '%s@%s': %w", localRepo, digestStr, err) return fmt.Errorf("failed to set metadata for OCI ref in '%s@%s': %w", localRepo, subjectStr, err)
} }
if isSig { if isSig {
err = sig.repoDB.AddManifestSignature(localRepo, signedManifestDig, repodb.SignatureMetadata{ err = sig.repoDB.AddManifestSignature(localRepo, signedManifestDig, repodb.SignatureMetadata{
SignatureType: repodb.NotationType, SignatureType: sigType,
SignatureDigest: digestStr, SignatureDigest: refDigest.String(),
}) })
} else { } else {
err = repodb.SetImageMetaFromInput(localRepo, digestStr, ref.MediaType, err = repodb.SetImageMetaFromInput(localRepo, refDigest.String(), ref.MediaType,
digest, OCIRefBody, sig.storeController.GetImageStore(localRepo), refDigest, OCIRefBody, sig.storeController.GetImageStore(localRepo),
sig.repoDB, sig.log) sig.repoDB, sig.log)
} }
if err != nil { if err != nil {
return fmt.Errorf("failed to set metadata for OCI ref in '%s@%s': %w", localRepo, digestStr, err) return fmt.Errorf("failed to set metadata for OCI ref in '%s@%s': %w", localRepo, subjectStr, err)
} }
sig.log.Info().Str("repository", localRepo).Str("digest", digestStr). sig.log.Info().Str("repository", localRepo).Str("digest", subjectStr).
Msg("successfully added OCI refs to RepoDB for digest") Msg("successfully added OCI refs to RepoDB for digest")
} }
} }
sig.log.Info().Str("repository", localRepo).Str("digest", digestStr). sig.log.Info().Str("repository", localRepo).Str("digest", subjectStr).
Msg("successfully synced OCI refs for digest") Msg("successfully synced OCI refs for digest")
return nil return nil