ping.go 705 B

123456789101112131415161718192021222324252627282930
  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 return the value of the "Docker-Experimental" & "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. return ping, nil
  24. }