Skip to content
Closed
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
1 change: 1 addition & 0 deletions pkg/ctl/cluster/cluster.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ func Command(flagGrouping *cmdutils.FlagGrouping) *cobra.Command {
cmdutils.AddVerbCmd(flagGrouping, resourceCmd, createClusterCmd)
cmdutils.AddVerbCmd(flagGrouping, resourceCmd, listClustersCmd)
cmdutils.AddVerbCmd(flagGrouping, resourceCmd, getClusterDataCmd)
cmdutils.AddVerbCmd(flagGrouping, resourceCmd, deleteClusterCmd)

return resourceCmd
}
62 changes: 62 additions & 0 deletions pkg/ctl/cluster/delete.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
package cluster

import (
"github.com/streamnative/pulsarctl/pkg/cmdutils"
"github.com/streamnative/pulsarctl/pkg/pulsar"
)

func deleteClusterCmd(vc *cmdutils.VerbCmd) {
desc := pulsar.LongDescription{}
desc.CommandUsedFor = "This command is used for deleting an existing cluster."
desc.CommandPermission = "This command requires super-user permissions."

var examples []pulsar.Example
delete := pulsar.Example{
Desc: "deleting the cluster named <cluster-name>",
Command: "pulsarctl clusters delete <cluster-name>",
}
examples = append(examples, delete)
desc.CommandExamples = examples

var out []pulsar.Output
successOut := pulsar.Output{
Desc: "normal output",
Out: "Cluster <cluster-name> delete successfully.",
}
out = append(out, successOut)

failOut := pulsar.Output{
Desc: "output of doesn't specified a cluster name",
Out: "[✖] only one argument is allowed to be used as a name",
}
out = append(out, failOut)

clusterNotExist := pulsar.Output{
Desc: "output of cluster doesn't exist",
Out: "[✖] code: 404 reason: Cluster does not exist",
}
out = append(out, clusterNotExist)

desc.CommandOutput = out

vc.SetDescription(
"delete",
"Delete an existing cluster",
desc.ToString(),
"delete")

vc.SetRunFuncWithNameArg(func() error {
return doDeleteCluster(vc)
})
}

func doDeleteCluster(vc *cmdutils.VerbCmd) error {
clusterName := vc.NameArg

admin := cmdutils.NewPulsarClient()
err := admin.Clusters().Delete(clusterName)
if err == nil {
vc.Command.Printf("Cluster %s delete successfully", clusterName)
}
return err
}
29 changes: 29 additions & 0 deletions pkg/ctl/cluster/delete_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
package cluster

import (
"github.com/stretchr/testify/assert"
"strings"
"testing"
)

func TestDeleteClusterCmd(t *testing.T) {
args := []string{"add", "test"}
_, err := TestClusterCommands(createClusterCmd, args)
assert.Nil(t, err)

args = []string{"list"}
out, err := TestClusterCommands(listClustersCmd, args)
assert.Nil(t, err)
clusters := out.String()
assert.True(t, strings.Contains(clusters, "test"))

args = []string{"delete", "test"}
_, err = TestClusterCommands(deleteClusterCmd, args)
assert.Nil(t, err)

args = []string{"list"}
out, err = TestClusterCommands(listClustersCmd, args)
assert.Nil(t, err)
clusters = out.String()
assert.False(t, strings.Contains(clusters, "test"))
}
4 changes: 2 additions & 2 deletions pkg/ctl/cluster/get.go
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ import (
func getClusterDataCmd(vc *cmdutils.VerbCmd) {
desc := pulsar.LongDescription{}
desc.CommandUsedFor = "This command is used for getting the cluster data of the specified cluster."
desc.CommandPermission = "This command requires super-user permissions."
desc.CommandPermission = "This command requires super-user permission."

var examples []pulsar.Example
get := pulsar.Example{
Expand All @@ -36,7 +36,7 @@ func getClusterDataCmd(vc *cmdutils.VerbCmd) {

failOut := pulsar.Output{
Desc: "output of doesn't specified a cluster name",
Out: "only one argument is allowed to be used as a name",
Out: "[✖] only one argument is allowed to be used as a name",
}
out = append(out, failOut)

Expand Down