Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

feat(cli): add--provisioner-log-debug option#14558

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to ourterms of service andprivacy statement. We’ll occasionally send you account related emails.

Already on GitHub?Sign in to your account

Merged
johnstcn merged 2 commits intomainfromcj/build-debug
Sep 4, 2024
Merged
Show file tree
Hide file tree
Changes fromall commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 11 additions & 3 deletionscli/delete.go
View file
Open in desktop
Original file line numberDiff line numberDiff line change
Expand Up@@ -11,7 +11,10 @@ import (

// nolint
func (r *RootCmd) deleteWorkspace() *serpent.Command {
var orphan bool
var (
orphan bool
prov buildFlags
)
client := new(codersdk.Client)
cmd := &serpent.Command{
Annotations: workspaceCommand,
Expand DownExpand Up@@ -40,11 +43,15 @@ func (r *RootCmd) deleteWorkspace() *serpent.Command {
}

var state []byte
build, err := client.CreateWorkspaceBuild(inv.Context(), workspace.ID, codersdk.CreateWorkspaceBuildRequest{
req := codersdk.CreateWorkspaceBuildRequest{
Transition: codersdk.WorkspaceTransitionDelete,
ProvisionerState: state,
Orphan: orphan,
})
}
if prov.provisionerLogDebug {
req.LogLevel = codersdk.ProvisionerLogLevelDebug
}
build, err := client.CreateWorkspaceBuild(inv.Context(), workspace.ID, req)
if err != nil {
return err
}
Expand All@@ -71,5 +78,6 @@ func (r *RootCmd) deleteWorkspace() *serpent.Command {
},
cliui.SkipPromptOption(),
}
cmd.Options = append(cmd.Options, prov.cliOptions()...)
return cmd
}
18 changes: 18 additions & 0 deletionscli/parameter.go
View file
Open in desktop
Original file line numberDiff line numberDiff line change
Expand Up@@ -127,3 +127,21 @@ func parseParameterMapFile(parameterFile string) (map[string]string, error) {
}
return parameterMap, nil
}

// buildFlags contains options relating to troubleshooting provisioner jobs.
type buildFlags struct {
provisionerLogDebug bool
}

func (bf *buildFlags) cliOptions() []serpent.Option {
return []serpent.Option{
{
Flag: "provisioner-log-debug",
Description: `Sets the provisioner log level to debug.
This will print additional information about the build process.
This is useful for troubleshooting build issues.`,
Value: serpent.BoolOf(&bf.provisionerLogDebug),
Hidden: true,
},
}
}
18 changes: 13 additions & 5 deletionscli/restart.go
View file
Open in desktop
Original file line numberDiff line numberDiff line change
Expand Up@@ -14,7 +14,10 @@ import (
)

func (r *RootCmd) restart() *serpent.Command {
var parameterFlags workspaceParameterFlags
var (
parameterFlags workspaceParameterFlags
bflags buildFlags
)

client := new(codersdk.Client)
cmd := &serpent.Command{
Expand All@@ -35,7 +38,7 @@ func (r *RootCmd) restart() *serpent.Command {
return err
}

startReq, err := buildWorkspaceStartRequest(inv, client, workspace, parameterFlags, WorkspaceRestart)
startReq, err := buildWorkspaceStartRequest(inv, client, workspace, parameterFlags,bflags,WorkspaceRestart)
if err != nil {
return err
}
Expand All@@ -48,9 +51,13 @@ func (r *RootCmd) restart() *serpent.Command {
return err
}

build, err := client.CreateWorkspaceBuild(ctx, workspace.ID, codersdk.CreateWorkspaceBuildRequest{
wbr := codersdk.CreateWorkspaceBuildRequest{
Transition: codersdk.WorkspaceTransitionStop,
})
}
if bflags.provisionerLogDebug {
wbr.LogLevel = codersdk.ProvisionerLogLevelDebug
}
build, err := client.CreateWorkspaceBuild(ctx, workspace.ID, wbr)
if err != nil {
return err
}
Expand All@@ -65,7 +72,7 @@ func (r *RootCmd) restart() *serpent.Command {
// workspaces with the active version.
if cerr, ok := codersdk.AsError(err); ok && cerr.StatusCode() == http.StatusForbidden {
_, _ = fmt.Fprintln(inv.Stdout, "Unable to restart the workspace with the template version from the last build. Policy may require you to restart with the current active template version.")
build, err = startWorkspace(inv, client, workspace, parameterFlags, WorkspaceUpdate)
build, err = startWorkspace(inv, client, workspace, parameterFlags,bflags,WorkspaceUpdate)
if err != nil {
return xerrors.Errorf("start workspace with active template version: %w", err)
}
Expand All@@ -87,6 +94,7 @@ func (r *RootCmd) restart() *serpent.Command {
}

cmd.Options = append(cmd.Options, parameterFlags.allOptions()...)
cmd.Options = append(cmd.Options, bflags.cliOptions()...)

return cmd
}
4 changes: 2 additions & 2 deletionscli/ssh.go
View file
Open in desktop
Original file line numberDiff line numberDiff line change
Expand Up@@ -649,9 +649,9 @@ func getWorkspaceAndAgent(ctx context.Context, inv *serpent.Invocation, client *
// It's possible for a workspace build to fail due to the template requiring starting
// workspaces with the active version.
_, _ = fmt.Fprintf(inv.Stderr, "Workspace was stopped, starting workspace to allow connecting to %q...\n", workspace.Name)
_, err = startWorkspace(inv, client, workspace, workspaceParameterFlags{}, WorkspaceStart)
_, err = startWorkspace(inv, client, workspace, workspaceParameterFlags{},buildFlags{},WorkspaceStart)
if cerr, ok := codersdk.AsError(err); ok && cerr.StatusCode() == http.StatusForbidden {
_, err = startWorkspace(inv, client, workspace, workspaceParameterFlags{}, WorkspaceUpdate)
_, err = startWorkspace(inv, client, workspace, workspaceParameterFlags{},buildFlags{},WorkspaceUpdate)
if err != nil {
return codersdk.Workspace{}, codersdk.WorkspaceAgent{}, xerrors.Errorf("start workspace with active template version: %w", err)
}
Expand Down
25 changes: 17 additions & 8 deletionscli/start.go
View file
Open in desktop
Original file line numberDiff line numberDiff line change
Expand Up@@ -13,7 +13,10 @@ import (
)

func (r *RootCmd) start() *serpent.Command {
var parameterFlags workspaceParameterFlags
var (
parameterFlags workspaceParameterFlags
bflags buildFlags
)

client := new(codersdk.Client)
cmd := &serpent.Command{
Expand DownExpand Up@@ -45,12 +48,12 @@ func (r *RootCmd) start() *serpent.Command {
)
build = workspace.LatestBuild
default:
build, err = startWorkspace(inv, client, workspace, parameterFlags, WorkspaceStart)
build, err = startWorkspace(inv, client, workspace, parameterFlags,bflags,WorkspaceStart)
// It's possible for a workspace build to fail due to the template requiring starting
// workspaces with the active version.
if cerr, ok := codersdk.AsError(err); ok && cerr.StatusCode() == http.StatusForbidden {
_, _ = 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.")
build, err = startWorkspace(inv, client, workspace, parameterFlags, WorkspaceUpdate)
build, err = startWorkspace(inv, client, workspace, parameterFlags,bflags,WorkspaceUpdate)
if err != nil {
return xerrors.Errorf("start workspace with active template version: %w", err)
}
Expand All@@ -73,11 +76,12 @@ func (r *RootCmd) start() *serpent.Command {
}

cmd.Options = append(cmd.Options, parameterFlags.allOptions()...)
cmd.Options = append(cmd.Options, bflags.cliOptions()...)

return cmd
}

func buildWorkspaceStartRequest(inv *serpent.Invocation, client *codersdk.Client, workspace codersdk.Workspace, parameterFlags workspaceParameterFlags, action WorkspaceCLIAction) (codersdk.CreateWorkspaceBuildRequest, error) {
func buildWorkspaceStartRequest(inv *serpent.Invocation, client *codersdk.Client, workspace codersdk.Workspace, parameterFlags workspaceParameterFlags,buildFlags buildFlags,action WorkspaceCLIAction) (codersdk.CreateWorkspaceBuildRequest, error) {
version := workspace.LatestBuild.TemplateVersionID

if workspace.AutomaticUpdates == codersdk.AutomaticUpdatesAlways || action == WorkspaceUpdate {
Expand DownExpand Up@@ -124,14 +128,19 @@ func buildWorkspaceStartRequest(inv *serpent.Invocation, client *codersdk.Client
return codersdk.CreateWorkspaceBuildRequest{}, err
}

return codersdk.CreateWorkspaceBuildRequest{
wbr := codersdk.CreateWorkspaceBuildRequest{
Transition: codersdk.WorkspaceTransitionStart,
RichParameterValues: buildParameters,
TemplateVersionID: version,
}, nil
}
if buildFlags.provisionerLogDebug {
wbr.LogLevel = codersdk.ProvisionerLogLevelDebug
}

return wbr, nil
}

func startWorkspace(inv *serpent.Invocation, client *codersdk.Client, workspace codersdk.Workspace, parameterFlags workspaceParameterFlags, action WorkspaceCLIAction) (codersdk.WorkspaceBuild, error) {
func startWorkspace(inv *serpent.Invocation, client *codersdk.Client, workspace codersdk.Workspace, parameterFlags workspaceParameterFlags,buildFlags buildFlags,action WorkspaceCLIAction) (codersdk.WorkspaceBuild, error) {
if workspace.DormantAt != nil {
_, _ = fmt.Fprintln(inv.Stdout, "Activating dormant workspace...")
err := client.UpdateWorkspaceDormancy(inv.Context(), workspace.ID, codersdk.UpdateWorkspaceDormancy{
Expand All@@ -141,7 +150,7 @@ func startWorkspace(inv *serpent.Invocation, client *codersdk.Client, workspace
return codersdk.WorkspaceBuild{}, xerrors.Errorf("activate workspace: %w", err)
}
}
req, err := buildWorkspaceStartRequest(inv, client, workspace, parameterFlags, action)
req, err := buildWorkspaceStartRequest(inv, client, workspace, parameterFlags,buildFlags,action)
if err != nil {
return codersdk.WorkspaceBuild{}, err
}
Expand Down
11 changes: 9 additions & 2 deletionscli/stop.go
View file
Open in desktop
Original file line numberDiff line numberDiff line change
Expand Up@@ -10,6 +10,7 @@ import (
)

func (r *RootCmd) stop() *serpent.Command {
var bflags buildFlags
client := new(codersdk.Client)
cmd := &serpent.Command{
Annotations: workspaceCommand,
Expand All@@ -35,9 +36,13 @@ func (r *RootCmd) stop() *serpent.Command {
if err != nil {
return err
}
build, err := client.CreateWorkspaceBuild(inv.Context(), workspace.ID, codersdk.CreateWorkspaceBuildRequest{
wbr := codersdk.CreateWorkspaceBuildRequest{
Transition: codersdk.WorkspaceTransitionStop,
})
}
if bflags.provisionerLogDebug {
wbr.LogLevel = codersdk.ProvisionerLogLevelDebug
}
build, err := client.CreateWorkspaceBuild(inv.Context(), workspace.ID, wbr)
if err != nil {
return err
}
Expand All@@ -56,5 +61,7 @@ func (r *RootCmd) stop() *serpent.Command {
return nil
},
}
cmd.Options = append(cmd.Options, bflags.cliOptions()...)

return cmd
}
9 changes: 6 additions & 3 deletionscli/update.go
View file
Open in desktop
Original file line numberDiff line numberDiff line change
Expand Up@@ -10,8 +10,10 @@ import (
)

func (r *RootCmd) update() *serpent.Command {
var parameterFlags workspaceParameterFlags

var (
parameterFlags workspaceParameterFlags
bflags buildFlags
)
client := new(codersdk.Client)
cmd := &serpent.Command{
Annotations: workspaceCommand,
Expand All@@ -32,7 +34,7 @@ func (r *RootCmd) update() *serpent.Command {
return nil
}

build, err := startWorkspace(inv, client, workspace, parameterFlags, WorkspaceUpdate)
build, err := startWorkspace(inv, client, workspace, parameterFlags,bflags,WorkspaceUpdate)
if err != nil {
return xerrors.Errorf("start workspace: %w", err)
}
Expand All@@ -54,5 +56,6 @@ func (r *RootCmd) update() *serpent.Command {
}

cmd.Options = append(cmd.Options, parameterFlags.allOptions()...)
cmd.Options = append(cmd.Options, bflags.cliOptions()...)
return cmd
}
2 changes: 1 addition & 1 deletionscripts/develop.sh
View file
Open in desktop
Original file line numberDiff line numberDiff line change
Expand Up@@ -150,7 +150,7 @@ fatal() {
trap 'fatal "Script encountered an error"' ERR

cdroot
DEBUG_DELVE="${debug}" start_cmd API "" "${CODER_DEV_SHIM}" server --http-address 0.0.0.0:3000 --swagger-enable --access-url "${CODER_DEV_ACCESS_URL}" --dangerous-allow-cors-requests=true "$@"
DEBUG_DELVE="${debug}" start_cmd API "" "${CODER_DEV_SHIM}" server --http-address 0.0.0.0:3000 --swagger-enable --access-url "${CODER_DEV_ACCESS_URL}" --dangerous-allow-cors-requests=true--enable-terraform-debug-mode"$@"

echo '== Waiting for Coder to become ready'
# Start the timeout in the background so interrupting this script
Expand Down
Loading

[8]ページ先頭

©2009-2025 Movatter.jp