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

feat: implement replication validation #22581

Merged
merged 4 commits into from
Oct 5, 2021

Conversation

danxmoran
Copy link
Contributor

Closes #22295

To validate a replication, we send an empty payload to the /api/v2/write of the remote server.

}

func TestValidateReplication_Invalid(t *testing.T) {
l := launcher.RunAndSetupNewLauncherOrFail(ctx, t, func(o *launcher.InfluxdOpts) {
Copy link
Contributor

Choose a reason for hiding this comment

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

Would these two tests run faster if they were the same test (since we don't have to setup / tear down the server)

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Probably, though it's not as slow as it could be since they're using the inmem metadata store instead of a real boltDB.

noopReq := client.PostWrite(ctx).
Org(config.RemoteOrgID.String()).
Bucket(config.RemoteBucketID.String()).
Body([]byte{})
Copy link
Contributor

Choose a reason for hiding this comment

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

Have we checked this also doesn't error in cloud? Should we maybe add a cloud unit test that this works? It is and odd kind of request to attempt to write with no data, I can see us rejecting or otherwise flagging that it is weird.

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've checked (it used to error, but I changed the behavior as part of an EAR last year). Agreed it would be good to have a regression test to make sure things don't revert.

Ideally we could instead have/use some sort of "can I?" API where you submit a resource/action and get back a yes/no.

Copy link
Contributor

Choose a reason for hiding this comment

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

I think I prefer this kind of check (where we actually do the thing) vs a 'can I' API which might drift from the actual checks on the 'real' API. I just want to make sure it works.

@lesam
Copy link
Contributor

lesam commented Oct 5, 2021

Note your CI is failing

@danxmoran
Copy link
Contributor Author

Note your CI is failing

Unrelated to this PR (but potentially a bug / missing feature in OSS). A new test was added to the e2e suite in influxdata/ui#2748

Copy link
Contributor

@lesam lesam left a comment

Choose a reason for hiding this comment

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

lgtm

@danxmoran danxmoran merged commit 7c19225 into master Oct 5, 2021
@danxmoran danxmoran deleted the dm-replication-validation-22295 branch October 5, 2021 18:34
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.

Implement replication validation
2 participants