From acf2087db97139dde71548408895e5af4fe8e559 Mon Sep 17 00:00:00 2001 From: Darren Stahl Date: Tue, 16 Jan 2018 16:32:27 -0800 Subject: [PATCH] Error on no rootfs provided Signed-off-by: Darren Stahl --- windows/runtime.go | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/windows/runtime.go b/windows/runtime.go index 11423b31b..542c97363 100644 --- a/windows/runtime.go +++ b/windows/runtime.go @@ -11,6 +11,7 @@ import ( "github.com/Microsoft/hcsshim" eventstypes "github.com/containerd/containerd/api/events" + "github.com/containerd/containerd/api/types" "github.com/containerd/containerd/errdefs" "github.com/containerd/containerd/events" "github.com/containerd/containerd/log" @@ -114,6 +115,10 @@ func (r *windowsRuntime) Create(ctx context.Context, id string, opts runtime.Cre if createOpts.TerminateDuration == 0 { createOpts.TerminateDuration = defaultTerminateDuration } + + if len(opts.Rootfs) == 0 { + return nil, errors.Wrap(errdefs.ErrInvalidArgument, "rootfs was not provided to container create") + } spec.Windows.LayerFolders = append(spec.Windows.LayerFolders, opts.Rootfs[0].Source) parentLayerPaths, err := opts.Rootfs[0].GetParentPaths() if err != nil { @@ -301,6 +306,15 @@ func (r *windowsRuntime) newTask(ctx context.Context, namespace, id string, root } r.tasks.Add(ctx, t) + var eventRootfs []*types.Mount + for _, m := range rootfs { + eventRootfs = append(eventRootfs, &types.Mount{ + Type: m.Type, + Source: m.Source, + Options: m.Options, + }) + } + r.publisher.Publish(ctx, runtime.TaskCreateEventTopic, &eventstypes.TaskCreate{ @@ -311,8 +325,8 @@ func (r *windowsRuntime) newTask(ctx context.Context, namespace, id string, root Stderr: io.Stderr, Terminal: io.Terminal, }, - Pid: t.pid, - //???Rootfs: rootfs, + Pid: t.pid, + Rootfs: eventRootfs, // TODO: what should be in Bundle for windows? })