mirror of
https://github.com/moby/moby.git
synced 2026-01-11 18:51:37 +00:00
This adds a new parameter insertDefaults to /services/{id}. When this is
set, an empty field (such as UpdateConfig) will be populated with
default values in the API response. Make "service inspect" use this, so
that empty fields do not result in missing information when inspecting a
service.
Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
39 lines
1.0 KiB
Go
39 lines
1.0 KiB
Go
package client
|
|
|
|
import (
|
|
"bytes"
|
|
"encoding/json"
|
|
"fmt"
|
|
"io/ioutil"
|
|
"net/http"
|
|
"net/url"
|
|
|
|
"github.com/docker/docker/api/types"
|
|
"github.com/docker/docker/api/types/swarm"
|
|
"golang.org/x/net/context"
|
|
)
|
|
|
|
// ServiceInspectWithRaw returns the service information and the raw data.
|
|
func (cli *Client) ServiceInspectWithRaw(ctx context.Context, serviceID string, opts types.ServiceInspectOptions) (swarm.Service, []byte, error) {
|
|
query := url.Values{}
|
|
query.Set("insertDefaults", fmt.Sprintf("%v", opts.InsertDefaults))
|
|
serverResp, err := cli.get(ctx, "/services/"+serviceID, query, nil)
|
|
if err != nil {
|
|
if serverResp.statusCode == http.StatusNotFound {
|
|
return swarm.Service{}, nil, serviceNotFoundError{serviceID}
|
|
}
|
|
return swarm.Service{}, nil, err
|
|
}
|
|
defer ensureReaderClosed(serverResp)
|
|
|
|
body, err := ioutil.ReadAll(serverResp.body)
|
|
if err != nil {
|
|
return swarm.Service{}, nil, err
|
|
}
|
|
|
|
var response swarm.Service
|
|
rdr := bytes.NewReader(body)
|
|
err = json.NewDecoder(rdr).Decode(&response)
|
|
return response, body, err
|
|
}
|