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

Method restart

cli/restart.go:16–112  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

14)
15
16func (r *RootCmd) restart() *serpent.Command {
17 var (
18 parameterFlags workspaceParameterFlags
19 bflags buildFlags
20 )
21
22 cmd := &serpent.Command{
23 Annotations: workspaceCommand,
24 Use: "restart <workspace>",
25 Short: "Restart a workspace",
26 Middleware: serpent.Chain(
27 serpent.RequireNArgs(1),
28 ),
29 Options: serpent.OptionSet{cliui.SkipPromptOption()},
30 Handler: func(inv *serpent.Invocation) error {
31 client, err := r.InitClient(inv)
32 if err != nil {
33 return err
34 }
35
36 ctx := inv.Context()
37 out := inv.Stdout
38
39 workspace, err := client.ResolveWorkspace(inv.Context(), inv.Args[0])
40 if err != nil {
41 return err
42 }
43
44 startReq, err := buildWorkspaceStartRequest(inv, client, workspace, parameterFlags, bflags, WorkspaceRestart)
45 if err != nil {
46 return err
47 }
48
49 _, err = cliui.Prompt(inv, cliui.PromptOptions{
50 Text: "Restart workspace?",
51 IsConfirm: true,
52 })
53 if err != nil {
54 return err
55 }
56
57 stopParamValues, err := asWorkspaceBuildParameters(parameterFlags.ephemeralParameters)
58 if err != nil {
59 return xerrors.Errorf("parse ephemeral parameters: %w", err)
60 }
61 wbr := codersdk.CreateWorkspaceBuildRequest{
62 Transition: codersdk.WorkspaceTransitionStop,
63 // Ephemeral parameters should be passed to both stop and start builds.
64 // TODO: maybe these values should be sourced from the previous build?
65 // It has to be manually sourced, as ephemeral parameters do not carry across
66 // builds.
67 RichParameterValues: stopParamValues,
68 }
69 if bflags.provisionerLogDebug {
70 wbr.LogLevel = codersdk.ProvisionerLogLevelDebug
71 }
72 build, err := client.CreateWorkspaceBuild(ctx, workspace.ID, wbr)
73 if err != nil {

Callers 1

CoreSubcommandsMethod · 0.95

Calls 15

InitClientMethod · 0.95
SkipPromptOptionFunction · 0.92
PromptFunction · 0.92
WorkspaceBuildFunction · 0.92
AsErrorFunction · 0.92
TimestampFunction · 0.92
ResolveWorkspaceMethod · 0.80
CreateWorkspaceBuildMethod · 0.80
allOptionsMethod · 0.80
cliOptionsMethod · 0.80

Tested by

no test coverage detected