Skip to content

Commit ed1b44f

Browse files
authored
Add error message for cloning sdk timeout (#395)
Issue [#1642](aws-controllers-k8s/community#1642): Description of changes: add message to remind user to clone aws-go-sdk when timeout due to bad network speed ```shell // original ➜ code-generator git:(main) make build-controller SERVICE=ecr building ack-generate ... ok. ==== building ecr-controller ==== Copying common custom resource definitions into ecr Building Kubernetes API objects for ecr Error: canot clone repository: context deadline exceeded make: *** [build-controller] Error 1 // with new error message ➜ code-generator git:(main) ✗ make build-controller SERVICE=ecr building ack-generate ... ok. ==== building ecr-controller ==== Copying common custom resource definitions into ecr Building Kubernetes API objects for ecr Error: cannot clone repository: take too long to clone sdk repo, please consider run 'git clone https://github.com/aws/aws-sdk-go' into cache dir /Users/julian/.cache/aws-controllers-k8s/src/aws-sdk-go make: *** [build-controller] Error 1 ``` By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
1 parent a676537 commit ed1b44f

File tree

1 file changed

+8
-2
lines changed

1 file changed

+8
-2
lines changed

pkg/sdk/repo.go

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ package sdk
1515

1616
import (
1717
"context"
18+
"errors"
1819
"fmt"
1920
"io/ioutil"
2021
"os"
@@ -110,15 +111,20 @@ func EnsureRepo(
110111
return "", err
111112
}
112113

113-
// Clone repository if it doen't exist
114+
// Clone repository if it doesn't exist
114115
sdkDir := filepath.Join(srcPath, "aws-sdk-go")
115116
if _, err = os.Stat(sdkDir); os.IsNotExist(err) {
116117

117118
ctx, cancel := context.WithTimeout(ctx, defaultGitCloneTimeout)
118119
defer cancel()
119120
err = util.CloneRepository(ctx, sdkDir, sdkRepoURL)
120121
if err != nil {
121-
return "", fmt.Errorf("canot clone repository: %v", err)
122+
// See https://github.com/aws-controllers-k8s/community/issues/1642
123+
if errors.Is(err, context.DeadlineExceeded) {
124+
err = fmt.Errorf("%w: take too long to clone aws sdk repo, "+
125+
"please consider manually 'git clone %s' to cache dir %s", err, sdkRepoURL, sdkDir)
126+
}
127+
return "", fmt.Errorf("cannot clone repository: %v", err)
122128
}
123129
}
124130

0 commit comments

Comments
 (0)