MCPcopy Create free account
hub / github.com/couchbase/cbft / getEffectiveClusterVersion

Function getEffectiveClusterVersion

version.go:182–222  ·  view source on GitHub ↗
(server string)

Source from the content-addressed store, hash-verified

180}
181
182func getEffectiveClusterVersion(server string) (uint64, error) {
183 if len(server) < 2 {
184 return 1, fmt.Errorf("version: no server URL configured")
185 }
186
187 u, err := cbgt.CBAuthURL(server)
188 if err != nil {
189 return 0, fmt.Errorf("version: auth for ns_server,"+
190 " server: %s, authType: %s, err: %v",
191 server, "cbauth", err)
192 }
193
194 req, err := http.NewRequest("GET", u, nil)
195 if err != nil {
196 return 0, err
197 }
198
199 req.Header.Add("Content-Type", "application/json")
200
201 resp, err := cbgt.HttpClient().Do(req)
202 if err != nil {
203 return 0, err
204 }
205 defer resp.Body.Close()
206
207 respBuf, err := ioutil.ReadAll(resp.Body)
208 if err != nil {
209 return 0, fmt.Errorf("version: error reading resp.Body,"+
210 " nsServerURL: %s, resp: %#v, err: %v", server, resp, err)
211 }
212
213 rv := &cbgt.NsServerResponse{}
214 err = json.Unmarshal(respBuf, rv)
215 if err != nil {
216 return 0, fmt.Errorf("version: error parsing respBuf: %s,"+
217 " server: %s, err: %v", respBuf, server, err)
218
219 }
220
221 return uint64(rv.Nodes[0].ClusterCompatibility), nil
222}

Callers 1

runMethod · 0.85

Calls 3

AddMethod · 0.80
UnmarshalMethod · 0.80
CloseMethod · 0.45

Tested by

no test coverage detected