Implemented size parameter on GetContainer
Signed-off-by: Steve Taylor <steven@taylormuff.co.uk>
This commit is contained in:
parent
da15f2f881
commit
83e52cf787
|
|
@ -101,6 +101,20 @@ func ListContainers(w http.ResponseWriter, r *http.Request) {
|
|||
|
||||
func GetContainer(w http.ResponseWriter, r *http.Request) {
|
||||
runtime := r.Context().Value("runtime").(*libpod.Runtime)
|
||||
decoder := r.Context().Value("decoder").(*schema.Decoder)
|
||||
query := struct {
|
||||
Size bool `schema:"size"`
|
||||
}{
|
||||
// override any golang type defaults
|
||||
}
|
||||
|
||||
// Default Size to false
|
||||
query.Size = false
|
||||
|
||||
if err := decoder.Decode(&query, r.URL.Query()); err != nil {
|
||||
utils.Error(w, "Something went wrong.", http.StatusBadRequest, errors.Wrapf(err, "Failed to parse parameters for %s", r.URL.String()))
|
||||
return
|
||||
}
|
||||
|
||||
name := utils.GetName(r)
|
||||
ctnr, err := runtime.LookupContainer(name)
|
||||
|
|
@ -108,7 +122,7 @@ func GetContainer(w http.ResponseWriter, r *http.Request) {
|
|||
utils.ContainerNotFound(w, name, err)
|
||||
return
|
||||
}
|
||||
api, err := handlers.LibpodToContainerJSON(ctnr)
|
||||
api, err := handlers.LibpodToContainerJSON(ctnr, query.Size)
|
||||
if err != nil {
|
||||
utils.InternalServerError(w, err)
|
||||
return
|
||||
|
|
|
|||
|
|
@ -402,7 +402,12 @@ func LibpodToContainer(l *libpod.Container, infoData []define.InfoData, sz bool)
|
|||
}, nil
|
||||
}
|
||||
|
||||
func LibpodToContainerJSON(l *libpod.Container) (*docker.ContainerJSON, error) {
|
||||
func LibpodToContainerJSON(l *libpod.Container, sz bool) (*docker.ContainerJSON, error) {
|
||||
var (
|
||||
sizeRootFs int64
|
||||
sizeRW int64
|
||||
)
|
||||
|
||||
_, imageName := l.Image()
|
||||
inspect, err := l.Inspect(true)
|
||||
if err != nil {
|
||||
|
|
@ -439,6 +444,18 @@ func LibpodToContainerJSON(l *libpod.Container) (*docker.ContainerJSON, error) {
|
|||
return nil, err
|
||||
}
|
||||
|
||||
if sz {
|
||||
if sizeRW, err = l.RWSize(); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if sizeRootFs, err = l.RootFsSize(); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
} else {
|
||||
sizeRW = 0
|
||||
sizeRootFs = 0
|
||||
}
|
||||
|
||||
cb := docker.ContainerJSONBase{
|
||||
ID: l.ID(),
|
||||
Created: l.CreatedTime().String(),
|
||||
|
|
@ -461,8 +478,8 @@ func LibpodToContainerJSON(l *libpod.Container) (*docker.ContainerJSON, error) {
|
|||
ExecIDs: inspect.ExecIDs,
|
||||
HostConfig: &hc,
|
||||
GraphDriver: graphDriver,
|
||||
SizeRw: inspect.SizeRw,
|
||||
SizeRootFs: &inspect.SizeRootFs,
|
||||
SizeRw: &sizeRW,
|
||||
SizeRootFs: &sizeRootFs,
|
||||
}
|
||||
|
||||
stopTimeout := int(l.StopTimeout())
|
||||
|
|
|
|||
Loading…
Reference in New Issue