Browse Source

reformatting

pull/2/head
Chris Lu 12 years ago
parent
commit
fbe828e486
  1. 4
      weed-fs/src/cmd/weed/master.go
  2. 23
      weed-fs/src/pkg/directory/volume_mapping.go

4
weed-fs/src/cmd/weed/master.go

@ -1,10 +1,10 @@
package main package main
import ( import (
"pkg/directory"
"encoding/json" "encoding/json"
"log" "log"
"net/http" "net/http"
"pkg/directory"
"pkg/storage" "pkg/storage"
"strconv" "strconv"
"strings" "strings"
@ -41,7 +41,7 @@ func dirLookupHandler(w http.ResponseWriter, r *http.Request) {
volumeId, _ := storage.NewVolumeId(vid) volumeId, _ := storage.NewVolumeId(vid)
machine, e := mapper.Get(volumeId) machine, e := mapper.Get(volumeId)
if e == nil { if e == nil {
writeJson(w, r, machine.Server)
writeJson(w, r, map[string]string{"url": machine.Url, "publicUrl": machine.PublicUrl})
} else { } else {
log.Println("Invalid volume id", volumeId) log.Println("Invalid volume id", volumeId)
writeJson(w, r, map[string]string{"error": "volume id " + volumeId.String() + " not found"}) writeJson(w, r, map[string]string{"error": "volume id " + volumeId.String() + " not found"})

23
weed-fs/src/pkg/directory/volume_mapping.go

@ -10,17 +10,10 @@ import (
"sync" "sync"
) )
const (
FileIdSaveInterval = 10000
)
type MachineInfo struct {
Url string //<server name/ip>[:port]
PublicUrl string
}
type Machine struct { type Machine struct {
Server MachineInfo
Volumes []storage.VolumeInfo Volumes []storage.VolumeInfo
Url string //<server name/ip>[:port]
PublicUrl string
} }
type Mapper struct { type Mapper struct {
@ -35,7 +28,7 @@ type Mapper struct {
} }
func NewMachine(server, publicUrl string, volumes []storage.VolumeInfo) *Machine { func NewMachine(server, publicUrl string, volumes []storage.VolumeInfo) *Machine {
return &Machine{Server: MachineInfo{Url: server, PublicUrl: publicUrl}, Volumes: volumes}
return &Machine{Url: server, PublicUrl: publicUrl, Volumes: volumes}
} }
func NewMapper(dirname string, filename string, volumeSizeLimit uint64) (m *Mapper) { func NewMapper(dirname string, filename string, volumeSizeLimit uint64) (m *Mapper) {
@ -49,7 +42,7 @@ func NewMapper(dirname string, filename string, volumeSizeLimit uint64) (m *Mapp
return return
} }
func (m *Mapper) PickForWrite(c string) (string, int, *MachineInfo, error) {
func (m *Mapper) PickForWrite(c string) (string, int, *Machine, error) {
len_writers := len(m.Writers) len_writers := len(m.Writers)
if len_writers <= 0 { if len_writers <= 0 {
log.Println("No more writable volumes!") log.Println("No more writable volumes!")
@ -61,11 +54,11 @@ func (m *Mapper) PickForWrite(c string) (string, int, *MachineInfo, error) {
machine := m.Machines[machine_id-1] machine := m.Machines[machine_id-1]
fileId, count := m.sequence.NextFileId(util.ParseInt(c, 1)) fileId, count := m.sequence.NextFileId(util.ParseInt(c, 1))
if count == 0 { if count == 0 {
return "", 0, &m.Machines[rand.Intn(len(m.Machines))].Server, errors.New("Strange count:" + c)
return "", 0, m.Machines[rand.Intn(len(m.Machines))], errors.New("Strange count:" + c)
} }
return NewFileId(vid, fileId, rand.Uint32()).String(), count, &machine.Server, nil
return NewFileId(vid, fileId, rand.Uint32()).String(), count, machine, nil
} }
return "", 0, &m.Machines[rand.Intn(len(m.Machines))].Server, errors.New("Strangely vid " + vid.String() + " is on no machine!")
return "", 0, m.Machines[rand.Intn(len(m.Machines))], errors.New("Strangely vid " + vid.String() + " is on no machine!")
} }
func (m *Mapper) Get(vid storage.VolumeId) (*Machine, error) { func (m *Mapper) Get(vid storage.VolumeId) (*Machine, error) {
machineId := m.vid2machineId[vid] machineId := m.vid2machineId[vid]
@ -80,7 +73,7 @@ func (m *Mapper) Add(machine Machine) {
m.volumeLock.Lock() m.volumeLock.Lock()
foundExistingMachineId := -1 foundExistingMachineId := -1
for index, entry := range m.Machines { for index, entry := range m.Machines {
if machine.Server.Url == entry.Server.Url {
if machine.Url == entry.Url {
foundExistingMachineId = index foundExistingMachineId = index
break break
} }

Loading…
Cancel
Save