mirror of https://github.com/containers/podman.git
51 lines
1.2 KiB
Go
51 lines
1.2 KiB
Go
// +build remoteclient
|
|
|
|
package adapter
|
|
|
|
import (
|
|
"encoding/json"
|
|
|
|
iopodman "github.com/containers/libpod/cmd/podman/varlink"
|
|
"github.com/containers/libpod/libpod"
|
|
"github.com/containers/libpod/pkg/inspect"
|
|
)
|
|
|
|
// Inspect returns an inspect struct from varlink
|
|
func (c *Container) Inspect(size bool) (*inspect.ContainerInspectData, error) {
|
|
reply, err := iopodman.ContainerInspectData().Call(c.Runtime.Conn, c.ID())
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
data := inspect.ContainerInspectData{}
|
|
if err := json.Unmarshal([]byte(reply), &data); err != nil {
|
|
return nil, err
|
|
}
|
|
return &data, err
|
|
}
|
|
|
|
// ID returns the ID of the container
|
|
func (c *Container) ID() string {
|
|
return c.config.ID
|
|
}
|
|
|
|
// GetArtifact returns a container's artifacts
|
|
func (c *Container) GetArtifact(name string) ([]byte, error) {
|
|
var data []byte
|
|
reply, err := iopodman.ContainerArtifacts().Call(c.Runtime.Conn, c.ID(), name)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
if err := json.Unmarshal([]byte(reply), &data); err != nil {
|
|
return nil, err
|
|
}
|
|
return data, err
|
|
}
|
|
|
|
// Config returns a container's Config ... same as ctr.Config()
|
|
func (c *Container) Config() *libpod.ContainerConfig {
|
|
if c.config != nil {
|
|
return c.config
|
|
}
|
|
return c.Runtime.Config(c.ID())
|
|
}
|