github.com/anth0d/nomad@v0.0.0-20221214183521-ae3a0a2cad06/command/service_delete.go (about) 1 package command 2 3 import ( 4 "fmt" 5 "strings" 6 7 "github.com/posener/complete" 8 ) 9 10 type ServiceDeleteCommand struct { 11 Meta 12 } 13 14 func (s *ServiceDeleteCommand) Help() string { 15 helpText := ` 16 Usage: nomad service delete [options] <service_name> <service_id> 17 18 Delete is used to deregister the specified service registration. It should be 19 used with caution and can only remove a single registration, via the service 20 name and service ID, at a time. 21 22 When ACLs are enabled, this command requires a token with the 'submit-job' 23 capability for the service registration namespace. 24 25 General Options: 26 27 ` + generalOptionsUsage(usageOptsDefault) 28 29 return strings.TrimSpace(helpText) 30 } 31 32 func (s *ServiceDeleteCommand) Name() string { return "service delete" } 33 34 func (s *ServiceDeleteCommand) Synopsis() string { return "Deregister a registered service" } 35 36 func (s *ServiceDeleteCommand) AutocompleteFlags() complete.Flags { 37 return mergeAutocompleteFlags(s.Meta.AutocompleteFlags(FlagSetClient), 38 complete.Flags{}) 39 } 40 41 func (s *ServiceDeleteCommand) Run(args []string) int { 42 43 flags := s.Meta.FlagSet(s.Name(), FlagSetClient) 44 if err := flags.Parse(args); err != nil { 45 return 1 46 } 47 args = flags.Args() 48 49 if len(args) != 2 { 50 s.Ui.Error("This command takes two arguments: <service_name> and <service_id>") 51 s.Ui.Error(commandErrorText(s)) 52 return 1 53 } 54 55 client, err := s.Meta.Client() 56 if err != nil { 57 s.Ui.Error(fmt.Sprintf("Error initializing client: %s", err)) 58 return 1 59 } 60 61 if _, err := client.Services().Delete(args[0], args[1], nil); err != nil { 62 s.Ui.Error(fmt.Sprintf("Error deleting service registration: %s", err)) 63 return 1 64 } 65 66 s.Ui.Output("Successfully deleted service registration") 67 return 0 68 }