setXDCRBucketSetting sets the bucket setting "enableCrossClusterVersioning" for mobile XDCR
(ctx context.Context, bucket Bucket)
| 553 | |
| 554 | // setXDCRBucketSetting sets the bucket setting "enableCrossClusterVersioning" for mobile XDCR |
| 555 | func (tbp *TestBucketPool) setXDCRBucketSetting(ctx context.Context, bucket Bucket) { |
| 556 | |
| 557 | tbp.Logf(ctx, "Setting crossClusterVersioningEnabled=true") |
| 558 | |
| 559 | // retry for 1 minute to get this bucket setting, MB-63675 |
| 560 | store, ok := AsCouchbaseBucketStore(bucket) |
| 561 | if !ok { |
| 562 | tbp.Fatalf(ctx, "unable to get server management endpoints. Underlying bucket type was not GoCBBucket") |
| 563 | } |
| 564 | |
| 565 | posts := url.Values{} |
| 566 | posts.Add("enableCrossClusterVersioning", "true") |
| 567 | |
| 568 | url := fmt.Sprintf("/pools/default/buckets/%s", store.GetName()) |
| 569 | // retry for 1 minute to get this bucket setting, MB-63675 |
| 570 | err, _ := RetryLoop(ctx, "setXDCRBucketSetting", func() (bool, error, interface{}) { |
| 571 | output, statusCode, err := store.MgmtRequest(ctx, http.MethodPost, url, "application/x-www-form-urlencoded", strings.NewReader(posts.Encode())) |
| 572 | if err != nil { |
| 573 | tbp.Fatalf(ctx, "request to mobile XDCR bucket setting failed, status code: %d error: %s output: %s", statusCode, err, string(output)) |
| 574 | } |
| 575 | if statusCode != http.StatusOK { |
| 576 | err := fmt.Errorf("request to mobile XDCR bucket setting failed with status code, %d, output: %s", statusCode, string(output)) |
| 577 | return true, err, nil |
| 578 | } |
| 579 | return false, nil, nil |
| 580 | }, CreateMaxDoublingSleeperFunc(200, 500, 500)) |
| 581 | if err != nil { |
| 582 | tbp.Fatalf(ctx, "Couldn't set crossClusterVersioningEnabled: %v", err) |
| 583 | } |
| 584 | } |
| 585 | |
| 586 | // createCollections will create a set of test collections on the bucket, if enabled... |
| 587 | func (tbp *TestBucketPool) createCollections(ctx context.Context, bucket Bucket) { |
no test coverage detected