[#43] Expanding the parameters for creating a container
All checks were successful
DCO / DCO (pull_request) Successful in 29s
Verify code phase / Verify code (pull_request) Successful in 1m27s

Signed-off-by: Ori Bruk <o.bruk@yadro.com>
This commit is contained in:
Ori Bruk 2025-02-20 14:32:20 +03:00
parent 3861eb0dc2
commit fe7d2968b8
34 changed files with 855 additions and 75 deletions

View file

@ -186,11 +186,15 @@ public class ContainerClientImpl extends ContextAccessor implements ContainerCli
private Service.PutRequest createPutRequest(PrmContainerCreate args, CallContext ctx) {
syncContainerWithNetwork(args.getContainer(), ctx);
var container = ContainerMapper.toGrpcMessage(args.getContainer()).toBuilder()
.setOwnerId(OwnerIdMapper.toGrpcMessage(getContext().getOwnerId()))
.setVersion(VersionMapper.toGrpcMessage(getContext().getVersion()))
.build();
var builder = ContainerMapper.toGrpcMessage(args.getContainer());
if (!builder.hasOwnerId()) {
builder.setOwnerId(OwnerIdMapper.toGrpcMessage(getContext().getOwnerId()));
}
if (!builder.hasVersion()) {
builder.setVersion(VersionMapper.toGrpcMessage(getContext().getVersion()));
}
var container = builder.build();
var body = Service.PutRequest.Body.newBuilder()
.setContainer(container)
.setSignature(RequestSigner.signRFC6979(getContext().getKey(), container))

View file

@ -35,7 +35,6 @@ import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
import static info.frostfs.sdk.Helper.getSha256;
import static info.frostfs.sdk.constants.ErrorConst.PROTO_MESSAGE_IS_EMPTY_TEMPLATE;
import static info.frostfs.sdk.tools.RequestSigner.sign;
import static info.frostfs.sdk.utils.DeadLineUtil.deadLineAfter;
@ -335,6 +334,7 @@ public class ObjectClientImpl extends ContextAccessor implements ObjectClient {
.setBody(body)
.clearVerifyHeader();
RequestConstructor.addMetaHeader(chunkRequest, args.getXHeaders());
sign(chunkRequest, getContext().getKey());
stream.write(chunkRequest.build());
@ -359,9 +359,7 @@ public class ObjectClientImpl extends ContextAccessor implements ObjectClient {
grpcHeader = objectToolsImpl.updateSplitValues(grpcHeader, header.getSplit());
}
var oid = Types.ObjectID.newBuilder().setValue(getSha256(grpcHeader)).build();
var initRequest = createInitPutRequest(oid, grpcHeader, args, ctx);
var initRequest = createInitPutRequest(grpcHeader, args, ctx);
return putObjectInit(initRequest, ctx);
}
@ -527,13 +525,11 @@ public class ObjectClientImpl extends ContextAccessor implements ObjectClient {
return request.build();
}
private Service.PutRequest createInitPutRequest(Types.ObjectID oid,
frostfs.object.Types.Header header,
private Service.PutRequest createInitPutRequest(frostfs.object.Types.Header header,
PrmObjectPutBase args,
CallContext ctx) {
var address = Types.Address.newBuilder()
.setContainerId(header.getContainerId())
.setObjectId(oid)
.build();
var init = Service.PutRequest.Body.Init.newBuilder()
.setHeader(header)
@ -563,7 +559,6 @@ public class ObjectClientImpl extends ContextAccessor implements ObjectClient {
CallContext ctx) {
var address = Types.Address.newBuilder()
.setContainerId(grpcObject.getHeader().getContainerId())
.setObjectId(grpcObject.getObjectId())
.build();
var body = Service.PutSingleRequest.Body.newBuilder()
.setObject(grpcObject)

View file

@ -5,6 +5,7 @@ import frostfs.object.Service;
import info.frostfs.sdk.dto.object.ObjectId;
import info.frostfs.sdk.jdo.ClientEnvironment;
import info.frostfs.sdk.jdo.parameters.object.PrmObjectPutBase;
import info.frostfs.sdk.tools.RequestConstructor;
import info.frostfs.sdk.tools.Verifier;
import lombok.AllArgsConstructor;
import lombok.Getter;
@ -27,6 +28,7 @@ public class ObjectWriter {
.setBody(body)
.clearVerifyHeader();
RequestConstructor.addMetaHeader(chunkRequest, args.getXHeaders());
sign(chunkRequest, environment.getKey());
streamer.write(chunkRequest.build());

View file

@ -86,7 +86,6 @@ public class RequestConstructor {
.build();
var body = protoToken.getBody().toBuilder()
.setObject(ctx)
.setSessionKey(ByteString.copyFrom(key.getPublicKeyByte()))
.build();
return protoToken.toBuilder()