First pass at implement API endpoints for create and start. Signed-off-by: baude <bbaude@redhat.com> Closes: #805 Approved by: baude
38 KiB
Executable file
io.projectatomic.podman
Podman Service Interface and API description. The master version of this document can be found in the API.md file in the upstream libpod repository.
Index
func AttachToContainer() NotImplemented
func BuildImage() NotImplemented
func CreateContainer(create: Create) string
func CreateImage() NotImplemented
func DeleteStoppedContainers() []string
func DeleteUnusedImages() []string
func ExportContainer(name: string, path: string) string
func ExportImage(name: string, destination: string, compress: bool) string
func GetAttachSockets(name: string) Sockets
func GetContainer(name: string) ListContainerData
func GetContainerLogs(name: string) []string
func GetContainerStats(name: string) ContainerStats
func HistoryImage(name: string) ImageHistory
func ImportImage(source: string, reference: string, message: string, changes: []string) string
func InspectContainer(name: string) string
func InspectImage(name: string) string
func KillContainer(name: string, signal: int) string
func ListContainerChanges(name: string) ContainerChanges
func ListContainerProcesses(name: string, opts: []string) []string
func ListContainers() ListContainerData
func PauseContainer(name: string) string
func PullImage(name: string) string
func PushImage(name: string, tag: string, tlsverify: bool) string
func RemoveContainer(name: string, force: bool) string
func RemoveImage(name: string, force: bool) string
func RenameContainer() NotImplemented
func ResizeContainerTty() NotImplemented
func RestartContainer(name: string, timeout: int) string
func SearchImage(name: string, limit: int) ImageSearch
func StartContainer(name: string) string
func StopContainer(name: string, timeout: int) string
func TagImage(name: string, tagged: string) string
func UnpauseContainer(name: string) string
func UpdateContainer() NotImplemented
func WaitContainer(name: string) int
Methods
func AttachToContainer
method AttachToContainer() NotImplemented
func BuildImage
method BuildImage() NotImplemented
func Commit
method Commit(name: string, image_name: string, changes: []string, author: string, message: string, pause: bool) string
func CreateContainer
CreateContainer creates a new container from an image. It uses a (Create)[#Create] type for input.func CreateImage
method CreateImage() NotImplemented
func DeleteStoppedContainers
method DeleteStoppedContainers() []string
func DeleteUnusedImages
method DeleteUnusedImages() []string
func ExportContainer
ExportContainer creates an image from a container. It takes the name or ID of a container and a path representing the target tarfile. If the container cannot be found, a ContainerNotFound error will be returned. The return value is the written tarfile.func ExportImage
ExportImage takes the name or ID of an image and exports it to a destination like a tarball. There is also a booleon option to force compression. Upon completion, the ID of the image is returned. If the image cannot be found in local storage, an ImageNotFound error will be returned. See also ImportImage.func GetAttachSockets
GetAttachSockets takes the name or ID of an existing container. It returns file paths for two sockets needed to properly communicate with a container. The first is the actual I/O socket that the container uses. The second is a "control" socket where things like resizing the TTY events are sent. If the container cannot be found, a ContainerNotFound error will be returned.Example
$ varlink call -m unix:/run/io.projectatomic.podman/io.projectatomic.podman.GetAttachSockets '{"name": "b7624e775431219161"}'
{
"sockets": {
"container_id": "b7624e7754312191613245ce1a46844abee60025818fe3c3f3203435623a1eca",
"control_socket": "/var/lib/containers/storage/overlay-containers/b7624e7754312191613245ce1a46844abee60025818fe3c3f3203435623a1eca/userdata/ctl",
"io_socket": "/var/run/libpod/socket/b7624e7754312191613245ce1a46844abee60025818fe3c3f3203435623a1eca/attach"
}
}
func GetContainer
method GetContainer(name: string) ListContainerData
func GetContainerLogs
GetContainerLogs takes a name or ID of a container and returns the logs of that container. If the container cannot be found, a ContainerNotFound error will be returned. The container logs are returned as an array of strings. GetContainerLogs will honor the streaming capability of varlink if the client invokes it.func GetContainerStats
method GetContainerStats(name: string) ContainerStats
Example
$ varlink call -m unix:/run/podman/io.projectatomic.podman/io.projectatomic.podman.GetContainerStats '{"name": "c33e4164f384"}'
{
"container": {
"block_input": 0,
"block_output": 0,
"cpu": 2.571123918839990154678e-08,
"cpu_nano": 49037378,
"id": "c33e4164f384aa9d979072a63319d66b74fd7a128be71fa68ede24f33ec6cfee",
"mem_limit": 33080606720,
"mem_perc": 2.166828456524753747370e-03,
"mem_usage": 716800,
"name": "competent_wozniak",
"net_input": 768,
"net_output": 5910,
"pids": 1,
"system_nano": 10000000
}
}
func GetInfo
method GetInfo() PodmanInfo
func GetVersion
method GetVersion() Version
func HistoryImage
method HistoryImage(name: string) ImageHistory
func ImportImage
ImportImage imports an image from a source (like tarball) into local storage. The image can have additional descriptions added to it using the message and changes options. See also ExportImage.func InspectContainer
InspectContainer data takes a name or ID of a container returns the inspection data in string format. You can then serialize the string into JSON. A ContainerNotFound error will be returned if the container cannot be found. See also InspectImage.func InspectImage
InspectImage takes the name or ID of an image and returns a string respresentation of data associated with the mage. You must serialize the string into JSON to use it further. An ImageNotFound error will be returned if the image cannot be found.func KillContainer
KillContainer takes the name or ID of a container as well as a signal to be applied to the container. Once the container has been killed, the container's ID is returned. If the container cannot be found, a ContainerNotFound error is returned. See also StopContainer.func ListContainerChanges
method ListContainerChanges(name: string) ContainerChanges
func ListContainerProcesses
ListContainerProcesses takes a name or ID of a container and returns the processes running inside the container as array of strings. It will accept an array of string arguements that represent ps options. If the container cannot be found, a ContainerNotFound error will be returned.Example
$ varlink call -m unix:/run/podman/io.projectatomic.podman/io.projectatomic.podman.ListContainerProcesses '{"name": "135d71b9495f", "opts": []}'
{
"container": [
" UID PID PPID C STIME TTY TIME CMD",
" 0 21220 21210 0 09:05 pts/0 00:00:00 /bin/sh",
" 0 21232 21220 0 09:05 pts/0 00:00:00 top",
" 0 21284 21220 0 09:05 pts/0 00:00:00 vi /etc/hosts"
]
}
func ListContainers
method ListContainers() ListContainerData
func ListImages
method ListImages() ImageInList
func PauseContainer
PauseContainer takes the name or ID of container and pauses it. If the container cannot be found, a ContainerNotFound error will be returned; otherwise the ID of the container is returned. See also UnpauseContainer.func Ping
method Ping() StringResponse
Example
$ varlink call -m unix:/run/podman/io.projectatomic.podman/io.projectatomic.podman.Ping
{
"ping": {
"message": "OK"
}
}
func PullImage
PullImage pulls an image from a repository to local storage. After the pull is successful, the ID of the image is returned.Example
$ varlink call -m unix:/run/podman/io.projectatomic.podman/io.projectatomic.podman.PullImage '{"name": "registry.fedoraproject.org/fedora"}'
{
"id": "426866d6fa419873f97e5cbd320eeb22778244c1dfffa01c944db3114f55772e"
}
func PushImage
PushImage takes three input arguments: the name or ID of an image, the fully-qualified destination name of the image, and a boolean as to whether tls-verify should be used. It will return an ImageNotFound error if the image cannot be found in local storage; otherwise the ID of the image will be returned on success.func RemoveContainer
RemoveContainer takes requires the name or ID of container as well a boolean representing whether a running container can be stopped and removed. Upon sucessful removal of the container, its ID is returned. If the container cannot be found by name or ID, a ContainerNotFound error will be returned.Example
$ varlink call -m unix:/run/podman/io.projectatomic.podman/io.projectatomic.podman.RemoveContainer '{"name": "62f4fd98cb57"}'
{
"container": "62f4fd98cb57f529831e8f90610e54bba74bd6f02920ffb485e15376ed365c20"
}
func RemoveImage
RemoveImage takes the name or ID of an image as well as a booleon that determines if containers using that image should be deleted. If the image cannot be found, an ImageNotFound error will be returned. The ID of the removed image is returned when complete. See also DeleteUnusedImages.Example
varlink call -m unix:/run/podman/io.projectatomic.podman/io.projectatomic.podman.RemoveImage '{"name": "registry.fedoraproject.org/fedora", "force": true}'
{
"image": "426866d6fa419873f97e5cbd320eeb22778244c1dfffa01c944db3114f55772e"
}
func RenameContainer
method RenameContainer() NotImplemented
func ResizeContainerTty
method ResizeContainerTty() NotImplemented
func RestartContainer
RestartContainer will restart a running container given a container name or ID and timeout value. The timeout value is the time before a forceable stop is used to stop the container. If the container cannot be found by name or ID, a ContainerNotFound error will be returned; otherwise, the ID of the container will be returned.func SearchImage
method SearchImage(name: string, limit: int) ImageSearch
func StartContainer
StartContainer starts a created or stopped container. It takes the name or ID of container. It returns the container ID once started. If the container cannot be found, a ContainerNotFound error will be returned. See also CreateContainer.func StopContainer
StopContainer stops a container given a timeout. It takes the name or ID of a container as well as a timeout value. The timeout value the time before a forceable stop to the container is applied. It returns the container ID once stopped. If the container cannot be found, a ContainerNotFound error will be returned instead. See also KillContainer.Error
$ varlink call -m unix:/run/podman/io.projectatomic.podman/io.projectatomic.podman.StopContainer '{"name": "135d71b9495f", "timeout": 5}'
{
"container": "135d71b9495f7c3967f536edad57750bfdb569336cd107d8aabab45565ffcfb6"
}
func TagImage
TagImage takes the name or ID of an image in local storage as well as the desired tag name. If the image cannot be found, an ImageNotFound error will be returned; otherwise, the ID of the image is returned on success.func UnpauseContainer
UnpauseContainer takes the name or ID of container and unpauses a paused container. If the container cannot be found, a ContainerNotFound error will be returned; otherwise the ID of the container is returned. See also PauseContainer.func UpdateContainer
method UpdateContainer() NotImplemented
func WaitContainer
WaitContainer takes the name or ID of a container and waits until the container stops. Upon stopping, the return code of the container is returned. If the container container cannot be found by ID or name, a ContainerNotFound error is returned.Types
type ContainerChanges
ContainerChanges describes the return struct for ListContainerChanges
changed []string
added []string
deleted []string
type ContainerMount
ContainerMount describes the struct for mounts in a container
destination string
type string
source string
options []string
type ContainerNameSpace
ContainerNamespace describes the namespace structure for an existing container
user string
uts string
pidns string
pid string
cgroup string
net string
mnt string
ipc string
type ContainerPortMappings
ContainerPortMappings describes the struct for portmappings in an existing container
host_port string
host_ip string
protocol string
container_port string
type ContainerStats
ContainerStats is the return struct for the stats of a container
id string
name string
cpu float
cpu_nano int
system_nano int
mem_usage int
mem_limit int
mem_perc float
net_input int
net_output int
block_output int
block_input int
pids int
type Create
Create is an input structure for creating containers. It closely resembles the CreateConfig structure in libpod/pkg/spec.
args []string
cap_add []string
cap_drop []string
conmon_pidfile string
cgroup_parent string
command []string
detach bool
devices []string
dns_opt []string
dns_search []string
dns_servers []string
entrypoint []string
env map[string]
exposed_ports []string
gidmap []string
group_add []string
host_add []string
hostname string
image string
image_id string
builtin_imgvolumes []string
id_mappings IDMappingOptions
image_volume_type string
interactive bool
ipc_mode string
labels map[string]
log_driver string
log_driver_opt []string
name string
net_mode string
network string
pid_mode string
pod string
privileged bool
publish []string
publish_all bool
quiet bool
readonly_rootfs bool
resources CreateResourceConfig
rm bool
shm_dir string
stop_signal int
stop_timeout int
subuidmap string
subgidmap string
subuidname string
subgidname string
sys_ctl map[string]
tmpfs []string
tty bool
uidmap []string
userns_mode string
user string
uts_mode string
volumes []string
work_dir string
mount_label string
process_label string
no_new_privs bool
apparmor_profile string
seccomp_profile_path string
security_opts []string
type CreateResourceConfig
CreateResourceConfig is an input structure used to describe host attributes during container creation. It is only valid inside a (Create)[#Create] type.
blkio_weight int
blkio_weight_device []string
cpu_period int
cpu_quota int
cpu_rt_period int
cpu_rt_runtime int
cpu_shares int
cpus float
cpuset_cpus string
cpuset_mems string
device_read_bps []string
device_read_iops []string
device_write_bps []string
device_write_iops []string
disable_oomkiller bool
kernel_memory int
memory int
memory_reservation int
memory_swap int
memory_swappiness int
oom_score_adj int
pids_limit int
shm_size int
ulimit []string
type IDMap
IDMap is used to describe user name spaces during container creation
container_id int
host_id int
size int
type IDMappingOptions
IDMappingOptions is an input structure used to described ids during container creation.
host_uid_mapping bool
host_gid_mapping bool
uid_map IDMap
gid_map IDMap
type ImageHistory
ImageHistory describes the returned structure from ImageHistory.
id string
created string
createdBy string
tags []string
size int
comment string
type ImageInList
ImageInList describes the structure that is returned in ListImages.
id string
parentId string
repoTags []string
repoDigests []string
created string
size int
virtualSize int
containers int
labels map[string]
type ImageSearch
ImageSearch is the returned structure for SearchImage. It is returned in arrary form.
description string
is_official bool
is_automated bool
name string
star_count int
type InfoGraphStatus
InfoGraphStatus describes the detailed status of the storage driver
backing_filesystem string
native_overlay_diff string
supports_d_type string
type InfoHost
InfoHost describes the host stats portion of PodmanInfo
mem_free int
mem_total int
swap_free int
swap_total int
arch string
cpus int
hostname string
kernel string
os string
uptime string
type InfoPodmanBinary
InfoPodman provides details on the podman binary
compiler string
go_version string
podman_version string
git_commit string
type InfoStore
InfoStore describes the host's storage informatoin
containers int
images int
graph_driver_name string
graph_driver_options string
graph_root string
graph_status InfoGraphStatus
run_root string
type ListContainerData
ListContainer is the returned struct for an individual container
id string
image string
imageid string
command []string
createdat string
runningfor string
status string
ports ContainerPortMappings
rootfssize int
rwsize int
names string
labels map[string]
mounts ContainerMount
containerrunning bool
namespaces ContainerNameSpace
type NotImplemented
comment string
type PodmanInfo
PodmanInfo describes the Podman host and build
host InfoHost
registries []string
insecure_registries []string
store InfoStore
podman InfoPodmanBinary
type Sockets
Sockets describes sockets location for a container
container_id string
io_socket string
control_socket string
type StringResponse
message string
type Version
Version is the structure returned by GetVersion
version string
go_version string
git_commit string
built int
os_arch string
Errors
type ContainerNotFound
ContainerNotFound means the container could not be found by the provided name or ID in local storage.
type ErrorOccurred
ErrorOccurred is a generic error for an error that occurs during the execution. The actual error message is includes as part of the error's text.
type ImageNotFound
ImageNotFound means the image could not be found by the provided name or ID in local storage.
type RuntimeError
RuntimeErrors generally means a runtime could not be found or gotten.