mirror of
https://github.com/kata-containers/kata-containers.git
synced 2025-06-29 16:57:18 +00:00
qemu: Remove the storage directories if qemu get from the factory
Store related in directory /var/lib/vc/sbs and /run/vc/sbs if vm template is enabled. The cause is NewVM and NewVMFromGrpc will create vcStore with VM's ID and set it as store of hypervisor if the factory is enabled. This commit record the VM's ID to HypervisorConfig.VMid and remove directories in qemu.cleanupVM to handle the issue. Fixes: #1452 Signed-off-by: Hui Zhu <teawater@hyper.sh>
This commit is contained in:
parent
3343e9f7b3
commit
16fe8553af
@ -279,6 +279,10 @@ type HypervisorConfig struct {
|
|||||||
|
|
||||||
// GuestHookPath is the path within the VM that will be used for 'drop-in' hooks
|
// GuestHookPath is the path within the VM that will be used for 'drop-in' hooks
|
||||||
GuestHookPath string
|
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
|
// vcpu mapping from vcpu number to thread number
|
||||||
|
@ -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
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -461,6 +461,7 @@ func (v *VM) assignSandbox(s *Sandbox) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
s.hypervisor = v.hypervisor
|
s.hypervisor = v.hypervisor
|
||||||
|
s.config.HypervisorConfig.VMid = v.id
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user