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

Commit7e372f7

Browse files
fix(agent/agentcontainers): reset error at start of rebuild (#18686)
Reset the error associated with a devcontainer when a rebuild is requested.
1 parent258a839 commit7e372f7

File tree

2 files changed

+24
-8
lines changed

2 files changed

+24
-8
lines changed

‎agent/agentcontainers/api.go‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -946,6 +946,7 @@ func (api *API) handleDevcontainerRecreate(w http.ResponseWriter, r *http.Reques
946946
// devcontainer multiple times in parallel.
947947
dc.Status=codersdk.WorkspaceAgentDevcontainerStatusStarting
948948
dc.Container=nil
949+
dc.Error=""
949950
api.knownDevcontainers[dc.WorkspaceFolder]=dc
950951
gofunc() {
951952
_=api.CreateDevcontainer(dc.WorkspaceFolder,dc.ConfigPath,WithRemoveExistingContainer())

‎agent/agentcontainers/api_test.go‎

Lines changed: 23 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ func (f *fakeContainerCLI) ExecAs(ctx context.Context, name, user string, args .
6969
typefakeDevcontainerCLIstruct {
7070
upIDstring
7171
upErrerror
72-
upErrCchanerror// If set, send to return err, close to return upErr.
72+
upErrCchanfunc()error// If set, send to return err, close to return upErr.
7373
execErrerror
7474
execErrCchanfunc(cmdstring,args...string)error// If set, send fn to return err, nil or close to return execErr.
7575
readConfig agentcontainers.DevcontainerConfig
@@ -82,9 +82,9 @@ func (f *fakeDevcontainerCLI) Up(ctx context.Context, _, _ string, _ ...agentcon
8282
select {
8383
case<-ctx.Done():
8484
return"",ctx.Err()
85-
caseerr,ok:=<-f.upErrC:
85+
casefn,ok:=<-f.upErrC:
8686
ifok {
87-
returnf.upID,err
87+
returnf.upID,fn()
8888
}
8989
}
9090
}
@@ -613,7 +613,7 @@ func TestAPI(t *testing.T) {
613613
nowRecreateErrorTrap:=mClock.Trap().Now("recreate","errorTimes")
614614
nowRecreateSuccessTrap:=mClock.Trap().Now("recreate","successTimes")
615615

616-
tt.devcontainerCLI.upErrC=make(chanerror)
616+
tt.devcontainerCLI.upErrC=make(chanfunc()error)
617617

618618
// Setup router with the handler under test.
619619
r:=chi.NewRouter()
@@ -1665,7 +1665,7 @@ func TestAPI(t *testing.T) {
16651665
mClock=quartz.NewMock(t)
16661666
fCCLI=&fakeContainerCLI{arch:"<none>"}
16671667
fDCCLI=&fakeDevcontainerCLI{
1668-
upErrC:make(chanerror,1),
1668+
upErrC:make(chanfunc()error,1),
16691669
}
16701670
fSAC=&fakeSubAgentClient{
16711671
logger:logger.Named("fakeSubAgentClient"),
@@ -1717,7 +1717,7 @@ func TestAPI(t *testing.T) {
17171717

17181718
// Given: We simulate an error running `devcontainer up`
17191719
simulatedError:=xerrors.New("simulated error")
1720-
testutil.RequireSend(ctx,t,fDCCLI.upErrC,simulatedError)
1720+
testutil.RequireSend(ctx,t,fDCCLI.upErrC,func()error {returnsimulatedError })
17211721

17221722
nowRecreateErrorTrap.MustWait(ctx).MustRelease(ctx)
17231723
nowRecreateErrorTrap.Close()
@@ -1742,7 +1742,22 @@ func TestAPI(t *testing.T) {
17421742
require.Equal(t,http.StatusAccepted,rec.Code)
17431743

17441744
// Given: We allow `devcontainer up` to succeed.
1745-
testutil.RequireSend(ctx,t,fDCCLI.upErrC,nil)
1745+
testutil.RequireSend(ctx,t,fDCCLI.upErrC,func()error {
1746+
req=httptest.NewRequest(http.MethodGet,"/",nil)
1747+
rec=httptest.NewRecorder()
1748+
r.ServeHTTP(rec,req)
1749+
require.Equal(t,http.StatusOK,rec.Code)
1750+
1751+
response= codersdk.WorkspaceAgentListContainersResponse{}
1752+
err=json.NewDecoder(rec.Body).Decode(&response)
1753+
require.NoError(t,err)
1754+
1755+
// Then: We make sure that the error has been cleared before running up.
1756+
require.Len(t,response.Devcontainers,1)
1757+
require.Equal(t,"",response.Devcontainers[0].Error)
1758+
1759+
returnnil
1760+
})
17461761

17471762
nowRecreateSuccessTrap.MustWait(ctx).MustRelease(ctx)
17481763
nowRecreateSuccessTrap.Close()
@@ -1756,7 +1771,7 @@ func TestAPI(t *testing.T) {
17561771
err=json.NewDecoder(rec.Body).Decode(&response)
17571772
require.NoError(t,err)
17581773

1759-
// Then: We expectthat there will beno errorassociated with the devcontainer.
1774+
// Then: Wealsoexpect no errorafter running up..
17601775
require.Len(t,response.Devcontainers,1)
17611776
require.Equal(t,"",response.Devcontainers[0].Error)
17621777
})

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp