Skip to content

Commit

Permalink
Adding generic build failed reason
Browse files Browse the repository at this point in the history
Adding a generic build failed reason to display to display
for build failures that do not have a more specific reason
  • Loading branch information
coreydaley committed Mar 31, 2017
1 parent 611176d commit 2baacf1
Show file tree
Hide file tree
Showing 5 changed files with 83 additions and 0 deletions.
5 changes: 5 additions & 0 deletions pkg/build/api/types.go
Original file line number Diff line number Diff line change
Expand Up @@ -331,6 +331,10 @@ const (
// StatusReasonBuildPodExists indicates that the build tried to create a
// build pod but one was already present.
StatusReasonBuildPodExists StatusReason = "BuildPodExists"

// StatusReasonGenericBuildFailed is the reason associated with a broad
// range of build failures.
StatusReasonGenericBuildFailed StatusReason = "GenericBuildFailed"
)

// NOTE: These messages might change.
Expand All @@ -350,6 +354,7 @@ const (
StatusMessageCancelledBuild = "The build was cancelled by the user."
StatusMessageDockerBuildFailed = "Docker build strategy has failed."
StatusMessageBuildPodExists = "The pod for this build already exists and is older than the build."
StatusMessageGenericBuildFailed = "Generic Build failure - check logs for details."
)

// BuildStatusOutput contains the status of the built image.
Expand Down
4 changes: 4 additions & 0 deletions pkg/build/controller/controller.go
Original file line number Diff line number Diff line change
Expand Up @@ -343,6 +343,10 @@ func (bc *BuildPodController) HandlePod(pod *kapi.Pod) error {

case kapi.PodFailed:
nextStatus = buildapi.BuildPhaseFailed
if build.Status.Reason == "" {
build.Status.Reason = buildapi.StatusReasonGenericBuildFailed
build.Status.Message = buildapi.StatusMessageGenericBuildFailed
}

default:
build.Status.Reason = ""
Expand Down
18 changes: 18 additions & 0 deletions test/extended/builds/failure_status.go
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ var _ = g.Describe("[builds][Slow] update failure status", func() {
pushToRegistryFixture = exutil.FixturePath("testdata", "statusfail-pushtoregistry.yaml")
fetchRuntimeArtifactsFixture = exutil.FixturePath("testdata", "statusfail-runtimeartifacts.yaml")
failedAssembleFixture = exutil.FixturePath("testdata", "statusfail-failedassemble.yaml")
failedGenericReason = exutil.FixturePath("testdata", "statusfail-genericreason.yaml")
binaryBuildDir = exutil.FixturePath("testdata", "statusfail-assemble")
oc = exutil.NewCLI("update-buildstatus", exutil.KubeConfigPath())
)
Expand Down Expand Up @@ -156,4 +157,21 @@ var _ = g.Describe("[builds][Slow] update failure status", func() {
o.Expect(build.Status.Message).To(o.Equal(messageFetchRuntimeArtifacts))
})
})

g.Describe("Build status failed https proxy invalid url", func() {
g.It("should contain the generic failure reason and message", func() {
err := oc.Run("create").Args("-f", failedGenericReason).Execute()
o.Expect(err).NotTo(o.HaveOccurred())

br, err := exutil.StartBuildAndWait(oc, "statusfail-genericfailure", "--build-loglevel=5")
o.Expect(err).NotTo(o.HaveOccurred())
br.AssertFailure()
br.DumpLogs()

build, err := oc.Client().Builds(oc.Namespace()).Get(br.Build.Name)
o.Expect(err).NotTo(o.HaveOccurred())
o.Expect(build.Status.Reason).To(o.Equal(buildapi.StatusReasonGenericBuildFailed))
o.Expect(build.Status.Message).To(o.Equal(buildapi.StatusMessageGenericBuildFailed))
})
})
})
38 changes: 38 additions & 0 deletions test/extended/testdata/bindata.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

18 changes: 18 additions & 0 deletions test/extended/testdata/statusfail-genericreason.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
kind: BuildConfig
apiVersion: v1
metadata:
name: statusfail-genericfailure
spec:
source:
git:
uri: "https://github.com/openshift/ruby-ex"
strategy:
type: Source
sourceStrategy:
from:
kind: DockerImage
name: centos/ruby-23-centos7:latest
scripts: "http://example.org/scripts"
env:
- name: http_proxy
value: ":http://example.org"

0 comments on commit 2baacf1

Please sign in to comment.