Introduce Patch
rpc for object service #56
No reviewers
TrueCloudLab/storage-core-developers
TrueCloudLab/storage-services-developers
TrueCloudLab/storage-services-committers
Labels
No labels
P0
P1
P2
P3
good first issue
triage
Infrastructure
blocked
bug
config
discussion
documentation
duplicate
enhancement
go
help wanted
internal
invalid
kludge
observability
perfomance
question
refactoring
wontfix
No milestone
No project
No assignees
4 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: TrueCloudLab/frostfs-api#56
Loading…
Reference in a new issue
No description provided.
Delete branch "aarifullin/frostfs-api:feat/patch/1"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Patch
and corresponding types;Patch
method 416212629b416212629b
toc363a7e82d
@ -817,3 +817,3 @@
neo.fs.v2.session.ResponseVerificationHeader verify_header = 3;
}
}
This is unrelated change occured because there was no linefeed at the end of this file
Introduceto WIP: IntroducePatch
rpc for object servicePatch
rpc for object servicec363a7e82d
tof10d3162d6
f10d3162d6
to7739ed5e44
7739ed5e44
to0d3acb33d0
0d3acb33d0
toc0f14a62ed
c0f14a62ed
to6c1fbf753d
WIP: Introduceto IntroducePatch
rpc for object servicePatch
rpc for object serviceMy bad. The result of unsuccessful stash. Fixed
Removed this commit
Fixed. But I slightly changed something
address
insteadobjectID
withinPatchRequest
as we also need container IDreplace_attributes
flag as overriding/merging attributes problem still remains and we could discuss thisOwnerID
field for the request body as it the object's ID can be changed@ -286,0 +317,4 @@
// - **LOCKED** (2050, SECTION_OBJECT): \
// placement of an object of type TOMBSTONE that includes at least one
// locked object is prohibited;
// - **LOCK_NON_REGULAR_OBJECT** (2051, SECTION_OBJECT): \
These statuses are explicit for PUT because we can lock and delete through it.
For patch it is an explicit non-goal.
I suggest failing with some error if we try to patch Tombstone or Lock objects.
Your point is right. Fixed
@ -820,0 +885,4 @@
//
// Default `false` value for this flag means the attributes will be just merged. If the incoming `new_attributes`
// list contains already existing key, then it just replaces it while merging the lists.
bool replace_attributes = 3;
I suggest removing this from the initial implementation and replace by default.
@realloc @alexvanin do we have any specific reason to prefer attributes append over replacing?
If we provide
nil
here, we still will retain initial attributes.Maybe
update
case is a sensible default, it has a nicer behaviour fornil
(append nil = do nothing, compared to special logic withreplace
) and it can override a single attirbute (because attributes must be unique, so we have no choice).I am ok with this implementation as long as we not forget to update RFC
I think keeping empty value for the attribute is OK until the client may misinterpret its value for empty but not for "unset"/"reset". If this is not a big problem, we can remove this flag away.
We need to update anyway as the object can be addressed with
neo.fs.v2.refs.Address address = 1
onlyNo, as long as we can provide
nil
and do not change headers at all.Can use
optional
field label among withrepeated
. Is it going to help?In proto3 all fields are optional
It's not :(
6c1fbf753d
toe6e3c20402