-
Notifications
You must be signed in to change notification settings - Fork 20
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ARSN-392 [7.70] Put metadata to a standalone null master breaks CloudServer CRUD #2216
Conversation
Hello nicolas2bert,My role is to assist you with the merge of this Status report is not available. |
lib/versioning/Version.ts
Outdated
* _jsonAppend('{"existingKey":"existingValue"}', 'newKey', 'newValue'); | ||
* // returns '{"existingKey":"existingValue","newKey":"newValue"}' | ||
*/ | ||
static _jsonAppend(stringifiedObject: string, key: string, value: string): string { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If you have already reviewed #2215, there's no need to do so again as it is a duplicate.
lib/versioning/Version.ts
Outdated
* @param {string} nullVersionId - The new value for the `nullVersionId` property to be updated or appended. | ||
* @returns {string} The updated JSON-formatted string with the new `nullVersionId` value. | ||
*/ | ||
static updateOrAppendNullVersionId(value: string, nullVersionId: string): string { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If you have already reviewed #2215, there's no need to do so again as it is a duplicate.
@@ -0,0 +1,55 @@ | |||
const { Version } = require('../../../lib/versioning/Version'); | |||
|
|||
describe('Version', () => { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If you have already reviewed #2215, there's no need to do so again as it is a duplicate.
5178536
to
dc22643
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM (thanks for updating this version-specific PUT function by the way, it was not obvious at all!)
dc22643
to
58d0622
Compare
This logic is used by CRR replication feature to BackbeatClient.putMetadata on top of a null version
- For backward compatibility (if isNull is undefined), add the nullVersionId field to the master update. The nullVersionId is needed for listing, retrieving, and deleting null versions. - For the new null key implementation (if isNull is defined): add the isNull2 field and set it to true to specify that the new version is null AND has been put with a Cloudserver handling null keys (i.e., supporting S3C-7352). - Manage scenarios in which a version is marked with the isNull attribute set to true, but without a version ID. This happens after BackbeatClient.putMetadata() is applied to a standalone null master.
58d0622
to
6820444
Compare
ping |
Request integration branchesWaiting for integration branch creation to be requested by the user. To request integration branches, please comment on this pull request with the following command:
Alternatively, the |
/create_integration_branches |
Integration data createdI have created the integration data for the additional destination branches.
The following branches will NOT be impacted:
You can set option
The following options are set: create_integration_branches |
Waiting for approvalThe following approvals are needed before I can proceed with the merge:
The following options are set: create_integration_branches |
@bert-e approve |
In the queueThe changeset has received all authorizations and has been added to the The changeset will be merged in:
The following branches will NOT be impacted:
There is no action required on your side. You will be notified here once IMPORTANT Please do not attempt to modify this pull request.
If you need this pull request to be removed from the queue, please contact a The following options are set: approve, create_integration_branches |
I have successfully merged the changeset of this pull request
The following branches have NOT changed:
Please check the status of the associated issue ARSN-392. Goodbye nicolas2bert. |
NOTE: This change is only impacting the "file" metadata backend logic. Similar fixes will be implemented in scality/Metadata using Arsenal.updateOrAppendNullVersionId() method.
Description:
1653fd2: "File" metadata backend should be "mocking" the V0 scality/Metadata backend. To fix it, we imported the V0 processVersionSpecificPut from scality/Metadata.
58d0622:
isNull
is undefined), add thenullVersionId
field to the master update. ThenullVersionId
is needed for listing, retrieving, and deleting null versions.isNull
is defined): add theisNull2
field and set it to true to specify that the new version is null AND has been put with a Cloudserver handling null keys (i.e., supporting S3C-7352).isNull
attribute set to true, but without a version ID. This happens afterBackbeatClient.putMetadata()
is applied to a standalone null master.