fix compilation error

This commit is contained in:
Chris Lu 2019-06-22 12:30:08 -07:00
parent c369e5a13b
commit cd45ab072a
3 changed files with 21 additions and 10 deletions

View file

@ -4,7 +4,7 @@ import (
"github.com/chrislusf/seaweedfs/weed/storage/needle"
)
func toFileId(fileIdStr string) (*FileId, error) {
func toFileIdObject(fileIdStr string) (*FileId, error) {
t, err := needle.ParseFileIdFromString(fileIdStr)
if err != nil {
return nil, err
@ -17,33 +17,44 @@ func toFileId(fileIdStr string) (*FileId, error) {
}
func (fid *FileId) toFileId() string {
func (fid *FileId) toFileIdString() string {
return needle.NewFileId(needle.VolumeId(fid.VolumeId), fid.FileKey, fid.Cookie).String()
}
func ChunkEquals(this, that *FileChunk) bool {
if this.Fid == nil{
this.Fid, _ = toFileId(this.FileId)
this.Fid, _ = toFileIdObject(this.FileId)
}
if that.Fid == nil{
that.Fid, _ = toFileId(that.FileId)
that.Fid, _ = toFileIdObject(that.FileId)
}
return this.Fid.FileKey == that.Fid.FileKey && this.Fid.VolumeId == that.Fid.VolumeId && this.Fid.Cookie == that.Fid.Cookie
}
func (c *FileChunk) GetFileIdString() string {
if c.FileId != "" {
return c.FileId
}
if c.Fid != nil {
c.FileId = c.Fid.toFileIdString()
return c.FileId
}
return ""
}
func BeforeEntrySerialization(chunks []*FileChunk) {
for _, chunk := range chunks {
if chunk.FileId != "" {
if fid, err := toFileId(chunk.FileId); err == nil {
if fid, err := toFileIdObject(chunk.FileId); err == nil {
chunk.Fid = fid
chunk.FileId = ""
}
}
if chunk.SourceFileId != "" {
if fid, err := toFileId(chunk.SourceFileId); err == nil {
if fid, err := toFileIdObject(chunk.SourceFileId); err == nil {
chunk.SourceFid = fid
chunk.SourceFileId = ""
}
@ -57,11 +68,11 @@ func AfterEntryDeserialization(chunks []*FileChunk) {
for _, chunk := range chunks {
if chunk.Fid != nil && chunk.FileId == "" {
chunk.FileId = chunk.Fid.toFileId()
chunk.FileId = chunk.Fid.toFileIdString()
}
if chunk.SourceFid != nil && chunk.SourceFileId == "" {
chunk.SourceFileId = chunk.SourceFid.toFileId()
chunk.SourceFileId = chunk.SourceFid.toFileIdString()
}
}

View file

@ -9,7 +9,7 @@ import (
func TestFileIdSize(t *testing.T) {
fileIdStr := "11745,0293434534cbb9892b"
fid, _ := toFileId(fileIdStr)
fid, _ := toFileIdObject(fileIdStr)
bytes, _ := proto.Marshal(fid)
println(len(fileIdStr))

View file

@ -64,7 +64,7 @@ func (c *commandVolumeFixReplication) Do(args []string, commandEnv *CommandEnv,
replicatedVolumeInfo := make(map[uint32]*master_pb.VolumeInformationMessage)
var allLocations []location
eachDataNode(resp.TopologyInfo, func(dc string, rack RackId, dn *master_pb.DataNodeInfo) {
loc := newLocation(dc.Id, rack.Id, dn)
loc := newLocation(dc, string(rack), dn)
for _, v := range dn.VolumeInfos {
if v.ReplicaPlacement > 0 {
replicatedVolumeLocations[v.Id] = append(replicatedVolumeLocations[v.Id], loc)