Provisioning: Fix pull stuck in pending (#112032)
This commit is contained in:
@@ -139,15 +139,17 @@ func (r *SyncWorker) Process(ctx context.Context, repo repository.Repository, jo
|
||||
if err != nil {
|
||||
setupSpan.End()
|
||||
logger.Error("failed to create repository resources client", "error", err)
|
||||
err = fmt.Errorf("create repository resources client: %w", err)
|
||||
return tracing.Error(span, err)
|
||||
setupError := fmt.Errorf("create repository resources client: %w", err)
|
||||
progress.Complete(ctx, setupError)
|
||||
return tracing.Error(span, setupError)
|
||||
}
|
||||
clients, err := r.clients.Clients(setupCtx, cfg.Namespace)
|
||||
if err != nil {
|
||||
setupSpan.End()
|
||||
logger.Error("failed to get clients for the repository", "error", err)
|
||||
err = fmt.Errorf("get clients for %s: %w", cfg.Name, err)
|
||||
return tracing.Error(span, err)
|
||||
setupError := fmt.Errorf("get clients for %s: %w", cfg.Name, err)
|
||||
progress.Complete(ctx, setupError)
|
||||
return tracing.Error(span, setupError)
|
||||
}
|
||||
setupSpan.End()
|
||||
|
||||
|
||||
@@ -153,10 +153,15 @@ func TestSyncWorker_Process(t *testing.T) {
|
||||
|
||||
// Initial status update succeeds
|
||||
pr.On("SetMessage", mock.Anything, "update sync status at start").Return()
|
||||
rpf.On("Execute", mock.Anything, repoConfig, mock.Anything).Return(nil)
|
||||
rpf.On("Execute", mock.Anything, repoConfig, mock.Anything).Return(nil).Once()
|
||||
|
||||
// Repository resources creation fails
|
||||
rrf.On("Client", mock.Anything, mock.Anything).Return(nil, errors.New("failed to create repository resources client"))
|
||||
|
||||
// Progress.Complete should be called with the error
|
||||
pr.On("Complete", mock.Anything, mock.MatchedBy(func(err error) bool {
|
||||
return err != nil && err.Error() == "create repository resources client: failed to create repository resources client"
|
||||
})).Return(provisioning.JobStatus{State: provisioning.JobStateError})
|
||||
},
|
||||
expectedError: "create repository resources client: failed to create repository resources client",
|
||||
},
|
||||
@@ -185,13 +190,18 @@ func TestSyncWorker_Process(t *testing.T) {
|
||||
|
||||
// Initial status update succeeds
|
||||
pr.On("SetMessage", mock.Anything, "update sync status at start").Return()
|
||||
rpf.On("Execute", mock.Anything, repoConfig, mock.Anything).Return(nil)
|
||||
rpf.On("Execute", mock.Anything, repoConfig, mock.Anything).Return(nil).Once()
|
||||
|
||||
// Repository resources creation succeeds
|
||||
rrf.On("Client", mock.Anything, mock.Anything).Return(&resources.MockRepositoryResources{}, nil)
|
||||
|
||||
// Getting clients for namespace fails
|
||||
cf.On("Clients", mock.Anything, "test-namespace").Return(nil, errors.New("failed to get clients"))
|
||||
|
||||
// Progress.Complete should be called with the error
|
||||
pr.On("Complete", mock.Anything, mock.MatchedBy(func(err error) bool {
|
||||
return err != nil && err.Error() == "get clients for test-repo: failed to get clients"
|
||||
})).Return(provisioning.JobStatus{State: provisioning.JobStateError})
|
||||
},
|
||||
expectedError: "get clients for test-repo: failed to get clients",
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user