github.com/schwarzm/garden-linux@v0.0.0-20150507151835-33bca2147c47/old/quota_manager/fake_quota_manager/fake_quota_manager.go (about) 1 package fake_quota_manager 2 3 import ( 4 "sync" 5 6 "github.com/cloudfoundry-incubator/garden" 7 "github.com/pivotal-golang/lager" 8 ) 9 10 type FakeQuotaManager struct { 11 SetLimitsError error 12 GetLimitsError error 13 GetUsageError error 14 15 GetLimitsResult garden.DiskLimits 16 GetUsageResult garden.ContainerDiskStat 17 18 MountPointResult string 19 20 Limited map[int]garden.DiskLimits 21 22 enabled bool 23 24 sync.RWMutex 25 } 26 27 func New() *FakeQuotaManager { 28 return &FakeQuotaManager{ 29 Limited: make(map[int]garden.DiskLimits), 30 31 enabled: true, 32 } 33 } 34 35 func (m *FakeQuotaManager) SetLimits(logger lager.Logger, uid int, limits garden.DiskLimits) error { 36 if m.SetLimitsError != nil { 37 return m.SetLimitsError 38 } 39 40 m.Lock() 41 defer m.Unlock() 42 43 m.Limited[uid] = limits 44 45 return nil 46 } 47 48 func (m *FakeQuotaManager) GetLimits(logger lager.Logger, uid int) (garden.DiskLimits, error) { 49 if m.GetLimitsError != nil { 50 return garden.DiskLimits{}, m.GetLimitsError 51 } 52 53 m.RLock() 54 defer m.RUnlock() 55 56 return m.GetLimitsResult, nil 57 } 58 59 func (m *FakeQuotaManager) GetUsage(logger lager.Logger, uid int) (garden.ContainerDiskStat, error) { 60 if m.GetUsageError != nil { 61 return garden.ContainerDiskStat{}, m.GetUsageError 62 } 63 64 m.RLock() 65 defer m.RUnlock() 66 67 return m.GetUsageResult, nil 68 } 69 70 func (m *FakeQuotaManager) MountPoint() string { 71 return m.MountPointResult 72 } 73 74 func (m *FakeQuotaManager) Disable() { 75 m.enabled = false 76 } 77 78 func (m *FakeQuotaManager) IsEnabled() bool { 79 return m.enabled 80 }