Skip to content

Commit 7fa3f12

Browse files
committed
Improve oc cancel-build command
1 parent 68d9241 commit 7fa3f12

File tree

7 files changed

+244
-107
lines changed

7 files changed

+244
-107
lines changed

contrib/completions/bash/oc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -850,6 +850,7 @@ _oc_cancel-build()
850850

851851
flags+=("--dump-logs")
852852
flags+=("--restart")
853+
flags+=("--state=")
853854
flags+=("--api-version=")
854855
flags+=("--certificate-authority=")
855856
flags_with_completion+=("--certificate-authority")

contrib/completions/bash/openshift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4368,6 +4368,7 @@ _openshift_cli_cancel-build()
43684368

43694369
flags+=("--dump-logs")
43704370
flags+=("--restart")
4371+
flags+=("--state=")
43714372
flags+=("--api-version=")
43724373
flags+=("--certificate-authority=")
43734374
flags_with_completion+=("--certificate-authority")

docs/generated/oc_by_example_content.adoc

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -627,20 +627,26 @@ Autoscale a deployment config or replication controller
627627

628628

629629
== oc cancel-build
630-
Cancel a pending or running build
630+
Cancel running, pending, or new builds
631631

632632
====
633633
634634
[options="nowrap"]
635635
----
636636
# Cancel the build with the given name
637-
$ oc cancel-build 1da32cvq
637+
$ oc cancel-build ruby-build-2
638638
639639
# Cancel the named build and print the build logs
640-
$ oc cancel-build 1da32cvq --dump-logs
640+
$ oc cancel-build ruby-build-2 --dump-logs
641641
642642
# Cancel the named build and create a new one with the same parameters
643-
$ oc cancel-build 1da32cvq --restart
643+
$ oc cancel-build ruby-build-2 --restart
644+
645+
# Cancel multiple builds
646+
$ oc cancel-build ruby-build-1 ruby-build-2 ruby-build-3
647+
648+
# Cancel all builds created from 'ruby-build' build configuration that are in 'new' state
649+
$ oc cancel-build bc/ruby-build --state=new
644650
----
645651
====
646652

pkg/build/util/util.go

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import (
99
"k8s.io/kubernetes/pkg/labels"
1010

1111
buildapi "github.com/openshift/origin/pkg/build/api"
12+
"github.com/openshift/origin/pkg/client"
1213
)
1314

1415
const (
@@ -90,6 +91,30 @@ func BuildConfigSelectorDeprecated(name string) labels.Selector {
9091
return labels.Set{buildapi.BuildConfigLabelDeprecated: name}.AsSelector()
9192
}
9293

94+
type buildFilter func(buildapi.Build) bool
95+
96+
// BuildConfigBuilds return a list of builds for the given build config.
97+
// Optionally you can specify a filter function to select only builds that
98+
// matches your criteria.
99+
func BuildConfigBuilds(c client.BuildInterface, name string, filterFunc buildFilter) (*buildapi.BuildList, error) {
100+
result, err := c.List(kapi.ListOptions{
101+
LabelSelector: BuildConfigSelector(name),
102+
})
103+
if err != nil {
104+
return nil, err
105+
}
106+
if filterFunc == nil {
107+
return result, nil
108+
}
109+
filteredList := &buildapi.BuildList{TypeMeta: result.TypeMeta, ListMeta: result.ListMeta}
110+
for _, b := range result.Items {
111+
if filterFunc(b) {
112+
filteredList.Items = append(filteredList.Items, b)
113+
}
114+
}
115+
return filteredList, nil
116+
}
117+
93118
// ConfigNameForBuild returns the name of the build config from a
94119
// build name.
95120
func ConfigNameForBuild(build *buildapi.Build) string {

pkg/cmd/cli/cli.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ func NewCommandCLI(name, fullName string, in io.Reader, out, errout io.Writer) *
104104
cmd.NewCmdRollback(fullName, f, out),
105105
cmd.NewCmdNewBuild(fullName, f, in, out),
106106
cmd.NewCmdStartBuild(fullName, f, in, out),
107-
cmd.NewCmdCancelBuild(fullName, f, out),
107+
cmd.NewCmdCancelBuild(fullName, f, in, out),
108108
cmd.NewCmdImportImage(fullName, f, out),
109109
cmd.NewCmdTag(fullName, f, out),
110110
},

0 commit comments

Comments
 (0)