| Index: client/internal/common/json.go
 | 
| diff --git a/client/internal/common/json.go b/client/internal/common/json.go
 | 
| index e1907febe02e97e482fb97e81496708d9b6aa5c6..25819886a472fb5cb3f2a7ccd7e4c18b2f917dc7 100644
 | 
| --- a/client/internal/common/json.go
 | 
| +++ b/client/internal/common/json.go
 | 
| @@ -5,71 +5,11 @@
 | 
|  package common
 | 
|  
 | 
|  import (
 | 
| -	"bytes"
 | 
|  	"encoding/json"
 | 
|  	"fmt"
 | 
| -	"net/http"
 | 
|  	"os"
 | 
| -	"strings"
 | 
|  )
 | 
|  
 | 
| -const jsonContentType = "application/json; charset=utf-8"
 | 
| -
 | 
| -// GetJSON does a simple HTTP GET on a JSON endpoint.
 | 
| -//
 | 
| -// Returns the status code and the error, if any.
 | 
| -func GetJSON(c *http.Client, url string, out interface{}) (int, error) {
 | 
| -	if c == nil {
 | 
| -		c = http.DefaultClient
 | 
| -	}
 | 
| -	resp, err := c.Get(url)
 | 
| -	if err != nil {
 | 
| -		return 0, fmt.Errorf("couldn't resolve %s: %s", url, err)
 | 
| -	}
 | 
| -	return decodeJSONResponse(resp, url, out)
 | 
| -}
 | 
| -
 | 
| -// PostJSON does a HTTP POST on a JSON endpoint.
 | 
| -//
 | 
| -// Returns the status code and the error, if any.
 | 
| -func PostJSON(c *http.Client, url string, in, out interface{}) (int, error) {
 | 
| -	if c == nil {
 | 
| -		c = http.DefaultClient
 | 
| -	}
 | 
| -	if in == nil {
 | 
| -		in = map[string]string{}
 | 
| -	}
 | 
| -	encoded, err := json.Marshal(in)
 | 
| -	if err != nil {
 | 
| -		return 0, nil
 | 
| -	}
 | 
| -	resp, err := c.Post(url, jsonContentType, bytes.NewBuffer(encoded))
 | 
| -	if err != nil {
 | 
| -		return 0, fmt.Errorf("couldn't resolve %s: %s", url, err)
 | 
| -	}
 | 
| -	return decodeJSONResponse(resp, url, out)
 | 
| -}
 | 
| -
 | 
| -func decodeJSONResponse(resp *http.Response, url string, out interface{}) (int, error) {
 | 
| -	defer resp.Body.Close()
 | 
| -	if out == nil {
 | 
| -		// The client doesn't care about the response. Still ensure the response is
 | 
| -		// valid json.
 | 
| -		out = &map[string]interface{}{}
 | 
| -	}
 | 
| -	if err := json.NewDecoder(resp.Body).Decode(out); err != nil {
 | 
| -		return resp.StatusCode, fmt.Errorf("bad response %s: %s", url, err)
 | 
| -	}
 | 
| -	ct := strings.ToLower(resp.Header.Get("Content-Type"))
 | 
| -	if ct != jsonContentType {
 | 
| -		return resp.StatusCode, fmt.Errorf("unexpected Content-Type, expected \"%s\", got \"%s\"", jsonContentType, ct)
 | 
| -	}
 | 
| -	if resp.StatusCode >= 400 {
 | 
| -		return resp.StatusCode, fmt.Errorf("http status %d", resp.StatusCode)
 | 
| -	}
 | 
| -	return resp.StatusCode, nil
 | 
| -}
 | 
| -
 | 
|  // ReadJSONFile reads a file and decode it as JSON.
 | 
|  func ReadJSONFile(filePath string, object interface{}) error {
 | 
|  	f, err := os.Open(filePath)
 | 
| 
 |