...
1
2
3
4
5
6
7
8
9
10
11
12
13 package couchdb
14
15 import (
16 "context"
17 "net/http"
18
19 "github.com/go-kivik/kivik/v4/couchdb/chttp"
20 "github.com/go-kivik/kivik/v4/driver"
21 )
22
23 func (c *client) ClusterStatus(ctx context.Context, options driver.Options) (string, error) {
24 opts := map[string]interface{}{}
25 options.Apply(opts)
26 var result struct {
27 State string `json:"state"`
28 }
29 query, err := optionsToParams(opts)
30 if err != nil {
31 return "", err
32 }
33 err = c.DoJSON(ctx, http.MethodGet, "/_cluster_setup", &chttp.Options{Query: query}, &result)
34 return result.State, err
35 }
36
37 func (c *client) ClusterSetup(ctx context.Context, action interface{}) error {
38 options := &chttp.Options{
39 Body: chttp.EncodeBody(action),
40 }
41 _, err := c.DoError(ctx, http.MethodPost, "/_cluster_setup", options)
42 return err
43 }
44
45 func (c *client) Membership(ctx context.Context) (*driver.ClusterMembership, error) {
46 result := new(driver.ClusterMembership)
47 err := c.DoJSON(ctx, http.MethodGet, "/_membership", nil, &result)
48 return result, err
49 }
50
View as plain text