summaryrefslogtreecommitdiff
path: root/pkg/api
Commit message (Collapse)AuthorAge
* stats: break out CLI optionsValentin Rothberg2020-09-24
| | | | | | | | Have a clear separation of concerns for the CLI-only options (and their logic) from the backend. The backend logic is now easier to understand (e.g., `stream` instead of `noStream`). Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
* new endpoint: /libpod/containers/statsValentin Rothberg2020-09-24
| | | | | | | | | Add a new endpoint for container stats allowing for batch operations on more than one container. The new endpoint deprecates the single-container endpoint which will eventually be removed with the next major release. Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
* Merge pull request #7712 from baude/killreturnOpenShift Merge Robot2020-09-22
|\ | | | | add missing return for compat kill
| * add missing return for compat killbaude2020-09-21
| | | | | | | | | | | | on an error condition in kill for the compatibility layer, we were missing a return. Signed-off-by: baude <bbaude@redhat.com>
* | Add Server header to API service responsesJhon Honce2020-09-22
| | | | | | | | | | | | Aids in reading logs of different services Signed-off-by: Jhon Honce <jhonce@redhat.com>
* | Restore 'id' stanza in pull resultsJhon Honce2020-09-21
|/ | | | | | | | | | | | | id is the last image id from the set of id's returned via the images stanza. id may be deprecated in a future version of the API Created test_rest_v2_0_0.py to reflect the bump in the API Version. Fixes #7686 Signed-off-by: Jhon Honce <jhonce@redhat.com>
* Merge pull request #7688 from vrothberg/fix-7521OpenShift Merge Robot2020-09-21
|\ | | | | remote stats fixes
| * stats: log errors instead of sending 500Valentin Rothberg2020-09-21
| | | | | | | | | | | | As 200 is already out the door, we cannot send 500s anymore. Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
| * stats: detect closed client connectionValentin Rothberg2020-09-18
| | | | | | | | | | | | | | Detect closed client connections and stop streaming. Fixes: #7521 Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
| * stats endpoint: write OK header onceValentin Rothberg2020-09-18
| | | | | | | | Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
* | Merge pull request #7660 from ashley-cui/logsOpenShift Merge Robot2020-09-18
|\ \ | |/ |/| Fix remote logs
| * WIP: Fix remote logsAshley Cui2020-09-16
| | | | | | | | | | | | Docker compatibility - logs endpoint does not write stream headers if container has a tty Signed-off-by: Ashley Cui <acui@redhat.com>
* | Refactor remote pull to provide progressJhon Honce2020-09-16
|/ | | | | | | | | | | | | | | podman and podman-remote do not exactly match as the lower layer code checks if the output is destined for a TTY before creating the progress bars. A future PR for containers/images could change this behavior. Fixes #7543 Tested with: $ (echo '# start'; podman-remote pull nginx ) 2>&1 | ts '[%Y-%m-%d %H:%M:%.S]' $ (echo '# start'; podman pull nginx ) 2>&1 | ts '[%Y-%m-%d %H:%M:%.S]' Signed-off-by: Jhon Honce <jhonce@redhat.com>
* Merge pull request #7624 from QiWang19/policy-optionOpenShift Merge Robot2020-09-16
|\ | | | | Supports import&run--signature-policy
| * Supports import&run--signature-policyQi Wang2020-09-15
| | | | | | | | | | | | Enables podman create, pull, run, import to use --signature-policy option. Set it as hidden flag to be consistent with other commands. Signed-off-by: Qi Wang <qiwan@redhat.com>
* | Merge pull request #7642 from jwhonce/issues/7327-2OpenShift Merge Robot2020-09-16
|\ \ | | | | | | Refactor API version values
| * | Refactor API version valuesJhon Honce2020-09-15
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * API-Version header now Major.Minor to support tools parsing this header * Libpod Version updated to 2.0.0 to reflect changes in API field values * API-Version and Libpod-API-Version headers are now included in all results Fixes #7327 * Header support tested against goland 2020.2 and https://www.jetbrains.com/help/idea/docker.html plugin Signed-off-by: Jhon Honce <jhonce@redhat.com>
* | Merge pull request #7638 from jwhonce/wip/archiveOpenShift Merge Robot2020-09-15
|\ \ | |/ |/| Correct HTTP methods for /containers/{id}/archive
| * Correct HTTP methods for /containers/{id}/archiveJhon Honce2020-09-15
| | | | | | | | | | | | Make methods align with Docker API Signed-off-by: Jhon Honce <jhonce@redhat.com>
* | Merge pull request #7637 from vrothberg/fix-7263OpenShift Merge Robot2020-09-15
|\ \ | |/ |/| events endpoint: header: do not wait for events
| * events endpoint: header: do not wait for eventsValentin Rothberg2020-09-15
| | | | | | | | | | | | | | | | | | | | Do not wait for events to occur before writing the OK header. Events can take an unknown amount of time to occur and clients do not need to wait until then to know if the connection is good. Fixes: #7263 Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
* | Refactor API build endpoint to be more compliantJhon Honce2020-09-14
|/ | | | | | | | | | | | | | | | | * Refactor/Rename channel.WriteCloser() to encapsulate the channel * Refactor build endpoint to "live" stream buildah output channels over API rather then buffering output * Refactor bindings/tunnel build because endpoint changes * building tar file now in bindings rather then depending on caller * Cleanup initiating extra image engine * Remove setting fields to zero values (less noise in code) * Update tests to support remote builds Fixes #7136 Fixes #7137 Signed-off-by: Jhon Honce <jhonce@redhat.com>
* Fix up errors found by codespellDaniel J Walsh2020-09-11
| | | | Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
* Merge pull request #7536 from Luap99/api-network-filterOpenShift Merge Robot2020-09-10
|\ | | | | APIv2 Add network list filtering
| * Fix typo in the remove network api docPaul Holzinger2020-09-07
| | | | | | | | Signed-off-by: Paul Holzinger <paul.holzinger@web.de>
| * APIv2 Add network list filteringPaul Holzinger2020-09-07
| | | | | | | | | | | | | | | | | | | | Add the filter option to the libpod endpoint. Add support for the name filter on the docker endpoint. Add apiv2 tests for the network list endpoints. Enable podman network integration tests for remote. Signed-off-by: Paul Holzinger <paul.holzinger@web.de>
* | Merge pull request #7572 from vrothberg/fix-7135OpenShift Merge Robot2020-09-09
|\ \ | | | | | | remote kill: don't wait for the container to stop
| * | compat kill: only wait for 0 signal and sigkillValentin Rothberg2020-09-09
| | | | | | | | | | | | | | | | | | Docker does not wait unconditionally. Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
| * | remote kill: don't wait for the container to stopValentin Rothberg2020-09-09
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Invert the branch logic to match the comment. Docker seems to wait for the container while Podman does not. Enable the remote-disabled system test as well. Fixes: #7135 Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
* | | Merge pull request #7569 from zhangguanzhang/fix-apiv2-top-response-two-valueOpenShift Merge Robot2020-09-09
|\ \ \ | |/ / |/| | fix APIv2 pods top of non-exist pod gets two response value
| * | fix APIv2 pods top of non-exist pod gets two response valuezhangguanzhang2020-09-09
| |/ | | | | | | Signed-off-by: zhangguanzhang <zhangguanzhang@qq.com>
* | support multi-image (docker) archivesValentin Rothberg2020-09-08
| | | | | | | | | | | | | | | | | | | | | | | | | | Support loading and saving tarballs with more than one image. Add a new `/libpod/images/export` endpoint to the rest API to allow for exporting/saving multiple images into an archive. Note that a non-release version of containers/image is vendored. A release version must be vendored before cutting a new Podman release. We force the containers/image version via a replace in the go.mod file; this way go won't try to match the versions. Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
* | APIv2 add generate systemd endpointPaul Holzinger2020-09-02
|/ | | | | | | | | | | | | Add support for generating systemd units via the api and podman-remote. Change the GenerateSystemdReport type to return the units as map[string]string with the unit name as key. Add `--format` flag to `podman generate systemd` to allow the output to be formatted as json. Signed-off-by: Paul Holzinger <paul.holzinger@web.de>
* Merge pull request #7436 from rhatdan/variantOpenShift Merge Robot2020-08-28
|\ | | | | Add support for image pull overrides
| * Add support for variant when pulling imagesDaniel J Walsh2020-08-28
| | | | | | | | Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
* | Merge pull request #7428 from mheon/apiv2_container_pod_errorsOpenShift Merge Robot2020-08-28
|\ \ | |/ |/| Ensure pod REST API endpoints include ctr errors
| * Ensure pod REST API endpoints include ctr errorsMatthew Heon2020-08-27
| | | | | | | | | | | | | | | | | | | | | | | | The APIv2 pod endpoints that operate on multiple containers, such as Start, Kill, Pause, Unpause, do not report errors encountered by individual containers, because they incorrectly assume that any error is fatal. The documentation for the Libpod API calls notes, however, that ErrPodPartialFail will *always* be returned if any container failed; so we need to ignore that error and continue to collating and returning container errors. Signed-off-by: Matthew Heon <mheon@redhat.com>
* | Merge pull request #7416 from Luap99/fix-swagger-docOpenShift Merge Robot2020-08-28
|\ \ | |/ |/| [CI:DOCS] fix swagger api docs
| * [CI:DOCS] fix swagger api docsPaul Holzinger2020-08-23
| | | | | | | | | | | | | | | | | | Separate the volume endpoints into compat and libpod, as it is done for the other endpoints. Move the libpod image push endpoint to images. Signed-off-by: Paul Holzinger <paul.holzinger@web.de>
* | Merge pull request #7451 from mheon/fix_7195Ed Santiago2020-08-27
|\ \ | | | | | | Send HTTP Hijack headers after successful attach
| * | Send HTTP Hijack headers after successful attachMatthew Heon2020-08-27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Our previous flow was to perform a hijack before passing a connection into Libpod, and then Libpod would attach to the container's attach socket and begin forwarding traffic. A problem emerges: we write the attach header as soon as the attach complete. As soon as we write the header, the client assumes that all is ready, and sends a Start request. This Start may be processed *before* we successfully finish attaching, causing us to lose output. The solution is to handle hijacking inside Libpod. Unfortunately, this requires a downright extensive refactor of the Attach and HTTP Exec StartAndAttach code. I think the result is an improvement in some places (a lot more errors will be handled with a proper HTTP error code, before the hijack occurs) but other parts, like the relocation of printing container logs, are just *bad*. Still, we need this fixed now to get CI back into good shape... Fixes #7195 Signed-off-by: Matthew Heon <matthew.heon@pm.me>
* | | fix apiv2 will create containers with incorrect commandszhangguanzhang2020-08-24
| |/ |/| | | | | Signed-off-by: zhangguanzhang <zhangguanzhang@qq.com>
* | fix /libpod/pods/json returns null when there are no podszhangguanzhang2020-08-21
|/ | | | Signed-off-by: zhangguanzhang <zhangguanzhang@qq.com>
* Merge pull request #7283 from mheon/pod_infra_has_exit_cmdOpenShift Merge Robot2020-08-17
|\ | | | | Ensure pod infra containers have an exit command
| * Clean up pods before returning from Pod Stop API callMatthew Heon2020-08-17
| | | | | | | | | | | | | | This should help alleviate races where the pod is not fully cleaned up before subsequent API calls happen. Signed-off-by: Matthew Heon <mheon@redhat.com>
* | podman.service: use sdnotiyValentin Rothberg2020-08-13
|/ | | | | | | | | | | | | | | | Commit 2b6dd3fb4384 set the killmode of the podman.service to the systemd default which ultimately lead to the problem that systemd will kill *all* processes inside the unit's cgroup and hence kill all containers whenever the service is stopped. Fix it by setting the type to sdnotify and the killmode to process. `podman system service` will send the necessary notify messages when the NOTIFY_SOCKET is set and unset it right after to prevent the backend and container runtimes from jumping in between and send messages as well. Fixes: #7294 Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
* Unconditionally retrieve pod names via APIMatthew Heon2020-08-10
| | | | | | | | | | | | | | | | | | The ListContainers API previously had a Pod parameter, which determined if pod name was returned (but, notably, not Pod ID, which was returned unconditionally). This was fairly confusing, so we decided to deprecate/remove the parameter and return it unconditionally. To do this without serious performance implications, we need to avoid expensive JSON decodes of pod configuration in the DB. The way our Bolt tables are structured, retrieving name given ID is actually quite cheap, but we did not expose this via the Libpod API. Add a new GetName API to do this. Fixes #7214 Signed-off-by: Matthew Heon <matthew.heon@pm.me>
* Merge pull request #7215 from vrothberg/flatten-the-curveOpenShift Merge Robot2020-08-08
|\ | | | | images: speed up lists
| * image list: speed upValentin Rothberg2020-08-07
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Listing images has shown increasing performance penalties with an increasing number of images. Unless `--all` is specified, Podman will filter intermediate images. Determining intermediate images has been done by finding (and comparing!) parent images which is expensive. We had to query the storage many times which turned it into a bottleneck. Instead, create a layer tree and assign one or more images to nodes that match the images' top layer. Determining the children of an image is now exponentially faster as we already know the child images from the layer graph and the images using the same top layer, which may also be considered child images based on their history. On my system with 510 images, a rootful image list drops from 6 secs down to 0.3 secs. Also use the tree to compute parent nodes, and to filter intermediate images for pruning. Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
* | Merge pull request #7204 from baude/issue7197OpenShift Merge Robot2020-08-04
|\ \ | | | | | | Missing return after early exit