mirror of
https://github.com/project-zot/zot.git
synced 2026-06-17 04:48:26 +08:00
Changed sync behaviour, it used to copy images over http interface
now it copies to a local cache and then it copies over storage APIs - accept all images with or without signatures - disable sync writing to stdout - added more logs - fixed switch statement in routes - fixed enabling sync multiple times for storage subpaths closes #266 Signed-off-by: Petu Eusebiu <peusebiu@cisco.com>
This commit is contained in:
committed by
Ramkumar Chinchani
parent
9c568c0ee2
commit
5c07e19c8d
@@ -137,6 +137,10 @@ func (c *Controller) Run() error {
|
||||
// Enable extensions if extension config is provided
|
||||
if c.Config != nil && c.Config.Extensions != nil {
|
||||
ext.EnableExtensions(c.Config, c.Log, c.Config.Storage.RootDirectory)
|
||||
|
||||
if c.Config.Extensions.Sync != nil {
|
||||
ext.EnableSyncExtension(c.Config, c.Log, c.StoreController)
|
||||
}
|
||||
}
|
||||
} else {
|
||||
// we can't proceed without global storage
|
||||
|
||||
+8
-14
@@ -1263,30 +1263,24 @@ func getImageManifest(rh *RouteHandler, is storage.ImageStore, name,
|
||||
case errors.ErrRepoNotFound:
|
||||
if rh.c.Config.Extensions != nil && rh.c.Config.Extensions.Sync != nil {
|
||||
rh.c.Log.Info().Msgf("image not found, trying to get image %s:%s by syncing on demand", name, reference)
|
||||
ok, errSync := ext.SyncOneImage(rh.c.Config, rh.c.Log, name, reference)
|
||||
|
||||
switch ok {
|
||||
case true:
|
||||
errSync := ext.SyncOneImage(rh.c.Config, rh.c.Log, rh.c.StoreController, name, reference)
|
||||
if errSync != nil {
|
||||
rh.c.Log.Err(errSync).Msgf("error encounter while syncing image %s:%s", name, reference)
|
||||
} else {
|
||||
content, digest, mediaType, err = is.GetImageManifest(name, reference)
|
||||
case false && errSync == nil:
|
||||
rh.c.Log.Info().Msgf("couldn't find image %s:%s in sync registries", name, reference)
|
||||
case false && errSync != nil:
|
||||
rh.c.Log.Err(err).Msgf("error encounter while syncing image %s:%s", name, reference)
|
||||
}
|
||||
}
|
||||
|
||||
case errors.ErrManifestNotFound:
|
||||
if rh.c.Config.Extensions != nil && rh.c.Config.Extensions.Sync != nil {
|
||||
rh.c.Log.Info().Msgf("manifest not found, trying to get image %s:%s by syncing on demand", name, reference)
|
||||
ok, errSync := ext.SyncOneImage(rh.c.Config, rh.c.Log, name, reference)
|
||||
|
||||
switch ok {
|
||||
case true:
|
||||
errSync := ext.SyncOneImage(rh.c.Config, rh.c.Log, rh.c.StoreController, name, reference)
|
||||
if errSync != nil {
|
||||
rh.c.Log.Err(errSync).Msgf("error encounter while syncing image %s:%s", name, reference)
|
||||
} else {
|
||||
content, digest, mediaType, err = is.GetImageManifest(name, reference)
|
||||
case false && errSync == nil:
|
||||
rh.c.Log.Info().Msgf("couldn't find image %s:%s in sync registries", name, reference)
|
||||
case false && errSync != nil:
|
||||
rh.c.Log.Err(err).Msgf("error encounter while syncing image %s:%s", name, reference)
|
||||
}
|
||||
}
|
||||
default:
|
||||
|
||||
Reference in New Issue
Block a user