GetClusterVersion returns major and minor versions of connected cluster
(cluster *gocb.Cluster)
| 94 | |
| 95 | // GetClusterVersion returns major and minor versions of connected cluster |
| 96 | func GetClusterVersion(cluster *gocb.Cluster) (int, int, error) { |
| 97 | // Query node meta to find cluster compat version |
| 98 | nodesMetadata, err := cluster.Internal().GetNodesMetadata(&gocb.GetNodesMetadataOptions{}) |
| 99 | if err != nil || len(nodesMetadata) == 0 { |
| 100 | return 0, 0, fmt.Errorf("unable to get server cluster compatibility for %d nodes: %w", len(nodesMetadata), err) |
| 101 | } |
| 102 | // Safe to get first node as there will always be at least one node in the list and cluster compat is uniform across all nodes. |
| 103 | clusterCompatMajor, clusterCompatMinor := decodeClusterVersion(nodesMetadata[0].ClusterCompatibility) |
| 104 | return clusterCompatMajor, clusterCompatMinor, nil |
| 105 | } |
| 106 | |
| 107 | // GetGocbV2BucketFromCluster returns a gocb.Bucket from an existing gocb.Cluster |
| 108 | func GetGocbV2BucketFromCluster(ctx context.Context, cluster *gocb.Cluster, spec BucketSpec, connstr string, waitUntilReady time.Duration, failFast bool) (*GocbV2Bucket, error) { |
no test coverage detected