change volume id type to topology.VolumeId

This commit is contained in:
Chris Lu committed 2012-08-23 22:20:37 -07:00
1 parent 0121f35c12
commit 31e4dbfe38
6 files changed
+17 -15

No files matched your search

+6 -6
View File
@@ -32,8 +32,8 @@ type Mapper struct {
volumeLock sync.Mutex
sequenceLock sync.Mutex
Machines []*Machine
vid2machineId map[uint32]int //machineId is +1 of the index of []*Machine, to detect not found entries
Writers []uint32 // transient array of Writers volume id
vid2machineId map[topology.VolumeId]int //machineId is +1 of the index of []*Machine, to detect not found entries
Writers []topology.VolumeId // transient array of Writers volume id
FileIdSequence uint64
fileIdCounter uint64
@@ -47,9 +47,9 @@ func NewMachine(server, publicUrl string, volumes []topology.VolumeInfo) *Machin
func NewMapper(dirname string, filename string, volumeSizeLimit uint64) (m *Mapper) {
m = &Mapper{dir: dirname, fileName: filename}
m.vid2machineId = make(map[uint32]int)
m.vid2machineId = make(map[topology.VolumeId]int)
m.volumeSizeLimit = volumeSizeLimit
m.Writers = *new([]uint32)
m.Writers = *new([]topology.VolumeId)
m.Machines = *new([]*Machine)
seqFile, se := os.OpenFile(path.Join(m.dir, m.fileName+".seq"), os.O_RDONLY, 0644)
@@ -102,7 +102,7 @@ func (m *Mapper) NextFileId(c string) (uint64,int) {
m.fileIdCounter = m.fileIdCounter - count
return m.FileIdSequence - m.fileIdCounter, int(count)
}
func (m *Mapper) Get(vid uint32) (*Machine, error) {
func (m *Mapper) Get(vid topology.VolumeId) (*Machine, error) {
machineId := m.vid2machineId[vid]
if machineId <= 0 {
return nil, errors.New("invalid volume id " + strconv.FormatUint(uint64(vid), 10))
@@ -134,7 +134,7 @@ func (m *Mapper) Add(machine Machine) {
m.vid2machineId[v.Id] = machineId + 1 //use base 1 indexed, to detect not found cases
}
//setting Writers, copy-on-write because of possible updating, this needs some future work!
var writers []uint32
var writers []topology.VolumeId
for _, machine_entry := range m.Machines {
for _, v := range machine_entry.Volumes {
if uint64(v.Size) < m.volumeSizeLimit {