Skip to content
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

ft: enable aws backend object copy w/ versioning [S3C-1053] #957

Merged
merged 1 commit into from
Oct 26, 2017

Conversation

electrachong
Copy link
Contributor

@electrachong electrachong commented Oct 23, 2017

No description provided.

@ironman-machine
Copy link
Contributor

PR has been updated. Reviewers, please be cautious.

logger.newRequestLoggerFromSerializedUids(
log.getSerializedUids()));
const newDataStoreName =
Array.isArray(destDataGetInfoArr) &&
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

don't we have a cleaner way to access the destination data store name?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

it looks like we make sure destDataGetInfoArray is an array (0cc2541#diff-5ce9bf7b97556522975c2fae1a6944efL283) so I guess we don't need all the checks.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

i meant, don't we have separate metadata of the new data store so we don't have to dig into the location array?

Copy link
Contributor Author

@electrachong electrachong Oct 24, 2017

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

we store the metadata just before this batch delete step, but we pass the same destDataGetInfoArras the object location to store and services.metadataStoreObject doesn't return the object MD, so we'd have to make a separate call to get the new object MD to get the location directly from the metadata (unless we want to refactor)
https://github.com/scality/S3/pull/957/files#diff-5ce9bf7b97556522975c2fae1a6944efL400

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I do see there is a separate dataStoreName property for object MD but I don't think we set it for the new metadata in objectCopy...

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

we should be. not even in @nicolas2bert's new pr?

Copy link
Contributor Author

@electrachong electrachong Oct 24, 2017

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think Nicolas introduces a change in his PR where he gets the controlling dest location constraint which we might be able to use to set the dataStoreName prop appropriately. So far we're only copying an object to a destination location based on the request/source objMd location header (depending on whether we use REPLACE or COPY), I think.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

by so far you mean before Nicolas's pr? The three of us should discuss tomorrow.

@@ -327,6 +329,12 @@ class AwsClient {
`AWS: ${err.message}`)
);
}
if (!completeMpuRes.VersionId) {

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is from the previous commit?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah, if we merge the other pr first and rebase I think it should disappear from the diff
I left the change there because I need some of the other changes to this file for this PR (the missingVerIdInternalError const)

@electrachong
Copy link
Contributor Author

@ironman-machine try

@ironman-machine
Copy link
Contributor

Hello @electrachong

"try": Success: Try build successfully launched on 'http://ci.ironmann.io/gh/scality/Integration/16110' with the following env. args:

{
    "SCALITY_INTEGRATION_BRANCH": "ultron/master",
    "REPO_NAME": "S3",
    "DEFAULT_BRANCH": "master",
    "SCALITY_S3_BRANCH": "ft/aws-backend-versioning-copy"
}

@electrachong
Copy link
Contributor Author

end to end passed

Copy link
Contributor

@dora-korpar dora-korpar left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm :)

// still send along serverSideEncryption info so algo
// and masterKeyId stored properly in metadata
if (sourceIsDestination && storeMetadataParams.locationMatch) {
if (sourceIsDestination && storeMetadataParams.locationMatch
&& !isVersionedObj) {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@nicolas note this.

@nicolas2bert nicolas2bert merged commit f32053a into master Oct 26, 2017
@electrachong electrachong changed the title ft: enable aws backend object copy w/ versioning ft: enable aws backend object copy w/ versioning [S3C-1053] Nov 4, 2017
@rahulreddy rahulreddy deleted the ft/aws-backend-versioning-copy branch August 1, 2019 01:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants