|
@ -21,14 +21,14 @@ import ( |
|
|
|
|
|
|
|
|
func (fs *FilerServer) LookupDirectoryEntry(ctx context.Context, req *filer_pb.LookupDirectoryEntryRequest) (*filer_pb.LookupDirectoryEntryResponse, error) { |
|
|
func (fs *FilerServer) LookupDirectoryEntry(ctx context.Context, req *filer_pb.LookupDirectoryEntryRequest) (*filer_pb.LookupDirectoryEntryResponse, error) { |
|
|
|
|
|
|
|
|
glog.V(4).Infof("LookupDirectoryEntry %s", filepath.Join(req.Directory, req.Name)) |
|
|
|
|
|
|
|
|
glog.V(4).InfofCtx(ctx, "LookupDirectoryEntry %s", filepath.Join(req.Directory, req.Name)) |
|
|
|
|
|
|
|
|
entry, err := fs.filer.FindEntry(ctx, util.JoinPath(req.Directory, req.Name)) |
|
|
entry, err := fs.filer.FindEntry(ctx, util.JoinPath(req.Directory, req.Name)) |
|
|
if err == filer_pb.ErrNotFound { |
|
|
if err == filer_pb.ErrNotFound { |
|
|
return &filer_pb.LookupDirectoryEntryResponse{}, err |
|
|
return &filer_pb.LookupDirectoryEntryResponse{}, err |
|
|
} |
|
|
} |
|
|
if err != nil { |
|
|
if err != nil { |
|
|
glog.V(3).Infof("LookupDirectoryEntry %s: %+v, ", filepath.Join(req.Directory, req.Name), err) |
|
|
|
|
|
|
|
|
glog.V(3).InfofCtx(ctx, "LookupDirectoryEntry %s: %+v, ", filepath.Join(req.Directory, req.Name), err) |
|
|
return nil, err |
|
|
return nil, err |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
@ -97,7 +97,7 @@ func (fs *FilerServer) LookupVolume(ctx context.Context, req *filer_pb.LookupVol |
|
|
for _, vidString := range req.VolumeIds { |
|
|
for _, vidString := range req.VolumeIds { |
|
|
vid, err := strconv.Atoi(vidString) |
|
|
vid, err := strconv.Atoi(vidString) |
|
|
if err != nil { |
|
|
if err != nil { |
|
|
glog.V(1).Infof("Unknown volume id %d", vid) |
|
|
|
|
|
|
|
|
glog.V(1).InfofCtx(ctx, "Unknown volume id %d", vid) |
|
|
return nil, err |
|
|
return nil, err |
|
|
} |
|
|
} |
|
|
var locs []*filer_pb.Location |
|
|
var locs []*filer_pb.Location |
|
@ -138,7 +138,7 @@ func (fs *FilerServer) lookupFileId(ctx context.Context, fileId string) (targetU |
|
|
|
|
|
|
|
|
func (fs *FilerServer) CreateEntry(ctx context.Context, req *filer_pb.CreateEntryRequest) (resp *filer_pb.CreateEntryResponse, err error) { |
|
|
func (fs *FilerServer) CreateEntry(ctx context.Context, req *filer_pb.CreateEntryRequest) (resp *filer_pb.CreateEntryResponse, err error) { |
|
|
|
|
|
|
|
|
glog.V(4).Infof("CreateEntry %v/%v", req.Directory, req.Entry.Name) |
|
|
|
|
|
|
|
|
glog.V(4).InfofCtx(ctx, "CreateEntry %v/%v", req.Directory, req.Entry.Name) |
|
|
|
|
|
|
|
|
resp = &filer_pb.CreateEntryResponse{} |
|
|
resp = &filer_pb.CreateEntryResponse{} |
|
|
|
|
|
|
|
@ -160,7 +160,7 @@ func (fs *FilerServer) CreateEntry(ctx context.Context, req *filer_pb.CreateEntr |
|
|
if createErr == nil { |
|
|
if createErr == nil { |
|
|
fs.filer.DeleteChunksNotRecursive(garbage) |
|
|
fs.filer.DeleteChunksNotRecursive(garbage) |
|
|
} else { |
|
|
} else { |
|
|
glog.V(3).Infof("CreateEntry %s: %v", filepath.Join(req.Directory, req.Entry.Name), createErr) |
|
|
|
|
|
|
|
|
glog.V(3).InfofCtx(ctx, "CreateEntry %s: %v", filepath.Join(req.Directory, req.Entry.Name), createErr) |
|
|
resp.Error = createErr.Error() |
|
|
resp.Error = createErr.Error() |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
@ -169,7 +169,7 @@ func (fs *FilerServer) CreateEntry(ctx context.Context, req *filer_pb.CreateEntr |
|
|
|
|
|
|
|
|
func (fs *FilerServer) UpdateEntry(ctx context.Context, req *filer_pb.UpdateEntryRequest) (*filer_pb.UpdateEntryResponse, error) { |
|
|
func (fs *FilerServer) UpdateEntry(ctx context.Context, req *filer_pb.UpdateEntryRequest) (*filer_pb.UpdateEntryResponse, error) { |
|
|
|
|
|
|
|
|
glog.V(4).Infof("UpdateEntry %v", req) |
|
|
|
|
|
|
|
|
glog.V(4).InfofCtx(ctx, "UpdateEntry %v", req) |
|
|
|
|
|
|
|
|
fullpath := util.Join(req.Directory, req.Entry.Name) |
|
|
fullpath := util.Join(req.Directory, req.Entry.Name) |
|
|
entry, err := fs.filer.FindEntry(ctx, util.FullPath(fullpath)) |
|
|
entry, err := fs.filer.FindEntry(ctx, util.FullPath(fullpath)) |
|
@ -195,7 +195,7 @@ func (fs *FilerServer) UpdateEntry(ctx context.Context, req *filer_pb.UpdateEntr |
|
|
fs.filer.NotifyUpdateEvent(ctx, entry, newEntry, true, req.IsFromOtherCluster, req.Signatures) |
|
|
fs.filer.NotifyUpdateEvent(ctx, entry, newEntry, true, req.IsFromOtherCluster, req.Signatures) |
|
|
|
|
|
|
|
|
} else { |
|
|
} else { |
|
|
glog.V(3).Infof("UpdateEntry %s: %v", filepath.Join(req.Directory, req.Entry.Name), err) |
|
|
|
|
|
|
|
|
glog.V(3).InfofCtx(ctx, "UpdateEntry %s: %v", filepath.Join(req.Directory, req.Entry.Name), err) |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
return &filer_pb.UpdateEntryResponse{}, err |
|
|
return &filer_pb.UpdateEntryResponse{}, err |
|
@ -230,7 +230,7 @@ func (fs *FilerServer) cleanupChunks(ctx context.Context, fullpath string, exist |
|
|
chunks, err = filer.MaybeManifestize(fs.saveAsChunk(ctx, so), chunks) |
|
|
chunks, err = filer.MaybeManifestize(fs.saveAsChunk(ctx, so), chunks) |
|
|
if err != nil { |
|
|
if err != nil { |
|
|
// not good, but should be ok
|
|
|
// not good, but should be ok
|
|
|
glog.V(0).Infof("MaybeManifestize: %v", err) |
|
|
|
|
|
|
|
|
glog.V(0).InfofCtx(ctx, "MaybeManifestize: %v", err) |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
@ -241,7 +241,7 @@ func (fs *FilerServer) cleanupChunks(ctx context.Context, fullpath string, exist |
|
|
|
|
|
|
|
|
func (fs *FilerServer) AppendToEntry(ctx context.Context, req *filer_pb.AppendToEntryRequest) (*filer_pb.AppendToEntryResponse, error) { |
|
|
func (fs *FilerServer) AppendToEntry(ctx context.Context, req *filer_pb.AppendToEntryRequest) (*filer_pb.AppendToEntryResponse, error) { |
|
|
|
|
|
|
|
|
glog.V(4).Infof("AppendToEntry %v", req) |
|
|
|
|
|
|
|
|
glog.V(4).InfofCtx(ctx, "AppendToEntry %v", req) |
|
|
fullpath := util.NewFullPath(req.Directory, req.EntryName) |
|
|
fullpath := util.NewFullPath(req.Directory, req.EntryName) |
|
|
|
|
|
|
|
|
lockClient := cluster.NewLockClient(fs.grpcDialOption, fs.option.Host) |
|
|
lockClient := cluster.NewLockClient(fs.grpcDialOption, fs.option.Host) |
|
@ -273,13 +273,13 @@ func (fs *FilerServer) AppendToEntry(ctx context.Context, req *filer_pb.AppendTo |
|
|
entry.Chunks = append(entry.GetChunks(), req.Chunks...) |
|
|
entry.Chunks = append(entry.GetChunks(), req.Chunks...) |
|
|
so, err := fs.detectStorageOption(ctx, string(fullpath), "", "", entry.TtlSec, "", "", "", "") |
|
|
so, err := fs.detectStorageOption(ctx, string(fullpath), "", "", entry.TtlSec, "", "", "", "") |
|
|
if err != nil { |
|
|
if err != nil { |
|
|
glog.Warningf("detectStorageOption: %v", err) |
|
|
|
|
|
|
|
|
glog.WarningfCtx(ctx, "detectStorageOption: %v", err) |
|
|
return &filer_pb.AppendToEntryResponse{}, err |
|
|
return &filer_pb.AppendToEntryResponse{}, err |
|
|
} |
|
|
} |
|
|
entry.Chunks, err = filer.MaybeManifestize(fs.saveAsChunk(ctx, so), entry.GetChunks()) |
|
|
entry.Chunks, err = filer.MaybeManifestize(fs.saveAsChunk(ctx, so), entry.GetChunks()) |
|
|
if err != nil { |
|
|
if err != nil { |
|
|
// not good, but should be ok
|
|
|
// not good, but should be ok
|
|
|
glog.V(0).Infof("MaybeManifestize: %v", err) |
|
|
|
|
|
|
|
|
glog.V(0).InfofCtx(ctx, "MaybeManifestize: %v", err) |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
err = fs.filer.CreateEntry(context.Background(), entry, false, false, nil, false, fs.filer.MaxFilenameLength) |
|
|
err = fs.filer.CreateEntry(context.Background(), entry, false, false, nil, false, fs.filer.MaxFilenameLength) |
|
@ -289,7 +289,7 @@ func (fs *FilerServer) AppendToEntry(ctx context.Context, req *filer_pb.AppendTo |
|
|
|
|
|
|
|
|
func (fs *FilerServer) DeleteEntry(ctx context.Context, req *filer_pb.DeleteEntryRequest) (resp *filer_pb.DeleteEntryResponse, err error) { |
|
|
func (fs *FilerServer) DeleteEntry(ctx context.Context, req *filer_pb.DeleteEntryRequest) (resp *filer_pb.DeleteEntryResponse, err error) { |
|
|
|
|
|
|
|
|
glog.V(4).Infof("DeleteEntry %v", req) |
|
|
|
|
|
|
|
|
glog.V(4).InfofCtx(ctx, "DeleteEntry %v", req) |
|
|
|
|
|
|
|
|
err = fs.filer.DeleteEntryMetaAndData(ctx, util.JoinPath(req.Directory, req.Name), req.IsRecursive, req.IgnoreRecursiveError, req.IsDeleteData, req.IsFromOtherCluster, req.Signatures, req.IfNotModifiedAfter) |
|
|
err = fs.filer.DeleteEntryMetaAndData(ctx, util.JoinPath(req.Directory, req.Name), req.IsRecursive, req.IgnoreRecursiveError, req.IsDeleteData, req.IsFromOtherCluster, req.Signatures, req.IfNotModifiedAfter) |
|
|
resp = &filer_pb.DeleteEntryResponse{} |
|
|
resp = &filer_pb.DeleteEntryResponse{} |
|
@ -307,7 +307,7 @@ func (fs *FilerServer) AssignVolume(ctx context.Context, req *filer_pb.AssignVol |
|
|
|
|
|
|
|
|
so, err := fs.detectStorageOption(ctx, req.Path, req.Collection, req.Replication, req.TtlSec, req.DiskType, req.DataCenter, req.Rack, req.DataNode) |
|
|
so, err := fs.detectStorageOption(ctx, req.Path, req.Collection, req.Replication, req.TtlSec, req.DiskType, req.DataCenter, req.Rack, req.DataNode) |
|
|
if err != nil { |
|
|
if err != nil { |
|
|
glog.V(3).Infof("AssignVolume: %v", err) |
|
|
|
|
|
|
|
|
glog.V(3).InfofCtx(ctx, "AssignVolume: %v", err) |
|
|
return &filer_pb.AssignVolumeResponse{Error: fmt.Sprintf("assign volume: %v", err)}, nil |
|
|
return &filer_pb.AssignVolumeResponse{Error: fmt.Sprintf("assign volume: %v", err)}, nil |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
@ -315,11 +315,11 @@ func (fs *FilerServer) AssignVolume(ctx context.Context, req *filer_pb.AssignVol |
|
|
|
|
|
|
|
|
assignResult, err := operation.Assign(ctx, fs.filer.GetMaster, fs.grpcDialOption, assignRequest, altRequest) |
|
|
assignResult, err := operation.Assign(ctx, fs.filer.GetMaster, fs.grpcDialOption, assignRequest, altRequest) |
|
|
if err != nil { |
|
|
if err != nil { |
|
|
glog.V(3).Infof("AssignVolume: %v", err) |
|
|
|
|
|
|
|
|
glog.V(3).InfofCtx(ctx, "AssignVolume: %v", err) |
|
|
return &filer_pb.AssignVolumeResponse{Error: fmt.Sprintf("assign volume: %v", err)}, nil |
|
|
return &filer_pb.AssignVolumeResponse{Error: fmt.Sprintf("assign volume: %v", err)}, nil |
|
|
} |
|
|
} |
|
|
if assignResult.Error != "" { |
|
|
if assignResult.Error != "" { |
|
|
glog.V(3).Infof("AssignVolume error: %v", assignResult.Error) |
|
|
|
|
|
|
|
|
glog.V(3).InfofCtx(ctx, "AssignVolume error: %v", assignResult.Error) |
|
|
return &filer_pb.AssignVolumeResponse{Error: fmt.Sprintf("assign volume result: %v", assignResult.Error)}, nil |
|
|
return &filer_pb.AssignVolumeResponse{Error: fmt.Sprintf("assign volume result: %v", assignResult.Error)}, nil |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
@ -339,7 +339,7 @@ func (fs *FilerServer) AssignVolume(ctx context.Context, req *filer_pb.AssignVol |
|
|
|
|
|
|
|
|
func (fs *FilerServer) CollectionList(ctx context.Context, req *filer_pb.CollectionListRequest) (resp *filer_pb.CollectionListResponse, err error) { |
|
|
func (fs *FilerServer) CollectionList(ctx context.Context, req *filer_pb.CollectionListRequest) (resp *filer_pb.CollectionListResponse, err error) { |
|
|
|
|
|
|
|
|
glog.V(4).Infof("CollectionList %v", req) |
|
|
|
|
|
|
|
|
glog.V(4).InfofCtx(ctx, "CollectionList %v", req) |
|
|
resp = &filer_pb.CollectionListResponse{} |
|
|
resp = &filer_pb.CollectionListResponse{} |
|
|
|
|
|
|
|
|
err = fs.filer.MasterClient.WithClient(false, func(client master_pb.SeaweedClient) error { |
|
|
err = fs.filer.MasterClient.WithClient(false, func(client master_pb.SeaweedClient) error { |
|
@ -361,7 +361,7 @@ func (fs *FilerServer) CollectionList(ctx context.Context, req *filer_pb.Collect |
|
|
|
|
|
|
|
|
func (fs *FilerServer) DeleteCollection(ctx context.Context, req *filer_pb.DeleteCollectionRequest) (resp *filer_pb.DeleteCollectionResponse, err error) { |
|
|
func (fs *FilerServer) DeleteCollection(ctx context.Context, req *filer_pb.DeleteCollectionRequest) (resp *filer_pb.DeleteCollectionResponse, err error) { |
|
|
|
|
|
|
|
|
glog.V(4).Infof("DeleteCollection %v", req) |
|
|
|
|
|
|
|
|
glog.V(4).InfofCtx(ctx, "DeleteCollection %v", req) |
|
|
|
|
|
|
|
|
err = fs.filer.DoDeleteCollection(req.GetCollection()) |
|
|
err = fs.filer.DoDeleteCollection(req.GetCollection()) |
|
|
|
|
|
|
|
|