podman/API.md
baude 82feafecdd podman create, start, getattachsocket
First pass at implement API endpoints for create and start.

Signed-off-by: baude <bbaude@redhat.com>

Closes: #805
Approved by: baude
2018-05-21 19:26:56 +00:00

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 Commit(name: string, image_name: string, changes: []string, author: string, message: string, pause: bool) string

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 GetInfo() PodmanInfo

func GetVersion() Version

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 ListImages() ImageInList

func PauseContainer(name: string) string

func Ping() StringResponse

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

type ContainerChanges

type ContainerMount

type ContainerNameSpace

type ContainerPortMappings

type ContainerStats

type Create

type CreateResourceConfig

type IDMap

type IDMappingOptions

type ImageHistory

type ImageInList

type ImageSearch

type InfoGraphStatus

type InfoHost

type InfoPodmanBinary

type InfoStore

type ListContainerData

type NotImplemented

type PodmanInfo

type Sockets

type StringResponse

type Version

error ContainerNotFound

error ErrorOccurred

error ImageNotFound

error RuntimeError

Methods

func AttachToContainer

method AttachToContainer() NotImplemented

This method has not be implemented yet.

func BuildImage

method BuildImage() NotImplemented

This function is not implemented yet.

func Commit

method Commit(name: string, image_name: string, changes: []string, author: string, message: string, pause: bool) string

Commit, creates an image from an existing container. It requires the name or ID of the container as well as the resulting image name. Optionally, you can define an author and message to be added to the resulting image. You can also define changes to the resulting image for the following attributes: CMD, ENTRYPOINT, ENV, EXPOSE, LABEL, STOPSIGNAL, USER, VOLUME, and WORKDIR. To pause the container while it is being committed, pass a true bool for the pause argument. If the container cannot be found by the ID or name provided, a (ContainerNotFound)[#ContainerNotFound] error will be returned; otherwise, the resulting image's ID will be returned as a string.

func CreateContainer

method CreateContainer(create: Create) string

CreateContainer creates a new container from an image. It uses a (Create)[#Create] type for input.

func CreateImage

method CreateImage() NotImplemented

This function is not implemented yet.

func DeleteStoppedContainers

method DeleteStoppedContainers() []string

DeleteStoppedContainers will delete all containers that are not running. It will return a list the deleted container IDs. See also RemoveContainer.

func DeleteUnusedImages

method DeleteUnusedImages() []string

DeleteUnusedImages deletes any images not associated with a container. The IDs of the deleted images are returned in a string array.

func ExportContainer

method ExportContainer(name: string, path: string) string

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

method ExportImage(name: string, destination: string, compress: bool) string

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

method GetAttachSockets(name: string) Sockets

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

GetContainer takes a name or ID of a container and returns single ListContainerData structure. A ContainerNotFound error will be returned if the container cannot be found. See also ListContainers and InspectContainer.

func GetContainerLogs

method GetContainerLogs(name: string) []string

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

GetContainerStats takes the name or ID of a container and returns a single ContainerStats structure which contains attributes like memory and cpu usage. 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.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

GetInfo returns a PodmanInfo struct that describes podman and its host such as storage stats, build information of Podman, and system-wide registries.

func GetVersion

method GetVersion() Version

GetVersion returns a Version structure describing the libpod setup on their system.

func HistoryImage

method HistoryImage(name: string) ImageHistory

HistoryImage takes the name or ID of an image and returns information about its history and layers. The returned history is in the form of an array of ImageHistory structures. If the image cannot be found, an ImageNotFound error is returned.

func ImportImage

method ImportImage(source: string, reference: string, message: string, changes: []string) string

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

method InspectContainer(name: string) string

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

method InspectImage(name: string) string

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

method KillContainer(name: string, signal: int) string

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

ListContainerChanges takes a name or ID of a container and returns changes between the container and its base image. It returns a struct of changed, deleted, and added path names. If the container cannot be found, a ContainerNotFound error will be returned.

func ListContainerProcesses

method ListContainerProcesses(name: string, opts: []string) []string

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

ListContainers returns a list of containers in no particular order. There are returned as an array of ListContainerData structs. See also GetContainer.

func ListImages

method ListImages() ImageInList

ListImages returns an array of ImageInList structures which provide basic information about an image currenly in storage. See also InspectImage.

func PauseContainer

method PauseContainer(name: string) string

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

Ping provides a response for developers to ensure their varlink setup is working.

Example

$ varlink call -m unix:/run/podman/io.projectatomic.podman/io.projectatomic.podman.Ping
{
  "ping": {
    "message": "OK"
  }
}

func PullImage

method PullImage(name: string) string

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

method PushImage(name: string, tag: string, tlsverify: bool) string

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

method RemoveContainer(name: string, force: bool) string

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

method RemoveImage(name: string, force: bool) string

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

This method has not be implemented yet.

func ResizeContainerTty

method ResizeContainerTty() NotImplemented

This method has not be implemented yet.

func RestartContainer

method RestartContainer(name: string, timeout: int) string

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

SearchImage takes the string of an image name and a limit of searches from each registries to be returned. SearchImage will then use a glob-like match to find the image you are searching for. The images are returned in an array of ImageSearch structures which contain information about the image as well as its fully-qualified name.

func StartContainer

method StartContainer(name: string) string

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

method StopContainer(name: string, timeout: int) string

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

method TagImage(name: string, tagged: string) string

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

method UnpauseContainer(name: string) string

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

This method has not be implemented yet.

func WaitContainer

method WaitContainer(name: string) int

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.