diff --git a/job/replication/delete.go b/job/replication/delete.go index 1bec6378f..ce8ef6a98 100644 --- a/job/replication/delete.go +++ b/job/replication/delete.go @@ -74,6 +74,17 @@ func (d *Deleter) Exit() error { // Enter deletes repository or tags func (d *Deleter) Enter() (string, error) { + state, err := d.enter() + if err != nil && retry(err) { + d.logger.Info("waiting for retrying...") + return models.JobRetrying, nil + } + + return state, err + +} + +func (d *Deleter) enter() (string, error) { if len(d.tags) == 0 { tags, err := d.dstClient.ListTag() diff --git a/job/replication/transfer.go b/job/replication/transfer.go index d66802d36..4eee419f4 100644 --- a/job/replication/transfer.go +++ b/job/replication/transfer.go @@ -154,7 +154,8 @@ type Checker struct { func (c *Checker) Enter() (string, error) { state, err := c.enter() if err != nil && retry(err) { - return models.JobRetrying, err + c.logger.Info("waiting for retrying...") + return models.JobRetrying, nil } return state, err @@ -328,7 +329,8 @@ type ManifestPuller struct { func (m *ManifestPuller) Enter() (string, error) { state, err := m.enter() if err != nil && retry(err) { - return models.JobRetrying, err + m.logger.Info("waiting for retrying...") + return models.JobRetrying, nil } return state, err @@ -411,7 +413,8 @@ type BlobTransfer struct { func (b *BlobTransfer) Enter() (string, error) { state, err := b.enter() if err != nil && retry(err) { - return models.JobRetrying, err + b.logger.Info("waiting for retrying...") + return models.JobRetrying, nil } return state, err @@ -446,10 +449,11 @@ type ManifestPusher struct { // Enter checks the existence of manifest in the source registry first, and if it // exists, pushs it to destination registry. The checking operation is to avoid // the situation that the tag is deleted during the blobs transfering -func (b *ManifestPusher) Enter() (string, error) { - state, err := b.enter() +func (m *ManifestPusher) Enter() (string, error) { + state, err := m.enter() if err != nil && retry(err) { - return models.JobRetrying, err + m.logger.Info("waiting for retrying...") + return models.JobRetrying, nil } return state, err