mirror of
https://github.com/kata-containers/kata-containers.git
synced 2025-08-02 00:02:01 +00:00
virtcontainers: make CreateDevice func private
CreateDevice() is only used by `NewDevices()` so we can make it private and there's no need to export it. Signed-off-by: Zhang Wei <zhangwei555@huawei.com>
This commit is contained in:
parent
366558ad5b
commit
9acbcba967
@ -57,6 +57,5 @@ type Device interface {
|
||||
// DeviceManager can be used to create a new device, this can be used as single
|
||||
// device management object.
|
||||
type DeviceManager interface {
|
||||
CreateDevice(devInfo config.DeviceInfo) Device
|
||||
NewDevices(devInfos []config.DeviceInfo) ([]Device, error)
|
||||
}
|
||||
|
@ -29,21 +29,25 @@ func deviceLogger() *logrus.Entry {
|
||||
return api.DeviceLogger().WithField("subsystem", "device")
|
||||
}
|
||||
|
||||
// CreateDevice creates one device based on DeviceInfo
|
||||
func (dm *deviceManager) CreateDevice(devInfo config.DeviceInfo) api.Device {
|
||||
path := devInfo.HostPath
|
||||
// createDevice creates one device based on DeviceInfo
|
||||
func (dm *deviceManager) createDevice(devInfo config.DeviceInfo) (api.Device, error) {
|
||||
path, err := config.GetHostPathFunc(devInfo)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
devInfo.HostPath = path
|
||||
if isVFIO(path) {
|
||||
return drivers.NewVFIODevice(devInfo)
|
||||
return drivers.NewVFIODevice(devInfo), nil
|
||||
} else if isBlock(devInfo) {
|
||||
if devInfo.DriverOptions == nil {
|
||||
devInfo.DriverOptions = make(map[string]string)
|
||||
}
|
||||
devInfo.DriverOptions["block-driver"] = dm.blockDriver
|
||||
return drivers.NewBlockDevice(devInfo)
|
||||
return drivers.NewBlockDevice(devInfo), nil
|
||||
} else {
|
||||
deviceLogger().WithField("device", path).Info("Device has not been passed to the container")
|
||||
return drivers.NewGenericDevice(devInfo)
|
||||
return drivers.NewGenericDevice(devInfo), nil
|
||||
}
|
||||
}
|
||||
|
||||
@ -52,13 +56,10 @@ func (dm *deviceManager) NewDevices(devInfos []config.DeviceInfo) ([]api.Device,
|
||||
var devices []api.Device
|
||||
|
||||
for _, devInfo := range devInfos {
|
||||
hostPath, err := config.GetHostPathFunc(devInfo)
|
||||
device, err := dm.createDevice(devInfo)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
devInfo.HostPath = hostPath
|
||||
device := dm.CreateDevice(devInfo)
|
||||
devices = append(devices, device)
|
||||
}
|
||||
|
||||
|
@ -25,31 +25,6 @@ const fileMode0640 = os.FileMode(0640)
|
||||
// dirMode is the permission bits used for creating a directory
|
||||
const dirMode = os.FileMode(0750) | os.ModeDir
|
||||
|
||||
func TestCreateDevice(t *testing.T) {
|
||||
dm := &deviceManager{
|
||||
blockDriver: VirtioBlock,
|
||||
}
|
||||
devInfo := config.DeviceInfo{
|
||||
HostPath: "/dev/vfio/8",
|
||||
DevType: "b",
|
||||
}
|
||||
|
||||
device := dm.CreateDevice(devInfo)
|
||||
_, ok := device.(*drivers.VFIODevice)
|
||||
assert.True(t, ok)
|
||||
|
||||
devInfo.HostPath = "/dev/sda"
|
||||
device = dm.CreateDevice(devInfo)
|
||||
_, ok = device.(*drivers.BlockDevice)
|
||||
assert.True(t, ok)
|
||||
|
||||
devInfo.HostPath = "/dev/tty"
|
||||
devInfo.DevType = "c"
|
||||
device = dm.CreateDevice(devInfo)
|
||||
_, ok = device.(*drivers.GenericDevice)
|
||||
assert.True(t, ok)
|
||||
}
|
||||
|
||||
func TestNewDevices(t *testing.T) {
|
||||
dm := &deviceManager{
|
||||
blockDriver: VirtioBlock,
|
||||
@ -153,7 +128,8 @@ func TestAttachVFIODevice(t *testing.T) {
|
||||
DevType: "c",
|
||||
}
|
||||
|
||||
device := dm.CreateDevice(deviceInfo)
|
||||
device, err := dm.createDevice(deviceInfo)
|
||||
assert.Nil(t, err)
|
||||
_, ok := device.(*drivers.VFIODevice)
|
||||
assert.True(t, ok)
|
||||
|
||||
@ -176,12 +152,13 @@ func TestAttachGenericDevice(t *testing.T) {
|
||||
DevType: "c",
|
||||
}
|
||||
|
||||
device := dm.CreateDevice(deviceInfo)
|
||||
device, err := dm.createDevice(deviceInfo)
|
||||
assert.Nil(t, err)
|
||||
_, ok := device.(*drivers.GenericDevice)
|
||||
assert.True(t, ok)
|
||||
|
||||
devReceiver := &api.MockDeviceReceiver{}
|
||||
err := device.Attach(devReceiver)
|
||||
err = device.Attach(devReceiver)
|
||||
assert.Nil(t, err)
|
||||
|
||||
err = device.Detach(devReceiver)
|
||||
@ -200,11 +177,12 @@ func TestAttachBlockDevice(t *testing.T) {
|
||||
}
|
||||
|
||||
devReceiver := &api.MockDeviceReceiver{}
|
||||
device := dm.CreateDevice(deviceInfo)
|
||||
device, err := dm.createDevice(deviceInfo)
|
||||
assert.Nil(t, err)
|
||||
_, ok := device.(*drivers.BlockDevice)
|
||||
assert.True(t, ok)
|
||||
|
||||
err := device.Attach(devReceiver)
|
||||
err = device.Attach(devReceiver)
|
||||
assert.Nil(t, err)
|
||||
|
||||
err = device.Detach(devReceiver)
|
||||
@ -212,7 +190,8 @@ func TestAttachBlockDevice(t *testing.T) {
|
||||
|
||||
// test virtio SCSI driver
|
||||
dm.blockDriver = VirtioSCSI
|
||||
device = dm.CreateDevice(deviceInfo)
|
||||
device, err = dm.createDevice(deviceInfo)
|
||||
assert.Nil(t, err)
|
||||
err = device.Attach(devReceiver)
|
||||
assert.Nil(t, err)
|
||||
|
||||
|
@ -1588,7 +1588,9 @@ func TestAttachBlockDevice(t *testing.T) {
|
||||
}
|
||||
|
||||
dm := manager.NewDeviceManager(VirtioBlock)
|
||||
device := dm.CreateDevice(deviceInfo)
|
||||
devices, err := dm.NewDevices([]config.DeviceInfo{deviceInfo})
|
||||
assert.Nil(t, err)
|
||||
device := devices[0]
|
||||
_, ok := device.(*drivers.BlockDevice)
|
||||
assert.True(t, ok)
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user