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  }