github.com/ilhicas/nomad@v0.11.8/command/namespace_delete.go (about) 1 package command 2 3 import ( 4 "fmt" 5 "strings" 6 7 "github.com/posener/complete" 8 ) 9 10 type NamespaceDeleteCommand struct { 11 Meta 12 } 13 14 func (c *NamespaceDeleteCommand) Help() string { 15 helpText := ` 16 Usage: nomad namespace delete [options] <namespace> 17 18 Delete is used to remove a namespace. 19 20 General Options: 21 22 ` + generalOptionsUsage() 23 24 return strings.TrimSpace(helpText) 25 } 26 27 func (c *NamespaceDeleteCommand) AutocompleteFlags() complete.Flags { 28 return c.Meta.AutocompleteFlags(FlagSetClient) 29 } 30 31 func (c *NamespaceDeleteCommand) AutocompleteArgs() complete.Predictor { 32 filter := map[string]struct{}{"default": {}} 33 return NamespacePredictor(c.Meta.Client, filter) 34 } 35 36 func (c *NamespaceDeleteCommand) Synopsis() string { 37 return "Delete a namespace" 38 } 39 40 func (c *NamespaceDeleteCommand) Name() string { return "namespace delete" } 41 42 func (c *NamespaceDeleteCommand) Run(args []string) int { 43 flags := c.Meta.FlagSet(c.Name(), FlagSetClient) 44 flags.Usage = func() { c.Ui.Output(c.Help()) } 45 46 if err := flags.Parse(args); err != nil { 47 return 1 48 } 49 50 // Check that we got one argument 51 args = flags.Args() 52 if l := len(args); l != 1 { 53 c.Ui.Error("This command takes one argument: <namespace>") 54 c.Ui.Error(commandErrorText(c)) 55 return 1 56 } 57 58 namespace := args[0] 59 60 // Get the HTTP client 61 client, err := c.Meta.Client() 62 if err != nil { 63 c.Ui.Error(fmt.Sprintf("Error initializing client: %s", err)) 64 return 1 65 } 66 67 _, err = client.Namespaces().Delete(namespace, nil) 68 if err != nil { 69 c.Ui.Error(fmt.Sprintf("Error deleting namespace: %s", err)) 70 return 1 71 } 72 73 c.Ui.Output(fmt.Sprintf("Successfully deleted namespace %q!", namespace)) 74 return 0 75 }