forked from TrueCloudLab/frostfs-s3-gw
[#682] Return added node id in addNodeByPath
Signed-off-by: Alex Vanin <a.vanin@yadro.com>
This commit is contained in:
parent
5c7a509cc9
commit
a28d6b64b9
1 changed files with 21 additions and 6 deletions
|
@ -840,8 +840,9 @@ func (c *TreeClient) RemoveVersion(ctx context.Context, cnrID cid.ID, id uint64)
|
||||||
func (c *TreeClient) CreateMultipartUpload(ctx context.Context, cnrID cid.ID, info *data.MultipartInfo) error {
|
func (c *TreeClient) CreateMultipartUpload(ctx context.Context, cnrID cid.ID, info *data.MultipartInfo) error {
|
||||||
path := pathFromName(info.Key)
|
path := pathFromName(info.Key)
|
||||||
meta := metaFromMultipart(info, path[len(path)-1])
|
meta := metaFromMultipart(info, path[len(path)-1])
|
||||||
|
_, err := c.addNodeByPath(ctx, cnrID, systemTree, path[:len(path)-1], meta)
|
||||||
|
|
||||||
return c.addNodeByPath(ctx, cnrID, systemTree, path[:len(path)-1], meta)
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *TreeClient) GetMultipartUploadsByPrefix(ctx context.Context, cnrID cid.ID, prefix string) ([]*data.MultipartInfo, error) {
|
func (c *TreeClient) GetMultipartUploadsByPrefix(ctx context.Context, cnrID cid.ID, prefix string) ([]*data.MultipartInfo, error) {
|
||||||
|
@ -1094,7 +1095,9 @@ func (c *TreeClient) addVersion(ctx context.Context, cnrID cid.ID, treeID string
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return c.addNodeByPath(ctx, cnrID, treeID, path[:len(path)-1], meta)
|
_, err := c.addNodeByPath(ctx, cnrID, treeID, path[:len(path)-1], meta)
|
||||||
|
|
||||||
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *TreeClient) clearOutdatedVersionInfo(ctx context.Context, cnrID cid.ID, treeID string, nodeID uint64) error {
|
func (c *TreeClient) clearOutdatedVersionInfo(ctx context.Context, cnrID cid.ID, treeID string, nodeID uint64) error {
|
||||||
|
@ -1319,7 +1322,7 @@ func (c *TreeClient) addNode(ctx context.Context, cnrID cid.ID, treeID string, p
|
||||||
return resp.GetBody().GetNodeId(), nil
|
return resp.GetBody().GetNodeId(), nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *TreeClient) addNodeByPath(ctx context.Context, cnrID cid.ID, treeID string, path []string, meta map[string]string) error {
|
func (c *TreeClient) addNodeByPath(ctx context.Context, cnrID cid.ID, treeID string, path []string, meta map[string]string) (uint64, error) {
|
||||||
request := &tree.AddByPathRequest{
|
request := &tree.AddByPathRequest{
|
||||||
Body: &tree.AddByPathRequest_Body{
|
Body: &tree.AddByPathRequest_Body{
|
||||||
ContainerId: cnrID[:],
|
ContainerId: cnrID[:],
|
||||||
|
@ -1337,11 +1340,23 @@ func (c *TreeClient) addNodeByPath(ctx context.Context, cnrID cid.ID, treeID str
|
||||||
Sign: sign,
|
Sign: sign,
|
||||||
}
|
}
|
||||||
}); err != nil {
|
}); err != nil {
|
||||||
return err
|
return 0, err
|
||||||
}
|
}
|
||||||
|
|
||||||
_, err := c.service.AddByPath(ctx, request)
|
resp, err := c.service.AddByPath(ctx, request)
|
||||||
return err
|
if err != nil {
|
||||||
|
return 0, err
|
||||||
|
}
|
||||||
|
|
||||||
|
body := resp.GetBody()
|
||||||
|
if body == nil {
|
||||||
|
return 0, errors.New("nil body in tree service response")
|
||||||
|
} else if len(body.Nodes) == 0 {
|
||||||
|
return 0, errors.New("empty list of added nodes in tree service response")
|
||||||
|
}
|
||||||
|
|
||||||
|
// The first node is the leaf that we add, according to tree service docs.
|
||||||
|
return body.Nodes[0], nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *TreeClient) moveNode(ctx context.Context, cnrID cid.ID, treeID string, nodeID, parentID uint64, meta map[string]string) error {
|
func (c *TreeClient) moveNode(ctx context.Context, cnrID cid.ID, treeID string, nodeID, parentID uint64, meta map[string]string) error {
|
||||||
|
|
Loading…
Reference in a new issue