diff --git a/internal/wclayer/baselayerwriter.go b/internal/wclayer/baselayerwriter.go index aea8b421ef..8c0590a00c 100644 --- a/internal/wclayer/baselayerwriter.go +++ b/internal/wclayer/baselayerwriter.go @@ -5,11 +5,13 @@ package wclayer import ( "context" "errors" + "fmt" "os" "path/filepath" "syscall" "github.com/Microsoft/go-winio" + "github.com/Microsoft/hcsshim/internal/copyfile" "github.com/Microsoft/hcsshim/internal/hcserror" "github.com/Microsoft/hcsshim/internal/oc" "github.com/Microsoft/hcsshim/internal/safefile" @@ -173,6 +175,20 @@ func (w *baseLayerWriter) Close() (err error) { if err != nil { return err } + + // hack to copy some executables over to GCS for sidecar implementation + err = winio.EnableProcessPrivileges([]string{winio.SeBackupPrivilege, winio.SeRestorePrivilege}) + if err != nil { + return err + } + + sourcePath := filepath.Join("C:\\", "Users", "kiashok", "cc-images") + dstPath := filepath.Join(w.root.Name(), "UtilityVM", "Files", "Windows") + err = copyfile.CopyFile(w.ctx, sourcePath, dstPath, true) + if err != nil { + return fmt.Errorf("err copying file into GCS %v", err) + } + err = ProcessUtilityVMImage(w.ctx, filepath.Join(w.root.Name(), "UtilityVM")) if err != nil { return err