From aa83a7a0aacac8a82096ccf144c58ffaa3229d54 Mon Sep 17 00:00:00 2001 From: Lantao Liu Date: Fri, 23 Mar 2018 23:02:09 +0000 Subject: [PATCH] Change for new containerd. Signed-off-by: Lantao Liu --- cmd/ctr/main.go | 4 ++-- pkg/containerd/importer/importer.go | 12 ++++++++++-- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/cmd/ctr/main.go b/cmd/ctr/main.go index e001e4300..604e60e70 100644 --- a/cmd/ctr/main.go +++ b/cmd/ctr/main.go @@ -20,13 +20,13 @@ import ( "fmt" "os" - "github.com/containerd/containerd/cmd/ctr/command" + ctrapp "github.com/containerd/containerd/cmd/ctr/app" cricli "github.com/containerd/cri/cli" ) func main() { - app := command.App() + app := ctrapp.New() app.Commands = append(app.Commands, cricli.Command) if err := app.Run(os.Args); err != nil { fmt.Fprintf(os.Stderr, "ctr: %s\n", err) diff --git a/pkg/containerd/importer/importer.go b/pkg/containerd/importer/importer.go index b97b593c1..2025f03c0 100644 --- a/pkg/containerd/importer/importer.go +++ b/pkg/containerd/importer/importer.go @@ -30,6 +30,7 @@ import ( "github.com/containerd/containerd/content" "github.com/containerd/containerd/errdefs" "github.com/containerd/containerd/images" + "github.com/containerd/containerd/leases" "github.com/containerd/containerd/log" "github.com/opencontainers/go-digest" "github.com/opencontainers/image-spec/specs-go" @@ -81,8 +82,15 @@ func Import(ctx context.Context, client *containerd.Client, reader io.Reader) (_ if err != nil { return nil, err } - // TODO(random-liu): Fix this after containerd client is fixed (containerd/containerd#2193) - defer done() // nolint: errcheck + defer func() { + deferCtx, deferCancel := ctrdutil.DeferContext() + defer deferCancel() + if err := done(deferCtx); err != nil { + // Get lease id from context still works after context is done. + leaseID, _ := leases.Lease(ctx) + log.G(ctx).WithError(err).Errorf("Failed to release lease %q", leaseID) + } + }() cs := client.ContentStore() is := client.ImageService()