virtcontainers/store: make VCStoreUUIDPath rootless

The uuid file shouldn't be created at `/var` if running rootless.
Modify `VMUUIDStoragePath` to get a path accessible for non-root users
if running rootless.

fixes #2133

Signed-off-by: Julio Montes <julio.montes@intel.com>
This commit is contained in:
Julio Montes 2019-10-11 15:25:54 +00:00
parent c7b4c5eab9
commit abec17f8f2
2 changed files with 9 additions and 2 deletions

View File

@ -105,7 +105,14 @@ var RunVMStoragePath = func() string {
// VMUUIDStoragePath is the uuid directory.
// It will contain all uuid info used by guest vm.
var VMUUIDStoragePath = filepath.Join("/var/lib", StoragePathSuffix, UUIDPathSuffix)
var VMUUIDStoragePath = func() string {
path := filepath.Join("/var/lib", StoragePathSuffix, UUIDPathSuffix)
if rootless.IsRootless() {
return filepath.Join(rootless.GetRootlessDir(), path)
}
return path
}
func itemToFile(item Item) (string, error) {
switch item {

View File

@ -271,7 +271,7 @@ func SandboxConfigurationItemPath(id string, item Item) (string, error) {
// VCStoreUUIDPath returns a virtcontainers runtime uuid URL.
func VCStoreUUIDPath() string {
return filesystemScheme + "://" + filepath.Join(VCStorePrefix, VMUUIDStoragePath)
return filesystemScheme + "://" + filepath.Join(VCStorePrefix, VMUUIDStoragePath())
}
// SandboxRuntimeRoot returns a virtcontainers sandbox runtime root URL.