Use absolute path in example device plugin

deviceDir is used for specifying mount/device host paths, and those
should be absolute paths.
This commit is contained in:
Mahmood Ali
2018-12-04 21:00:54 -05:00
committed by Mahmood Ali
parent 8c5e2e39a4
commit b78130eaaf

View File

@@ -256,6 +256,11 @@ func (d *FsDevice) Reserve(deviceIDs []string) (*device.ContainerReservation, er
return nil, status.New(codes.InvalidArgument, "no device ids given").Err()
}
deviceDir, err := filepath.Abs(d.deviceDir)
if err != nil {
return nil, status.Newf(codes.Internal, "failed to load device dir abs path").Err()
}
resp := &device.ContainerReservation{}
for _, id := range deviceIDs {
@@ -265,10 +270,10 @@ func (d *FsDevice) Reserve(deviceIDs []string) (*device.ContainerReservation, er
}
// Add a mount
resp.Devices = append(resp.Devices, &device.DeviceSpec{
TaskPath: fmt.Sprintf("/dev/%s", id),
HostPath: filepath.Join(d.deviceDir, id),
CgroupPerms: "rw",
resp.Mounts = append(resp.Mounts, &device.Mount{
TaskPath: fmt.Sprintf("/tmp/task-mounts/%s", id),
HostPath: filepath.Join(deviceDir, id),
ReadOnly: false,
})
}