@@ -13,7 +13,10 @@ import (
13
13
)
14
14
15
15
func (r * RootCmd ) start () * serpent.Command {
16
- var parameterFlags workspaceParameterFlags
16
+ var (
17
+ parameterFlags workspaceParameterFlags
18
+ bflags buildFlags
19
+ )
17
20
18
21
client := new (codersdk.Client )
19
22
cmd := & serpent.Command {
@@ -45,12 +48,12 @@ func (r *RootCmd) start() *serpent.Command {
45
48
)
46
49
build = workspace .LatestBuild
47
50
default :
48
- build , err = startWorkspace (inv , client , workspace , parameterFlags , WorkspaceStart )
51
+ build , err = startWorkspace (inv , client , workspace , parameterFlags , bflags , WorkspaceStart )
49
52
// It's possible for a workspace build to fail due to the template requiring starting
50
53
// workspaces with the active version.
51
54
if cerr , ok := codersdk .AsError (err ); ok && cerr .StatusCode () == http .StatusForbidden {
52
55
_ , _ = fmt .Fprintln (inv .Stdout , "Unable to start the workspace with the template version from the last build. Policy may require you to restart with the current active template version." )
53
- build , err = startWorkspace (inv , client , workspace , parameterFlags , WorkspaceUpdate )
56
+ build , err = startWorkspace (inv , client , workspace , parameterFlags , bflags , WorkspaceUpdate )
54
57
if err != nil {
55
58
return xerrors .Errorf ("start workspace with active template version: %w" , err )
56
59
}
@@ -73,11 +76,12 @@ func (r *RootCmd) start() *serpent.Command {
73
76
}
74
77
75
78
cmd .Options = append (cmd .Options , parameterFlags .allOptions ()... )
79
+ cmd .Options = append (cmd .Options , bflags .cliOptions ()... )
76
80
77
81
return cmd
78
82
}
79
83
80
- func buildWorkspaceStartRequest (inv * serpent.Invocation , client * codersdk.Client , workspace codersdk.Workspace , parameterFlags workspaceParameterFlags , action WorkspaceCLIAction ) (codersdk.CreateWorkspaceBuildRequest , error ) {
84
+ func buildWorkspaceStartRequest (inv * serpent.Invocation , client * codersdk.Client , workspace codersdk.Workspace , parameterFlags workspaceParameterFlags , buildFlags buildFlags , action WorkspaceCLIAction ) (codersdk.CreateWorkspaceBuildRequest , error ) {
81
85
version := workspace .LatestBuild .TemplateVersionID
82
86
83
87
if workspace .AutomaticUpdates == codersdk .AutomaticUpdatesAlways || action == WorkspaceUpdate {
@@ -124,14 +128,19 @@ func buildWorkspaceStartRequest(inv *serpent.Invocation, client *codersdk.Client
124
128
return codersdk.CreateWorkspaceBuildRequest {}, err
125
129
}
126
130
127
- return codersdk.CreateWorkspaceBuildRequest {
131
+ wbr := codersdk.CreateWorkspaceBuildRequest {
128
132
Transition : codersdk .WorkspaceTransitionStart ,
129
133
RichParameterValues : buildParameters ,
130
134
TemplateVersionID : version ,
131
- }, nil
135
+ }
136
+ if buildFlags .provisionerLogDebug {
137
+ wbr .LogLevel = codersdk .ProvisionerLogLevelDebug
138
+ }
139
+
140
+ return wbr , nil
132
141
}
133
142
134
- func startWorkspace (inv * serpent.Invocation , client * codersdk.Client , workspace codersdk.Workspace , parameterFlags workspaceParameterFlags , action WorkspaceCLIAction ) (codersdk.WorkspaceBuild , error ) {
143
+ func startWorkspace (inv * serpent.Invocation , client * codersdk.Client , workspace codersdk.Workspace , parameterFlags workspaceParameterFlags , buildFlags buildFlags , action WorkspaceCLIAction ) (codersdk.WorkspaceBuild , error ) {
135
144
if workspace .DormantAt != nil {
136
145
_ , _ = fmt .Fprintln (inv .Stdout , "Activating dormant workspace..." )
137
146
err := client .UpdateWorkspaceDormancy (inv .Context (), workspace .ID , codersdk.UpdateWorkspaceDormancy {
@@ -141,7 +150,7 @@ func startWorkspace(inv *serpent.Invocation, client *codersdk.Client, workspace
141
150
return codersdk.WorkspaceBuild {}, xerrors .Errorf ("activate workspace: %w" , err )
142
151
}
143
152
}
144
- req , err := buildWorkspaceStartRequest (inv , client , workspace , parameterFlags , action )
153
+ req , err := buildWorkspaceStartRequest (inv , client , workspace , parameterFlags , buildFlags , action )
145
154
if err != nil {
146
155
return codersdk.WorkspaceBuild {}, err
147
156
}
0 commit comments