-
Notifications
You must be signed in to change notification settings - Fork 2
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
Fix triggering replication when multiple destinations are set #331
base: development/1.15
Are you sure you want to change the base?
Conversation
Hello kerkesni,My role is to assist you with the merge of this Available options
Available commands
Status report is not available. |
00a5b99
to
09ccadb
Compare
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 |
Waiting for approvalThe following approvals are needed before I can proceed with the merge:
The following options are set: create_pull_requests |
- Issue 1: In Artesca "SITE_NAME" is never passed, so we always trigger objects that are replicated to the first storageClass in the replication rule. - Issue 2: We check the global replication status when verifying wether or not an object should be retriggered. This doesn't necessarily work all the time, especially when replicating to multiple destinations. As if one destination fails the global status becomes failed, which will make it impossible to trigger objects with a completed status for example. - Issue 3: replication info is completely overwritten when it does not contain info about a specific site. This will cause an issue when replicating to multiple destinations as the script can only be launched for one site at a time, so when having a object with non initialized replication info, we won't be able to set the replication info propely for all destinations. Issue: S3UTILS-184
09ccadb
to
4efccfb
Compare
Waiting for approvalThe following approvals are needed before I can proceed with the merge:
The following options are set: create_pull_requests |
@@ -114,16 +114,19 @@ class ReplicationStatusUpdater { | |||
* Determines if an object should be updated based on its replication metadata properties. | |||
* @private | |||
* @param {ObjectMD} objMD - The metadata of the object. | |||
* @param {string} storageClass - The storage class for replication. |
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.
location
or site
?
the storageClass
is really just where the object is "locally" stored, not where we will copy/send it...
if (!objMD.getReplicationInfo() | ||
|| !objMD.getReplicationSiteStatus(storageClass)) { | ||
let replicationInfo = objMD.getReplicationInfo(); | ||
if (!replicationInfo || !replicationInfo.status) { | ||
const { Rules, Role } = repConfig; | ||
const destination = Rules[0].Destination.Bucket; |
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.
this may not be correct, if there is more than 1 desitination....
storageClass: '', | ||
role: Role, | ||
storageType: this.storageType, | ||
storageType: '', |
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.
what are these 2 fields (storageClass
and storageType
) used for?
Issue 1: In Artesca "SITE_NAME" is never used, so we always
trigger objects that are replicated to the first storageClass in
the replication rule.
Issue 2: We check the global replication status when verifying
wether or not an object should be retriggered. This doesn't necessarily
work all the time, especially when replicating to multiple destinations.
As if one destination fails the global status becomes failed, which will
make it impossible to trigger objects with a completed status for example.
Issue 3: replication info is completely overwritten when it does not contain
info about a specific site. This will cause an issue when replicating to multiple
destinations as the script can only be launched for one site at a time, so when
having a object with non initialized replication info, we won't be able to set
the replication info properly for all destinations.
Issue: S3UTILS-184