server_version.go 640 B

1234567891011121314151617181920212223242526272829
  1. package storageos
  2. import (
  3. "context"
  4. "encoding/json"
  5. "net/http"
  6. "github.com/storageos/go-api/types"
  7. )
  8. // ServerVersion returns the server's version and runtime info.
  9. func (c *Client) ServerVersion(ctx context.Context) (*types.VersionInfo, error) {
  10. // Send as unversioned
  11. resp, err := c.do("GET", "version", doOptions{context: ctx, unversioned: true})
  12. if err != nil {
  13. return nil, err
  14. }
  15. if resp.StatusCode != http.StatusOK {
  16. return nil, newError(resp)
  17. }
  18. defer resp.Body.Close()
  19. var version types.VersionInfo
  20. if err := json.NewDecoder(resp.Body).Decode(&version); err != nil {
  21. return nil, err
  22. }
  23. return &version, nil
  24. }