123456789101112131415161718192021222324252627282930313233343536 |
- package storageos
- import (
- "encoding/json"
- "net/http"
- "path"
- "github.com/storageos/go-api/types"
- )
- var (
- // NetworkDiagnosticsAPIPrefix is a partial path to the HTTP endpoint for
- // the node connectivity diagnostics report.
- NetworkDiagnosticsAPIPrefix = "diagnostics/network"
- )
- // NetworkDiagnostics returns a collection of network connectivity reports. If
- // a reference to a node is given, it will only check connectivity from that
- // node. Otherwise, connectivity between all cluster nodes will be returned.
- func (c *Client) NetworkDiagnostics(ref string) (types.ConnectivityResults, error) {
- resp, err := c.do("GET", path.Join(NetworkDiagnosticsAPIPrefix, ref), doOptions{})
- if err != nil {
- if e, ok := err.(*Error); ok && e.Status == http.StatusNotFound {
- return nil, ErrNoSuchNode
- }
- return nil, err
- }
- defer resp.Body.Close()
- var results types.ConnectivityResults
- if err := json.NewDecoder(resp.Body).Decode(&results); err != nil {
- return nil, err
- }
- return results, nil
- }
|