Skip to content

Commit

Permalink
Adds kn revision delete command
Browse files Browse the repository at this point in the history
  • Loading branch information
navidshaikh committed Jun 25, 2019
1 parent 13ff277 commit 76e5a90
Show file tree
Hide file tree
Showing 4 changed files with 100 additions and 0 deletions.
1 change: 1 addition & 0 deletions docs/cmd/kn_revision.md
Original file line number Diff line number Diff line change
Expand Up @@ -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.

38 changes: 38 additions & 0 deletions docs/cmd/kn_revision_delete.md
Original file line number Diff line number Diff line change
@@ -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

60 changes: 60 additions & 0 deletions pkg/kn/commands/revision/delete.go
Original file line number Diff line number Diff line change
@@ -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
}
1 change: 1 addition & 0 deletions pkg/kn/commands/revision/revision.go
Original file line number Diff line number Diff line change
Expand Up @@ -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
}

0 comments on commit 76e5a90

Please sign in to comment.