diff --git a/pkg/generate/app/cmd/newapp.go b/pkg/generate/app/cmd/newapp.go index 28db6a25f9a1..8e25ae086f71 100644 --- a/pkg/generate/app/cmd/newapp.go +++ b/pkg/generate/app/cmd/newapp.go @@ -10,8 +10,10 @@ import ( "strings" "time" + dockerfileparser "github.com/docker/docker/builder/dockerfile/parser" "github.com/fsouza/go-dockerclient" "github.com/golang/glog" + kerrors "k8s.io/apimachinery/pkg/api/errors" "k8s.io/apimachinery/pkg/api/meta" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -22,7 +24,6 @@ import ( kclientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" "k8s.io/kubernetes/pkg/kubectl/resource" - dockerfileparser "github.com/docker/docker/builder/dockerfile/parser" ometa "github.com/openshift/origin/pkg/api/meta" authapi "github.com/openshift/origin/pkg/authorization/api" buildapi "github.com/openshift/origin/pkg/build/api" diff --git a/pkg/generate/app/sourcelookup.go b/pkg/generate/app/sourcelookup.go index 3e2df9e3c127..9e5dd0fb49dc 100644 --- a/pkg/generate/app/sourcelookup.go +++ b/pkg/generate/app/sourcelookup.go @@ -79,7 +79,15 @@ func IsRemoteRepository(s string) (bool, error) { } url.Fragment = "" gitRepo := git.NewRepository() - if _, _, err := gitRepo.ListRemote(url.String()); err != nil { + + // try up to 3 times to reach the remote git repo + for i := 0; i < 3; i++ { + _, _, err = gitRepo.ListRemote(url.String()) + if err == nil { + break + } + } + if err != nil { glog.V(5).Infof("could not list git remotes for %s: %v", s, err) return false, err }