| //go:build windows |
| |
| package wclayer |
| |
| import ( |
| "context" |
| "strings" |
| |
| "github.com/Microsoft/hcsshim/internal/hcserror" |
| "github.com/Microsoft/hcsshim/internal/oc" |
| "go.opencensus.io/trace" |
| ) |
| |
| // CreateScratchLayer creates and populates new read-write layer for use by a container. |
| // This requires the full list of paths to all parent layers up to the base |
| func CreateScratchLayer(ctx context.Context, path string, parentLayerPaths []string) (err error) { |
| title := "hcsshim::CreateScratchLayer" |
| ctx, span := oc.StartSpan(ctx, title) |
| defer span.End() |
| defer func() { oc.SetSpanStatus(span, err) }() |
| span.AddAttributes( |
| trace.StringAttribute("path", path), |
| trace.StringAttribute("parentLayerPaths", strings.Join(parentLayerPaths, ", "))) |
| |
| // Generate layer descriptors |
| layers, err := layerPathsToDescriptors(ctx, parentLayerPaths) |
| if err != nil { |
| return err |
| } |
| |
| err = createSandboxLayer(&stdDriverInfo, path, 0, layers) |
| if err != nil { |
| return hcserror.New(err, title, "") |
| } |
| return nil |
| } |