ping.go 765 B

1234567891011121314151617181920212223242526272829303132
  1. package client
  2. import (
  3. "fmt"
  4. "github.com/docker/docker/api/types"
  5. "golang.org/x/net/context"
  6. )
  7. // Ping pings the server and returns the value of the "Docker-Experimental", "OS-Type" & "API-Version" headers
  8. func (cli *Client) Ping(ctx context.Context) (types.Ping, error) {
  9. var ping types.Ping
  10. req, err := cli.buildRequest("GET", fmt.Sprintf("%s/_ping", cli.basePath), nil, nil)
  11. if err != nil {
  12. return ping, err
  13. }
  14. serverResp, err := cli.doRequest(ctx, req)
  15. if err != nil {
  16. return ping, err
  17. }
  18. defer ensureReaderClosed(serverResp)
  19. ping.APIVersion = serverResp.header.Get("API-Version")
  20. if serverResp.header.Get("Docker-Experimental") == "true" {
  21. ping.Experimental = true
  22. }
  23. ping.OSType = serverResp.header.Get("OSType")
  24. return ping, nil
  25. }