From 76e5a9088084a0be179d556c066f82b51dc8852a Mon Sep 17 00:00:00 2001 From: Navid Shaikh Date: Tue, 25 Jun 2019 16:02:43 +0530 Subject: [PATCH] Adds kn revision delete command --- docs/cmd/kn_revision.md | 1 + docs/cmd/kn_revision_delete.md | 38 ++++++++++++++++++ pkg/kn/commands/revision/delete.go | 60 ++++++++++++++++++++++++++++ pkg/kn/commands/revision/revision.go | 1 + 4 files changed, 100 insertions(+) create mode 100644 docs/cmd/kn_revision_delete.md create mode 100644 pkg/kn/commands/revision/delete.go diff --git a/docs/cmd/kn_revision.md b/docs/cmd/kn_revision.md index 1453bc048f..01f393e23d 100644 --- a/docs/cmd/kn_revision.md +++ b/docs/cmd/kn_revision.md @@ -22,6 +22,7 @@ Revision command group ### SEE ALSO * [kn](kn.md) - Knative client +* [kn revision delete](kn_revision_delete.md) - Delete a revision. * [kn revision describe](kn_revision_describe.md) - Describe revisions. * [kn revision list](kn_revision_list.md) - List available revisions. diff --git a/docs/cmd/kn_revision_delete.md b/docs/cmd/kn_revision_delete.md new file mode 100644 index 0000000000..e333fb2639 --- /dev/null +++ b/docs/cmd/kn_revision_delete.md @@ -0,0 +1,38 @@ +## kn revision delete + +Delete a revision. + +### Synopsis + +Delete a revision. + +``` +kn revision delete NAME [flags] +``` + +### Examples + +``` + + # Delete a revision 'svc1-abcde' in default namespace + kn revision delete svc1-abcde +``` + +### Options + +``` + -h, --help help for delete + -n, --namespace string List the requested object(s) in given namespace. +``` + +### Options inherited from parent commands + +``` + --config string config file (default is $HOME/.kn/config.yaml) + --kubeconfig string kubectl config file (default is $HOME/.kube/config) +``` + +### SEE ALSO + +* [kn revision](kn_revision.md) - Revision command group + diff --git a/pkg/kn/commands/revision/delete.go b/pkg/kn/commands/revision/delete.go new file mode 100644 index 0000000000..ce0806a7d5 --- /dev/null +++ b/pkg/kn/commands/revision/delete.go @@ -0,0 +1,60 @@ +// Copyright © 2019 The Knative Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package revision + +import ( + "errors" + "fmt" + + "github.com/knative/client/pkg/kn/commands" + "github.com/spf13/cobra" + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" +) + +// NewRevisionDeleteCommand represent 'revision delete' command +func NewRevisionDeleteCommand(p *commands.KnParams) *cobra.Command { + RevisionDeleteCommand := &cobra.Command{ + Use: "delete NAME", + Short: "Delete a revision.", + Example: ` + # Delete a revision 'svc1-abcde' in default namespace + kn revision delete svc1-abcde`, + RunE: func(cmd *cobra.Command, args []string) error { + if len(args) != 1 { + return errors.New("requires the revision name.") + } + client, err := p.ServingFactory() + if err != nil { + return err + } + namespace, err := p.GetNamespace(cmd) + if err != nil { + return err + } + + err = client.Revisions(namespace).Delete( + args[0], + &v1.DeleteOptions{}, + ) + if err != nil { + return err + } + fmt.Fprintf(cmd.OutOrStdout(), "Revision '%s' successfully deleted in namespace '%s'.\n", args[0], namespace) + return nil + }, + } + commands.AddNamespaceFlags(RevisionDeleteCommand.Flags(), false) + return RevisionDeleteCommand +} diff --git a/pkg/kn/commands/revision/revision.go b/pkg/kn/commands/revision/revision.go index 24519bfbe9..087f6c8927 100644 --- a/pkg/kn/commands/revision/revision.go +++ b/pkg/kn/commands/revision/revision.go @@ -26,5 +26,6 @@ func NewRevisionCommand(p *commands.KnParams) *cobra.Command { } revisionCmd.AddCommand(NewRevisionListCommand(p)) revisionCmd.AddCommand(NewRevisionDescribeCommand(p)) + revisionCmd.AddCommand(NewRevisionDeleteCommand(p)) return revisionCmd }