@@ -122,6 +122,7 @@ func LaunchWorkspaceDirectly(t *testing.T, ctx context.Context, api *ComponentAP
122
122
for {
123
123
workspaceImage , err = resolveOrBuildImage (ctx , api , options .BaseImage )
124
124
if st , ok := status .FromError (err ); ok && st .Code () == codes .Unavailable {
125
+ api .ClearImageBuilderClientCache ()
125
126
time .Sleep (5 * time .Second )
126
127
continue
127
128
} else if err != nil {
@@ -290,6 +291,7 @@ func stopWsF(t *testing.T, instanceID string, api *ComponentAPI) stopWorkspaceFu
290
291
t .Logf ("attemp to delete the workspace: %s" , instanceID )
291
292
err = DeleteWorkspace (sctx , api , instanceID )
292
293
if st , ok := status .FromError (err ); ok && st .Code () == codes .Unavailable {
294
+ api .ClearWorkspaceManagerClientCache ()
293
295
t .Logf ("got %v when deleting workspace" , st )
294
296
time .Sleep (5 * time .Second )
295
297
continue
@@ -323,6 +325,7 @@ func stopWsF(t *testing.T, instanceID string, api *ComponentAPI) stopWorkspaceFu
323
325
t .Logf ("waiting for stopping the workspace: %s" , instanceID )
324
326
lastStatus , err := WaitForWorkspaceStop (sctx , api , instanceID )
325
327
if st , ok := status .FromError (err ); ok && st .Code () == codes .Unavailable {
328
+ api .ClearWorkspaceManagerClientCache ()
326
329
t .Logf ("got %v during waiting for stopping the workspace" , st )
327
330
time .Sleep (5 * time .Second )
328
331
continue
@@ -389,6 +392,18 @@ func WaitForWorkspaceStart(ctx context.Context, instanceID string, api *Componen
389
392
resp , err := sub .Recv ()
390
393
if err != nil {
391
394
if st , ok := status .FromError (err ); ok && st .Code () == codes .Unavailable {
395
+ sub .CloseSend ()
396
+ api .ClearWorkspaceManagerClientCache ()
397
+ wsman , err := api .WorkspaceManager ()
398
+ if err != nil {
399
+ errStatus <- xerrors .Errorf ("cannot listen for workspace updates: %w" , err )
400
+ return
401
+ }
402
+ sub , err = wsman .Subscribe (ctx , & wsmanapi.SubscribeRequest {})
403
+ if err != nil {
404
+ errStatus <- xerrors .Errorf ("cannot listen for workspace updates: %w" , err )
405
+ return
406
+ }
392
407
continue
393
408
}
394
409
errStatus <- xerrors .Errorf ("workspace update error: %q" , err )
0 commit comments