github.com/iqoqo/nomad@v0.11.3-0.20200911112621-d7021c74d101/client/devicemanager/testing.go (about) 1 package devicemanager 2 3 import ( 4 "github.com/hashicorp/nomad/nomad/structs" 5 "github.com/hashicorp/nomad/plugins/base" 6 "github.com/hashicorp/nomad/plugins/device" 7 ) 8 9 type ReserveFn func(d *structs.AllocatedDeviceResource) (*device.ContainerReservation, error) 10 type AllStatsFn func() []*device.DeviceGroupStats 11 type DeviceStatsFn func(d *structs.AllocatedDeviceResource) (*device.DeviceGroupStats, error) 12 13 func NoopReserve(*structs.AllocatedDeviceResource) (*device.ContainerReservation, error) { 14 return nil, nil 15 } 16 17 func NoopAllStats() []*device.DeviceGroupStats { 18 return nil 19 } 20 21 func NoopDeviceStats(*structs.AllocatedDeviceResource) (*device.DeviceGroupStats, error) { 22 return nil, nil 23 } 24 25 func NoopMockManager() *MockManager { 26 return &MockManager{ 27 ReserveF: NoopReserve, 28 AllStatsF: NoopAllStats, 29 DeviceStatsF: NoopDeviceStats, 30 } 31 } 32 33 type MockManager struct { 34 ReserveF ReserveFn 35 AllStatsF AllStatsFn 36 DeviceStatsF DeviceStatsFn 37 } 38 39 func (m *MockManager) Run() {} 40 func (m *MockManager) Shutdown() {} 41 func (m *MockManager) PluginType() string { return base.PluginTypeDevice } 42 func (m *MockManager) AllStats() []*device.DeviceGroupStats { return m.AllStatsF() } 43 44 func (m *MockManager) Reserve(d *structs.AllocatedDeviceResource) (*device.ContainerReservation, error) { 45 return m.ReserveF(d) 46 } 47 48 func (m *MockManager) DeviceStats(d *structs.AllocatedDeviceResource) (*device.DeviceGroupStats, error) { 49 return m.DeviceStatsF(d) 50 }