Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
61 changes: 57 additions & 4 deletions pkg/cmd/cli/describe/projectstatus.go
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,8 @@ func (d *ProjectStatusDescriber) Describe(namespace, name string) (string, error
for _, group := range groups {
if len(group.Builds) != 0 {
for _, build := range group.Builds {
printLines(out, indent, 0, describeImageInPipeline(build, namespace))
fmt.Fprintln(out)
printLines(out, indent, 0, describeStandaloneBuildGroup(build, namespace)...)
printLines(out, indent, 1, describeAdditionalBuildDetail(build.Build, true)...)
}
continue
Expand Down Expand Up @@ -147,6 +148,21 @@ func describeDeploymentInServiceGroup(deploy graph.DeploymentFlow) []string {
return lines
}

func describeStandaloneBuildGroup(pipeline graph.ImagePipeline, namespace string) []string {
switch {
case pipeline.Build != nil:
lines := []string{fmt.Sprintf("%s %s", pipeline.Build.BuildConfig.Name, describeBuildInPipeline(pipeline.Build.BuildConfig, pipeline.BaseImage))}
if pipeline.Image != nil {
lines = append(lines, fmt.Sprintf("pushes to %s", describeImageTagInPipeline(pipeline.Image, namespace)))
}
return lines
case pipeline.Image != nil:
return []string{describeImageTagInPipeline(pipeline.Image, namespace)}
default:
return []string{"<unknown>"}
}
}

func describeImageInPipeline(pipeline graph.ImagePipeline, namespace string) string {
switch {
case pipeline.Image != nil && pipeline.Build != nil:
Expand Down Expand Up @@ -260,15 +276,52 @@ func describeBuildStatus(build *buildapi.Build, t *util.Time, parentName string)
if strings.HasPrefix(name, prefix) {
name = name[len(prefix):]
}
revision := describeSourceRevision(build.Parameters.Revision)
if len(revision) != 0 {
revision = fmt.Sprintf(" - %s", revision)
}
switch build.Status {
case buildapi.BuildStatusComplete:
return fmt.Sprintf("build %s succeeded %s", name, time)
return fmt.Sprintf("build %s succeeded %s ago%s", name, time, revision)
case buildapi.BuildStatusError:
return fmt.Sprintf("build %s stopped with an error %s", name, time)
return fmt.Sprintf("build %s stopped with an error %s ago%s", name, time, revision)
default:
status := strings.ToLower(string(build.Status))
return fmt.Sprintf("build %s %s for %s", name, status, time)
return fmt.Sprintf("build %s %s for %s%s", name, status, time, revision)
}
}

func describeSourceRevision(rev *buildapi.SourceRevision) string {
if rev == nil {
return ""
}
switch {
case rev.Git != nil:
author := describeSourceControlUser(rev.Git.Author)
if len(author) == 0 {
author = describeSourceControlUser(rev.Git.Committer)
}
if len(author) != 0 {
author = fmt.Sprintf(" (%s)", author)
}
commit := rev.Git.Commit
if len(commit) > 7 {
commit = commit[:7]
}
return fmt.Sprintf("%s: %s%s", commit, rev.Git.Message, author)
default:
return ""
}
}

func describeSourceControlUser(user buildapi.SourceControlUser) string {
if len(user.Name) == 0 {
return user.Email
}
if len(user.Email) == 0 {
return user.Name
}
return fmt.Sprintf("%s <%s>", user.Name, user.Email)
}

func buildTimestamp(build *buildapi.Build) util.Time {
Expand Down
1 change: 1 addition & 0 deletions pkg/cmd/cli/describe/projectstatus_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -112,6 +112,7 @@ func TestProjectStatus(t *testing.T) {
"sinatra-app-example-b deploys",
"with docker.io/openshift/ruby-20-centos7:latest",
"build 1 running for about a minute",
"- 7a4f354: Prepare v1beta3 Template types (Roy Programmer <someguy@outhere.com>)",
"To see more information",
},
Time: mustParseTime("2015-04-06T21:20:03Z"),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,17 @@ items:
clean: true
image: openshift/ruby-20-centos7
type: STI
revision:
type: git
git:
commit: 7a4f354721b0c9717e46f2e132b269b495d43e2b
message: Prepare v1beta3 Template types
commiter:
name: openshiftbot
email: openshiftbot@redhat.com
author:
name: Roy Programmer
email: someguy@outhere.com
startTimestamp: 2015-04-06T21:19:03Z
status: Running
- apiVersion: v1beta1
Expand Down