func (s *DockerSuite) TestAPIErrorNotFoundPlainText(c *check.C) { httpResp, body, err := request.Get(daemonHost(), "/v1.23/notfound", request.JSON) c.Assert(err, checker.IsNil) c.Assert(httpResp.StatusCode, checker.Equals, http.StatusNotFound) c.Assert(httpResp.Header.Get("Content-Type"), checker.Contains, "text/plain") b, err := testutil.ReadBody(body) c.Assert(err, checker.IsNil) c.Assert(strings.TrimSpace(string(b)), checker.Equals, "page not found") }
func (s *DockerSuite) TestAPIErrorNotFoundJSON(c *check.C) { // 404 is a different code path to normal errors, so test separately httpResp, body, err := request.Get(daemonHost(), "/notfound", request.JSON) c.Assert(err, checker.IsNil) c.Assert(httpResp.StatusCode, checker.Equals, http.StatusNotFound) c.Assert(httpResp.Header.Get("Content-Type"), checker.Equals, "application/json") b, err := testutil.ReadBody(body) c.Assert(err, checker.IsNil) c.Assert(getErrorMessage(c, b), checker.Equals, "page not found") }
func getNetworkResource(c *check.C, id string) *types.NetworkResource { _, obj, err := request.Get(daemonHost(), "/networks/"+id) c.Assert(err, checker.IsNil) nr := types.NetworkResource{} err = json.NewDecoder(obj).Decode(&nr) c.Assert(err, checker.IsNil) return &nr }
func isNetworkAvailable(c *check.C, name string) bool { resp, body, err := request.Get(daemonHost(), "/networks") c.Assert(resp.StatusCode, checker.Equals, http.StatusOK) c.Assert(err, checker.IsNil) nJSON := []types.NetworkResource{} err = json.NewDecoder(body).Decode(&nJSON) c.Assert(err, checker.IsNil) for _, n := range nJSON { if n.Name == name { return true } } return false }
func getNetworkIDByName(c *check.C, name string) string { var ( v = url.Values{} filterArgs = filters.NewArgs() ) filterArgs.Add("name", name) filterJSON, err := filters.ToParam(filterArgs) c.Assert(err, checker.IsNil) v.Set("filters", filterJSON) resp, body, err := request.Get(daemonHost(), "/networks?"+v.Encode()) c.Assert(resp.StatusCode, checker.Equals, http.StatusOK) c.Assert(err, checker.IsNil) nJSON := []types.NetworkResource{} err = json.NewDecoder(body).Decode(&nJSON) c.Assert(err, checker.IsNil) c.Assert(len(nJSON), checker.Equals, 1) return nJSON[0].ID }
func (s *DockerSuite) TestAPIClientVersionOldNotSupported(c *check.C) { if daemonPlatform != runtime.GOOS { c.Skip("Daemon platform doesn't match test platform") } if api.MinVersion == api.DefaultVersion { c.Skip("API MinVersion==DefaultVersion") } v := strings.Split(api.MinVersion, ".") vMinInt, err := strconv.Atoi(v[1]) c.Assert(err, checker.IsNil) vMinInt-- v[1] = strconv.Itoa(vMinInt) version := strings.Join(v, ".") resp, body, err := request.Get(daemonHost(), "/v"+version+"/version") c.Assert(err, checker.IsNil) defer body.Close() c.Assert(resp.StatusCode, checker.Equals, http.StatusBadRequest) expected := fmt.Sprintf("client version %s is too old. Minimum supported API version is %s, please upgrade your client to a newer version", version, api.MinVersion) content, err := ioutil.ReadAll(body) c.Assert(err, checker.IsNil) c.Assert(strings.TrimSpace(string(content)), checker.Contains, expected) }