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  }