From 1499a0a83e60c1780500b2d1afa6dd236b53f101 Mon Sep 17 00:00:00 2001 From: Albin Gilles Date: Mon, 29 Feb 2016 12:20:49 +0100 Subject: [PATCH] Add a Ping() function on to call the _ping endpoint --- dockerclient.go | 10 ++++++++++ dockerclient_test.go | 9 +++++++++ 2 files changed, 19 insertions(+) diff --git a/dockerclient.go b/dockerclient.go index 51a00b2..10be104 100644 --- a/dockerclient.go +++ b/dockerclient.go @@ -156,6 +156,16 @@ func (client *DockerClient) Info() (*Info, error) { return ret, nil } +func (client *DockerClient) Ping() (string, error) { + uri := fmt.Sprintf("/%s/_ping", APIVersion) + data, err := client.doRequest("GET", uri, nil, nil) + if err != nil { + return "", err + } + + return string(data), nil +} + func (client *DockerClient) ListContainers(all bool, size bool, filters string) ([]Container, error) { argAll := 0 if all == true { diff --git a/dockerclient_test.go b/dockerclient_test.go index 7c7b3f5..179cdb8 100644 --- a/dockerclient_test.go +++ b/dockerclient_test.go @@ -76,6 +76,15 @@ func TestInfo(t *testing.T) { assertEqual(t, info.Containers, int64(2), "") } +func TestPing(t *testing.T) { + client := testDockerClient(t) + pong, err := client.Ping() + if err != nil { + t.Fatal("Cannot ping server") + } + assertEqual(t, pong, "OK", "") +} + func TestKillContainer(t *testing.T) { client := testDockerClient(t) if err := client.KillContainer("23132acf2ac", "5"); err != nil {