client/ping.go
7781a1bf
 package client
 
e98e4a71
 import (
823e88d4
 	"path"
 
e98e4a71
 	"github.com/docker/docker/api/types"
 	"golang.org/x/net/context"
 )
 
7199522e
 // Ping pings the server and returns the value of the "Docker-Experimental", "OS-Type" & "API-Version" headers
e98e4a71
 func (cli *Client) Ping(ctx context.Context) (types.Ping, error) {
 	var ping types.Ping
823e88d4
 	req, err := cli.buildRequest("GET", path.Join(cli.basePath, "/_ping"), nil, nil)
e98e4a71
 	if err != nil {
 		return ping, err
 	}
 	serverResp, err := cli.doRequest(ctx, req)
7781a1bf
 	if err != nil {
e98e4a71
 		return ping, err
7781a1bf
 	}
 	defer ensureReaderClosed(serverResp)
 
27ef09a4
 	if serverResp.header != nil {
 		ping.APIVersion = serverResp.header.Get("API-Version")
e98e4a71
 
27ef09a4
 		if serverResp.header.Get("Docker-Experimental") == "true" {
 			ping.Experimental = true
 		}
 		ping.OSType = serverResp.header.Get("OSType")
7781a1bf
 	}
81bb9978
 	return ping, cli.checkResponseErr(serverResp)
7781a1bf
 }