X Tutup
Skip to content

Commit 16fcb8d

Browse files
authored
Merge pull request containerd#1470 from crosbymichael/lossy
Return grpc errs from task service
2 parents a6aa3cc + f5d81a6 commit 16fcb8d

File tree

2 files changed

+26
-25
lines changed

2 files changed

+26
-25
lines changed

linux/task.go

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -186,10 +186,12 @@ func (t *Task) DeleteProcess(ctx context.Context, id string) (*runtime.Exit, err
186186
}
187187

188188
func (t *Task) Update(ctx context.Context, resources *types.Any) error {
189-
_, err := t.shim.Update(ctx, &shim.UpdateTaskRequest{
189+
if _, err := t.shim.Update(ctx, &shim.UpdateTaskRequest{
190190
Resources: resources,
191-
})
192-
return err
191+
}); err != nil {
192+
return errdefs.FromGRPC(err)
193+
}
194+
return nil
193195
}
194196

195197
func (t *Task) Process(ctx context.Context, id string) (runtime.Process, error) {

services/tasks/service.go

Lines changed: 21 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@ import (
2424
"github.com/containerd/containerd/plugin"
2525
"github.com/containerd/containerd/runtime"
2626
google_protobuf "github.com/golang/protobuf/ptypes/empty"
27-
"github.com/pkg/errors"
2827
"golang.org/x/net/context"
2928
"google.golang.org/grpc"
3029
"google.golang.org/grpc/codes"
@@ -139,7 +138,7 @@ func (s *Service) Create(ctx context.Context, r *api.CreateTaskRequest) (*api.Cr
139138
}
140139
c, err := runtime.Create(ctx, r.ContainerID, opts)
141140
if err != nil {
142-
return nil, errors.Wrap(err, "runtime create failed")
141+
return nil, errdefs.ToGRPC(err)
143142
}
144143
state, err := c.State(ctx)
145144
if err != nil {
@@ -160,15 +159,15 @@ func (s *Service) Start(ctx context.Context, r *api.StartRequest) (*api.StartRes
160159
p := runtime.Process(t)
161160
if r.ExecID != "" {
162161
if p, err = t.Process(ctx, r.ExecID); err != nil {
163-
return nil, err
162+
return nil, errdefs.ToGRPC(err)
164163
}
165164
}
166165
if err := p.Start(ctx); err != nil {
167-
return nil, err
166+
return nil, errdefs.ToGRPC(err)
168167
}
169168
state, err := p.State(ctx)
170169
if err != nil {
171-
return nil, err
170+
return nil, errdefs.ToGRPC(err)
172171
}
173172
return &api.StartResponse{
174173
Pid: state.Pid,
@@ -186,7 +185,7 @@ func (s *Service) Delete(ctx context.Context, r *api.DeleteTaskRequest) (*api.De
186185
}
187186
exit, err := runtime.Delete(ctx, t)
188187
if err != nil {
189-
return nil, err
188+
return nil, errdefs.ToGRPC(err)
190189
}
191190
return &api.DeleteResponse{
192191
ExitStatus: exit.Status,
@@ -202,7 +201,7 @@ func (s *Service) DeleteProcess(ctx context.Context, r *api.DeleteProcessRequest
202201
}
203202
exit, err := t.DeleteProcess(ctx, r.ExecID)
204203
if err != nil {
205-
return nil, err
204+
return nil, errdefs.ToGRPC(err)
206205
}
207206
return &api.DeleteResponse{
208207
ID: r.ExecID,
@@ -215,7 +214,7 @@ func (s *Service) DeleteProcess(ctx context.Context, r *api.DeleteProcessRequest
215214
func processFromContainerd(ctx context.Context, p runtime.Process) (*task.Process, error) {
216215
state, err := p.State(ctx)
217216
if err != nil {
218-
return nil, err
217+
return nil, errdefs.ToGRPC(err)
219218
}
220219
var status task.Status
221220
switch state.Status {
@@ -253,7 +252,7 @@ func (s *Service) Get(ctx context.Context, r *api.GetRequest) (*api.GetResponse,
253252
p := runtime.Process(task)
254253
if r.ExecID != "" {
255254
if p, err = task.Process(ctx, r.ExecID); err != nil {
256-
return nil, err
255+
return nil, errdefs.ToGRPC(err)
257256
}
258257
}
259258
t, err := processFromContainerd(ctx, p)
@@ -270,7 +269,7 @@ func (s *Service) List(ctx context.Context, r *api.ListTasksRequest) (*api.ListT
270269
for _, r := range s.runtimes {
271270
tasks, err := r.Tasks(ctx)
272271
if err != nil {
273-
return nil, err
272+
return nil, errdefs.ToGRPC(err)
274273
}
275274
for _, t := range tasks {
276275
tt, err := processFromContainerd(ctx, t)
@@ -290,7 +289,7 @@ func (s *Service) Pause(ctx context.Context, r *api.PauseTaskRequest) (*google_p
290289
}
291290
err = t.Pause(ctx)
292291
if err != nil {
293-
return nil, err
292+
return nil, errdefs.ToGRPC(err)
294293
}
295294
return empty, nil
296295
}
@@ -302,7 +301,7 @@ func (s *Service) Resume(ctx context.Context, r *api.ResumeTaskRequest) (*google
302301
}
303302
err = t.Resume(ctx)
304303
if err != nil {
305-
return nil, err
304+
return nil, errdefs.ToGRPC(err)
306305
}
307306
return empty, nil
308307
}
@@ -315,7 +314,7 @@ func (s *Service) Kill(ctx context.Context, r *api.KillRequest) (*google_protobu
315314
p := runtime.Process(t)
316315
if r.ExecID != "" {
317316
if p, err = t.Process(ctx, r.ExecID); err != nil {
318-
return nil, err
317+
return nil, errdefs.ToGRPC(err)
319318
}
320319
}
321320
if err := p.Kill(ctx, r.Signal, r.All); err != nil {
@@ -331,7 +330,7 @@ func (s *Service) ListPids(ctx context.Context, r *api.ListPidsRequest) (*api.Li
331330
}
332331
pids, err := t.Pids(ctx)
333332
if err != nil {
334-
return nil, err
333+
return nil, errdefs.ToGRPC(err)
335334
}
336335
return &api.ListPidsResponse{
337336
Pids: pids,
@@ -355,7 +354,7 @@ func (s *Service) Exec(ctx context.Context, r *api.ExecProcessRequest) (*google_
355354
Terminal: r.Terminal,
356355
},
357356
}); err != nil {
358-
return nil, err
357+
return nil, errdefs.ToGRPC(err)
359358
}
360359
return empty, nil
361360
}
@@ -368,14 +367,14 @@ func (s *Service) ResizePty(ctx context.Context, r *api.ResizePtyRequest) (*goog
368367
p := runtime.Process(t)
369368
if r.ExecID != "" {
370369
if p, err = t.Process(ctx, r.ExecID); err != nil {
371-
return nil, err
370+
return nil, errdefs.ToGRPC(err)
372371
}
373372
}
374373
if err := p.ResizePty(ctx, runtime.ConsoleSize{
375374
Width: r.Width,
376375
Height: r.Height,
377376
}); err != nil {
378-
return nil, err
377+
return nil, errdefs.ToGRPC(err)
379378
}
380379
return empty, nil
381380
}
@@ -388,7 +387,7 @@ func (s *Service) CloseIO(ctx context.Context, r *api.CloseIORequest) (*google_p
388387
p := runtime.Process(t)
389388
if r.ExecID != "" {
390389
if p, err = t.Process(ctx, r.ExecID); err != nil {
391-
return nil, err
390+
return nil, errdefs.ToGRPC(err)
392391
}
393392
}
394393
if r.Stdin {
@@ -410,11 +409,11 @@ func (s *Service) Checkpoint(ctx context.Context, r *api.CheckpointTaskRequest)
410409
}
411410
image, err := ioutil.TempDir("", "ctd-checkpoint")
412411
if err != nil {
413-
return nil, err
412+
return nil, errdefs.ToGRPC(err)
414413
}
415414
defer os.RemoveAll(image)
416415
if err := t.Checkpoint(ctx, image, r.Options); err != nil {
417-
return nil, err
416+
return nil, errdefs.ToGRPC(err)
418417
}
419418
// write checkpoint to the content store
420419
tar := archive.Diff(ctx, "", image)
@@ -434,7 +433,7 @@ func (s *Service) Checkpoint(ctx context.Context, r *api.CheckpointTaskRequest)
434433
spec := bytes.NewReader(data)
435434
specD, err := s.writeContent(ctx, images.MediaTypeContainerd1CheckpointConfig, filepath.Join(image, "spec"), spec)
436435
if err != nil {
437-
return nil, err
436+
return nil, errdefs.ToGRPC(err)
438437
}
439438
return &api.CheckpointTaskResponse{
440439
Descriptors: []*types.Descriptor{
@@ -450,7 +449,7 @@ func (s *Service) Update(ctx context.Context, r *api.UpdateTaskRequest) (*google
450449
return nil, err
451450
}
452451
if err := t.Update(ctx, r.Resources); err != nil {
453-
return nil, err
452+
return nil, errdefs.ToGRPC(err)
454453
}
455454
return empty, nil
456455
}

0 commit comments

Comments
 (0)
X Tutup