Merge pull request #1491 from teawater/factory_leak

qemu: Remove the storage directories if qemu get from the factory
This commit is contained in:
Peng Tao
2019-04-10 20:14:17 +08:00
committed by GitHub
3 changed files with 16 additions and 0 deletions

View File

@@ -279,6 +279,10 @@ type HypervisorConfig struct {
// GuestHookPath is the path within the VM that will be used for 'drop-in' hooks
GuestHookPath string
// VMid is the id of the VM that create the hypervisor if the VM is created by the factory.
// VMid is "" if the hypervisor is not created by the factory.
VMid string
}
// vcpu mapping from vcpu number to thread number

View File

@@ -690,6 +690,17 @@ func (q *qemu) cleanupVM() error {
}
}
if q.config.VMid != "" {
dir = store.SandboxConfigurationRootPath(q.config.VMid)
if err := os.RemoveAll(dir); err != nil {
q.Logger().WithError(err).WithField("path", dir).Warnf("failed to remove vm path")
}
dir = store.SandboxRuntimeRootPath(q.config.VMid)
if err := os.RemoveAll(dir); err != nil {
q.Logger().WithError(err).WithField("path", dir).Warnf("failed to remove vm path")
}
}
return nil
}

View File

@@ -461,6 +461,7 @@ func (v *VM) assignSandbox(s *Sandbox) error {
}
s.hypervisor = v.hypervisor
s.config.HypervisorConfig.VMid = v.id
return nil
}