MCPcopy Index your code
hub / github.com/coder/coder / deleteWorkspace

Method deleteWorkspace

cli/delete.go:14–94  ·  view source on GitHub ↗

nolint

()

Source from the content-addressed store, hash-verified

12
13// nolint
14func (r *RootCmd) deleteWorkspace() *serpent.Command {
15 var (
16 orphan bool
17 prov buildFlags
18 )
19 cmd := &serpent.Command{
20 Annotations: workspaceCommand,
21 Use: "delete <workspace>",
22 Short: "Delete a workspace",
23 Long: FormatExamples(
24 Example{
25 Description: "Delete a workspace for another user (if you have permission)",
26 Command: "coder delete <username>/<workspace_name>",
27 },
28 ),
29 Middleware: serpent.Chain(
30 serpent.RequireNArgs(1),
31 ),
32 Handler: func(inv *serpent.Invocation) error {
33 client, err := r.InitClient(inv)
34 if err != nil {
35 return err
36 }
37
38 workspace, err := client.ResolveWorkspace(inv.Context(), inv.Args[0])
39 if err != nil {
40 return err
41 }
42
43 sinceLastUsed := time.Since(workspace.LastUsedAt)
44 cliui.Infof(inv.Stderr, "%v was last used %.0f days ago", workspace.FullName(), sinceLastUsed.Hours()/24)
45
46 _, err = cliui.Prompt(inv, cliui.PromptOptions{
47 Text: "Confirm delete workspace?",
48 IsConfirm: true,
49 Default: cliui.ConfirmNo,
50 })
51 if err != nil {
52 return err
53 }
54
55 var state []byte
56 req := codersdk.CreateWorkspaceBuildRequest{
57 Transition: codersdk.WorkspaceTransitionDelete,
58 ProvisionerState: state,
59 Orphan: orphan,
60 }
61 if prov.provisionerLogDebug {
62 req.LogLevel = codersdk.ProvisionerLogLevelDebug
63 }
64 build, err := client.CreateWorkspaceBuild(inv.Context(), workspace.ID, req)
65 if err != nil {
66 return err
67 }
68 cliutil.WarnMatchedProvisioners(inv.Stdout, build.MatchedProvisioners, build.Job)
69
70 err = cliui.WorkspaceBuild(inv.Context(), inv.Stdout, client, build.ID)
71 if err != nil {

Callers 1

CoreSubcommandsMethod · 0.95

Calls 14

InitClientMethod · 0.95
InfofFunction · 0.92
PromptFunction · 0.92
WarnMatchedProvisionersFunction · 0.92
WorkspaceBuildFunction · 0.92
KeywordFunction · 0.92
TimestampFunction · 0.92
SkipPromptOptionFunction · 0.92
FormatExamplesFunction · 0.85
ResolveWorkspaceMethod · 0.80
CreateWorkspaceBuildMethod · 0.80
cliOptionsMethod · 0.80

Tested by

no test coverage detected