MCPcopy Create free account
hub / github.com/OctopusDeploy/cli / NewCmdDelete

Function NewCmdDelete

pkg/cmd/worker/delete/delete.go:33–77  ·  view source on GitHub ↗
(f factory.Factory)

Source from the content-addressed store, hash-verified

31}
32
33func NewCmdDelete(f factory.Factory) *cobra.Command {
34 var skipConfirmation bool
35
36 cmd := &cobra.Command{
37 Use: "delete {<name> | <id>}",
38 Short: "Delete a worker",
39 Long: "Delete a worker in Octopus Deploy",
40 Aliases: []string{"del", "rm", "remove"},
41 Example: heredoc.Docf(`
42 %[1]s worker delete
43 %[1]s worker rm
44 `, constants.ExecutableName),
45 RunE: func(c *cobra.Command, args []string) error {
46 deps := cmd.NewDependencies(f, c)
47
48 if util.Empty(args) {
49 opts := NewDeleteOptions(deps)
50 return deleteRun(opts)
51 }
52
53 idOrName := args[0]
54 opts := NewDeleteOptions(deps)
55 worker, err := opts.GetWorkerCallback(idOrName)
56 if err != nil {
57 return err
58 }
59
60 if worker == nil {
61 return fmt.Errorf("cannot find a worker with name or ID of '%s'", idOrName)
62 }
63
64 if !skipConfirmation { // TODO NO_PROMPT env var or whatever we do there
65 return question.DeleteWithConfirmation(f.Ask, resourceDescription, worker.Name, worker.GetID(), func() error {
66 return delete(opts.Client, worker)
67 })
68 }
69
70 return delete(opts.Client, worker)
71 },
72 }
73
74 question.RegisterConfirmDeletionFlag(cmd, &skipConfirmation, resourceDescription)
75
76 return cmd
77}
78
79func deleteRun(opts *DeleteOptions) error {
80 worker, err := selectors.Select(opts.Ask, "Select the worker you wish to delete:", opts.GetWorkersCallback, func(worker *machines.Worker) string { return worker.Name })

Callers

nothing calls this directly

Calls 6

EmptyFunction · 0.92
DeleteWithConfirmationFunction · 0.92
NewDeleteOptionsFunction · 0.70
deleteRunFunction · 0.70
deleteFunction · 0.70

Tested by

no test coverage detected