forked from TrueCloudLab/frostfs-s3-gw
[#110] tree: Add more logs for switching tree endpoints
Signed-off-by: Denis Kirillov <d.kirillov@yadro.com>
This commit is contained in:
parent
1fdbfb0dab
commit
24390fdec8
1 changed files with 26 additions and 8 deletions
|
@ -145,8 +145,11 @@ func (c *ServiceClientGRPC) GetNodes(ctx context.Context, p *tree.GetNodesParams
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
log := c.log.With(zap.String("request_id", api.GetRequestID(ctx)), zap.String("tree", p.TreeID),
|
||||||
|
zap.String("method", "GetNodeByPath"))
|
||||||
|
|
||||||
var resp *grpcService.GetNodeByPathResponse
|
var resp *grpcService.GetNodeByPathResponse
|
||||||
if err := c.requestWithRetry(func(client treeClient) (inErr error) {
|
if err := c.requestWithRetry(log, func(client treeClient) (inErr error) {
|
||||||
resp, inErr = client.service.GetNodeByPath(ctx, request)
|
resp, inErr = client.service.GetNodeByPath(ctx, request)
|
||||||
return handleError("failed to get node by path", inErr)
|
return handleError("failed to get node by path", inErr)
|
||||||
}); err != nil {
|
}); err != nil {
|
||||||
|
@ -181,8 +184,11 @@ func (c *ServiceClientGRPC) GetSubTree(ctx context.Context, bktInfo *data.Bucket
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
log := c.log.With(zap.String("request_id", api.GetRequestID(ctx)), zap.String("tree", treeID),
|
||||||
|
zap.String("method", "GetSubTree"))
|
||||||
|
|
||||||
var cli grpcService.TreeService_GetSubTreeClient
|
var cli grpcService.TreeService_GetSubTreeClient
|
||||||
if err := c.requestWithRetry(func(client treeClient) (inErr error) {
|
if err := c.requestWithRetry(log, func(client treeClient) (inErr error) {
|
||||||
cli, inErr = client.service.GetSubTree(ctx, request)
|
cli, inErr = client.service.GetSubTree(ctx, request)
|
||||||
return handleError("failed to get sub tree client", inErr)
|
return handleError("failed to get sub tree client", inErr)
|
||||||
}); err != nil {
|
}); err != nil {
|
||||||
|
@ -222,8 +228,11 @@ func (c *ServiceClientGRPC) AddNode(ctx context.Context, bktInfo *data.BucketInf
|
||||||
return 0, err
|
return 0, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
log := c.log.With(zap.String("request_id", api.GetRequestID(ctx)), zap.String("tree", treeID),
|
||||||
|
zap.String("method", "Add"))
|
||||||
|
|
||||||
var resp *grpcService.AddResponse
|
var resp *grpcService.AddResponse
|
||||||
if err := c.requestWithRetry(func(client treeClient) (inErr error) {
|
if err := c.requestWithRetry(log, func(client treeClient) (inErr error) {
|
||||||
resp, inErr = client.service.Add(ctx, request)
|
resp, inErr = client.service.Add(ctx, request)
|
||||||
return handleError("failed to add node", inErr)
|
return handleError("failed to add node", inErr)
|
||||||
}); err != nil {
|
}); err != nil {
|
||||||
|
@ -254,8 +263,11 @@ func (c *ServiceClientGRPC) AddNodeByPath(ctx context.Context, bktInfo *data.Buc
|
||||||
return 0, err
|
return 0, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
log := c.log.With(zap.String("request_id", api.GetRequestID(ctx)), zap.String("tree", treeID),
|
||||||
|
zap.String("method", "AddByPath"))
|
||||||
|
|
||||||
var resp *grpcService.AddByPathResponse
|
var resp *grpcService.AddByPathResponse
|
||||||
if err := c.requestWithRetry(func(client treeClient) (inErr error) {
|
if err := c.requestWithRetry(log, func(client treeClient) (inErr error) {
|
||||||
resp, inErr = client.service.AddByPath(ctx, request)
|
resp, inErr = client.service.AddByPath(ctx, request)
|
||||||
return handleError("failed to add node by path", inErr)
|
return handleError("failed to add node by path", inErr)
|
||||||
}); err != nil {
|
}); err != nil {
|
||||||
|
@ -294,7 +306,10 @@ func (c *ServiceClientGRPC) MoveNode(ctx context.Context, bktInfo *data.BucketIn
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
return c.requestWithRetry(func(client treeClient) error {
|
log := c.log.With(zap.String("request_id", api.GetRequestID(ctx)), zap.String("tree", treeID),
|
||||||
|
zap.String("method", "Move"))
|
||||||
|
|
||||||
|
return c.requestWithRetry(log, func(client treeClient) error {
|
||||||
if _, err := client.service.Move(ctx, request); err != nil {
|
if _, err := client.service.Move(ctx, request); err != nil {
|
||||||
return handleError("failed to move node", err)
|
return handleError("failed to move node", err)
|
||||||
}
|
}
|
||||||
|
@ -320,7 +335,10 @@ func (c *ServiceClientGRPC) RemoveNode(ctx context.Context, bktInfo *data.Bucket
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
return c.requestWithRetry(func(client treeClient) error {
|
log := c.log.With(zap.String("request_id", api.GetRequestID(ctx)), zap.String("tree", treeID),
|
||||||
|
zap.String("method", "Remove"))
|
||||||
|
|
||||||
|
return c.requestWithRetry(log, func(client treeClient) error {
|
||||||
if _, err := client.service.Remove(ctx, request); err != nil {
|
if _, err := client.service.Remove(ctx, request); err != nil {
|
||||||
return handleError("failed to remove node", err)
|
return handleError("failed to remove node", err)
|
||||||
}
|
}
|
||||||
|
@ -328,7 +346,7 @@ func (c *ServiceClientGRPC) RemoveNode(ctx context.Context, bktInfo *data.Bucket
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *ServiceClientGRPC) requestWithRetry(fn func(client treeClient) error) (err error) {
|
func (c *ServiceClientGRPC) requestWithRetry(log *zap.Logger, fn func(client treeClient) error) (err error) {
|
||||||
start := int(atomic.LoadInt32(&c.startIndex))
|
start := int(atomic.LoadInt32(&c.startIndex))
|
||||||
for i := start; i < start+len(c.clients); i++ {
|
for i := start; i < start+len(c.clients); i++ {
|
||||||
index := i % len(c.clients)
|
index := i % len(c.clients)
|
||||||
|
@ -337,7 +355,7 @@ func (c *ServiceClientGRPC) requestWithRetry(fn func(client treeClient) error) (
|
||||||
atomic.StoreInt32(&c.startIndex, int32(index))
|
atomic.StoreInt32(&c.startIndex, int32(index))
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
c.log.Debug("tree request error", zap.String("address", c.clients[index].address), zap.Error(err))
|
log.Debug("tree request error", zap.String("address", c.clients[index].address), zap.Error(err))
|
||||||
}
|
}
|
||||||
|
|
||||||
return err
|
return err
|
||||||
|
|
Loading…
Reference in a new issue