From 568b65c275bd81ebd66df7db90570444db7ce89f Mon Sep 17 00:00:00 2001 From: Peng Tao Date: Fri, 3 Aug 2018 16:28:56 +0800 Subject: [PATCH 1/2] qemu: remove redundant code It looks to be left over due to merge conflicts. Signed-off-by: Peng Tao --- virtcontainers/qemu.go | 15 --------------- 1 file changed, 15 deletions(-) diff --git a/virtcontainers/qemu.go b/virtcontainers/qemu.go index 7f406a4ae..d10831f7d 100644 --- a/virtcontainers/qemu.go +++ b/virtcontainers/qemu.go @@ -416,21 +416,6 @@ func (q *qemu) createSandbox() error { return fmt.Errorf("UUID should not be empty") } - monitorSockPath, err := q.qmpSocketPath(q.id) - if err != nil { - return err - } - - q.qmpMonitorCh = qmpChannel{ - ctx: context.Background(), - path: monitorSockPath, - } - - err = os.MkdirAll(filepath.Dir(monitorSockPath), dirMode) - if err != nil { - return err - } - qmpSockets, err := q.createQmpSocket() if err != nil { return err From bd5076101ca84c7cdbc935f953fc6879f0764b87 Mon Sep 17 00:00:00 2001 From: Peng Tao Date: Fri, 3 Aug 2018 16:40:02 +0800 Subject: [PATCH 2/2] qemu: create vm directory before launching qemu Right now we create it in `createsandbox` and it would create the vm dir unnecessarily for fetchsandbox() and it ends up leaving an empty vm dir behind even after DeleteSandbox. Fixes: #547 Signed-off-by: Peng Tao --- virtcontainers/qemu.go | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/virtcontainers/qemu.go b/virtcontainers/qemu.go index d10831f7d..e45b31f8e 100644 --- a/virtcontainers/qemu.go +++ b/virtcontainers/qemu.go @@ -299,11 +299,6 @@ func (q *qemu) createQmpSocket() ([]govmmQemu.QMPSocket, error) { path: monitorSockPath, } - err = os.MkdirAll(filepath.Dir(monitorSockPath), dirMode) - if err != nil { - return nil, err - } - return []govmmQemu.QMPSocket{ { Type: "unix", @@ -489,7 +484,21 @@ func (q *qemu) startSandbox() error { } }() - strErr, err := govmmQemu.LaunchQemu(q.qemuConfig, newQMPLogger()) + vmPath := filepath.Join(RunVMStoragePath, q.id) + err := os.MkdirAll(vmPath, dirMode) + if err != nil { + return err + } + defer func() { + if err != nil { + if err := os.RemoveAll(vmPath); err != nil { + q.Logger().WithError(err).Error("Fail to clean up vm directory") + } + } + }() + + var strErr string + strErr, err = govmmQemu.LaunchQemu(q.qemuConfig, newQMPLogger()) if err != nil { return fmt.Errorf("%s", strErr) }