Commit Graph

1522 Commits

Author SHA1 Message Date
Matthew Heon
02671a103f Add support for volumes-from, image volumes, init
This should complete Podmanv2's support for volume-related flags.
Most code was sourced from the old pkg/spec implementation with
modifications to account for the split between frontend flags
(volume, mount, tmpfs) and the backend flags implemented here.

Also enables tests for podman run with volumes

Signed-off-by: Matthew Heon <matthew.heon@pm.me>
2020-04-27 13:13:21 -04:00
Brent Baude
6db081fc5e enable load integration tests
fix bug where multiple images can be loaded and have to be able to handle the return of multiple names

Signed-off-by: Brent Baude <bbaude@redhat.com>
2020-04-27 10:20:53 -05:00
OpenShift Merge Robot
ca1c674d2e Merge pull request #5966 from vrothberg/v2-pod-stats
implement pod stats
2020-04-27 16:15:09 +02:00
Valentin Rothberg
7ee0f7e14c implement pod stats
Implement pod stats for the local and remote client. Both code paths end
up in infra/abi to allow for code share.

Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2020-04-27 12:00:35 +02:00
Sujil02
c1766d5e64 Enable pod inspect integration test
Enable pod inspect integration  test
Get rid of libpod pod inspect references
Remove libpod PodInspect struct.

Signed-off-by: Sujil02 <sushah@redhat.com>
2020-04-26 16:38:52 -04:00
Sujil02
5436e31441 Adding system prune for podman v2
Register system prune route, handler to support system prune,
Adds testcase to validate the system prune flow.

Signed-off-by: Sujil02 <sushah@redhat.com>
2020-04-24 15:44:07 -04:00
Daniel J Walsh
e66346c7b0 Stop wrapping pull messages
The length and size of our error messages on failure to pull
is huge.  This patch at least eliminates some of the wrapping.
But I think eventually we need to look at containers/image
and see if we can modify the error messages to something a little
more human friendly.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-04-23 05:31:36 -04:00
Jhon Honce
d7a27b8e84 Instrumentation to answer #5765
* currently wired to localhost:8888 to prevent access from off machine

Signed-off-by: Jhon Honce <jhonce@redhat.com>
2020-04-22 11:07:28 -07:00
OpenShift Merge Robot
47d99fb625 Merge pull request #5647 from rhatdan/containers.conf
Update podmanV2 to use containers.conf
2020-04-21 05:21:09 -04:00
Valentin Rothberg
09dc701097 podman rmi: refactor logic
While this commit was initially meant to fix #5847, it has turned into a
bigger refactoring which I did not manage to break into smaller pieces:

 * Fix #5847 by refactoring the image-removal logic.

 * Make the api handler for image-removal use the ABI code. This way,
   both (i.e., ABI and Tunnel) end up using the same code.  Achieving
   this code share required to move some code around to prevent circular
   dependencies.

 * Everything in pkg/api (excluding pkg/api/types) must now only be
   accessed from code using `ABISupport`.

 * Avoid imports from entities on handlers to prevent circular
   dependencies.

 * Move `podman system service` logic into `cmd` to prevent circular
   dependencies - it depends on pkg/api.

 * Also remove the build header from infra/abi files.  It will otherwise
   confuse swagger and other tools; errors we cannot fix as go doesn't
   expose a build-tag env variable.

Fixes: #5847
Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2020-04-21 08:12:25 +02:00
OpenShift Merge Robot
89276a5f92 Merge pull request #5883 from abitrolly/patch-3
Return labes in API (fixes #5882)
2020-04-20 20:18:48 -04:00
Daniel J Walsh
e62d081770 Update podman to use containers.conf
Add more default options parsing

Switch to using --time as opposed to --timeout to better match Docker.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-04-20 16:11:36 -04:00
OpenShift Merge Robot
e5e625b2a6 Merge pull request #5872 from jwhonce/wip/options
V2 Fix support for tcp://[::]<port> connections
2020-04-20 10:42:00 -04:00
Anatoli Babenia
48e7bae4e0 Return labes in API (fixes #5882)
Signed-off-by: Anatoli Babenia <anatoli@rainforce.org>
2020-04-20 09:56:37 +03:00
Jhon Honce
4e0326241b V2 Fix support for tcp://[::]<port> connections
* Fix support for socket activation, on remote and service

$ systemd-socket-activate -l 8083 --fdname=podman bin/podman system service --log-level=debug --time=30
$ bin/podman-remote --remote=tcp://[::]:8083 image ls

Or, use the podman.{socket,service} unit files

$ bin/podman-remote --remote=unix:///run/podman/podman.sock image ls

Signed-off-by: Jhon Honce <jhonce@redhat.com>
2020-04-17 16:39:59 -07:00
Sujil02
37f3b191d5 Add pod prune for api v2.
Add the ability to prune pods for api v2,
Includes the addition of force flag, for client side prompt.
Update test suite to support this use case.

Signed-off-by: Sujil02 <sushah@redhat.com>
2020-04-17 17:30:58 -04:00
Brent Baude
44a8cf8676 Fixes for system tests
Various fixes to protect against regressions in system tests

Signed-off-by: Brent Baude <bbaude@redhat.com>
2020-04-17 13:22:06 -05:00
Brent Baude
241326a9a8 Podman V2 birth
remote podman v1 and replace with podman v2.

Signed-off-by: Brent Baude <bbaude@redhat.com>
2020-04-16 15:53:58 -05:00
OpenShift Merge Robot
5def211400 Merge pull request #5842 from baude/v2bloat2
podman v2 remove bloat v2
2020-04-16 10:52:58 -07:00
Brent Baude
ba430bfe5e podman v2 remove bloat v2
rid ourseleves of libpod references in v2 client

Signed-off-by: Brent Baude <bbaude@redhat.com>
2020-04-16 12:04:46 -05:00
Brent Baude
e154249b46 allow filters to work when listing containers
enable filters when listing containers on the libpod endpoint.

Fixes: #5841

Signed-off-by: Brent Baude <bbaude@redhat.com>
2020-04-16 09:21:44 -05:00
Brent Baude
30d2964ff8 v2 bloat pruning phase 2
this is second phase of removing unneeded bloat in the remote client. this is important to be able to reduce the client size as well as possible native compilation for windows/mac.

Signed-off-by: Brent Baude <bbaude@redhat.com>
2020-04-15 16:09:27 -05:00
OpenShift Merge Robot
6e9622aa98 Merge pull request #5775 from sujil02/v2-container-prune
Ability to prune container in api V2
2020-04-15 13:42:36 -07:00
OpenShift Merge Robot
195cb11276 Merge pull request #5671 from edsantiago/swagger-check
swagger-check: new CI tool to cross-check swagger
2020-04-15 13:17:31 -07:00
OpenShift Merge Robot
9b78bf9293 Merge pull request #5770 from baude/v2events
podmanv2 events
2020-04-15 18:37:18 +02:00
Sujil02
ec4060aef6 Ability to prune container in api V2
Adds ability to prune containers for v2.
Adds client side prompt with force flag and filters options to prune.

Signed-off-by: Sujil02 <sushah@redhat.com>
2020-04-15 11:17:33 -04:00
Brent Baude
165aef7766 podmanv2 events
add the ability to monitor events

Signed-off-by: Brent Baude <bbaude@redhat.com>
2020-04-15 09:38:04 -05:00
Brent Baude
7147187942 v2specgen prune libpod
use libpod only in the specgen/generate package so that the remote clients do not inherit libpod bloat.

Signed-off-by: Brent Baude <bbaude@redhat.com>
2020-04-14 20:02:20 -05:00
Ed Santiago
ba26c763c5 swagger-check: new CI tool to cross-check swagger
New script cross-references r.Handle() and r.HandleFunc()
calls against the preceding '// swagger:operation' comments,
and exits failure (with descriptive error messages) if any
comments do not match the code.

This script should not be necessary: the swagger comments
should be autogenerated from the source code.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2020-04-14 11:27:44 -06:00
OpenShift Merge Robot
d8853429eb Merge pull request #5755 from mheon/fix_attach
Improve APIv2 support for Attach
2020-04-14 14:53:59 +02:00
OpenShift Merge Robot
85c352d8bc Merge pull request #5709 from vrothberg/v2-search
podmanV2: implement search
2020-04-14 14:51:39 +02:00
Brent Baude
d8d1aa49d2 v2podman add container init
add the ability to init a container both local and remote

Signed-off-by: Brent Baude <bbaude@redhat.com>
2020-04-13 19:51:20 -05:00
Matthew Heon
71f14bd792 Improve APIv2 support for Attach
A few major fixes here:
- Support for attaching to Configured containers, to match Docker
  behavior.
- Support for stream parameter has been improved (we now properly
  handle cases where it is not set).
- Initial support for logs parameter has been added.
- Setting attach streams when the container has a terminal is now
  supported.
- Errors are properly reported once the hijack has begun.

Signed-off-by: Matthew Heon <mheon@redhat.com>
2020-04-13 14:08:01 -04:00
Jhon Honce
f8892e7c6b Refactor service idle support
* Move connection tracking into APIServer using ConnState()
* Remove Connection counters from CLI code
* Update events handler to support client not closing connection
* Improve logging messages

Fixes #5599

Signed-off-by: Jhon Honce <jhonce@redhat.com>
2020-04-13 08:11:36 -07:00
OpenShift Merge Robot
555b30e9eb Merge pull request #5634 from jwhonce/wip/service
V2 podman system service
2020-04-09 14:55:45 +02:00
Valentin Rothberg
ff52b7524a podmanV2: implement search
Also implement a new libpod endpoint to add more parameters and to
prevent us from converting between slices and maps and make use of
the filter parsing in the image backend.

Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2020-04-09 13:05:19 +02:00
Valentin Rothberg
7a3bfbf076 podmanV2: implement logs
Implement the `podman {container} logs` for the v2 client. The remote
client does not yet support it.  There's some more work needed for the
rest api; some options are missing (e.g., printing names) while others
are broken (e.g., the until http parameter).

The remote parts will be tackled in a future change.

Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2020-04-09 11:55:10 +02:00
Jhon Honce
e0847f5457 V2 podman system service
* Added support for system service
* Enabled linting on the varlinkapi source, needed to support V2
  service command
* Added support for PODMAN_SOCKET

Skip linting deprecated code

Rather than introduce bugs by correcting deprecated code, linting the
code is being skipped. Code that is being ported into V2 is being
checked.

Signed-off-by: Jhon Honce <jhonce@redhat.com>
2020-04-07 19:22:10 -07:00
Jhon Honce
8ae28a55ac V2 podman diff(changes) support
* Ported CLI command
* Added API endpoint
* Added bindings
* Updated swagger (TODO: n endpoints, one handler)

Signed-off-by: Jhon Honce <jhonce@redhat.com>
2020-04-07 09:39:46 -07:00
OpenShift Merge Robot
843fa25890 Merge pull request #5716 from baude/v2ps
podmanv2 ps
2020-04-06 22:04:16 +02:00
Brent Baude
e20ecc733c refactor info
the current implementation of info, while typed, is very loosely done so.  we need stronger types for our apiv2 implmentation and bindings.

Signed-off-by: Brent Baude <bbaude@redhat.com>
2020-04-06 12:45:42 -05:00
Brent Baude
b22254dc8b podmanv2 ps
add the ability to list containers

Signed-off-by: Brent Baude <bbaude@redhat.com>
2020-04-06 12:12:59 -05:00
OpenShift Merge Robot
ba64186750 Merge pull request #5689 from sujil02/v2-pod-inspect
podmanv2 pod inspect
2020-04-06 15:23:19 +02:00
Brent Baude
6514a5c80e v2podman container create
create a container in podmanv2 using specgen approach.  this is the core implementation and still has quite a bit of code commented out specifically around volumes, devices, and namespaces.  need contributions from smes on these parts.

Signed-off-by: Brent Baude <bbaude@redhat.com>
2020-04-03 15:43:03 -05:00
OpenShift Merge Robot
35f5867833 Merge pull request #5672 from baude/v2save
podmanv2 save image
2020-04-03 22:41:18 +02:00
Brent Baude
837aad724f podmanv2 save image
add ability to save an image for podman v2

Signed-off-by: Brent Baude <bbaude@redhat.com>
2020-04-03 13:07:35 -05:00
OpenShift Merge Robot
64cade0f71 Merge pull request #5638 from baude/v2containercheck
podmanv2 checkpoint and restore
2020-04-03 20:05:30 +02:00
Brent Baude
8a16674722 podmanv2 checkpoint and restore
add the ability to checkpoint and restore containers on v2podman

Signed-off-by: Brent Baude <bbaude@redhat.com>
2020-04-03 09:32:06 -05:00
Valentin Rothberg
44a515015c podmanV2: implement push
* Implement `podman-push` and `podman-image-push` for the podmanV2
  client.

* Tests for `pkg/bindings` are not possible at the time of writing as we
  don't have a local registry running.

* Implement `/images/{name}/push` compat endpoint. Tests are not
  implemented for this v2 endpoint.  It has been tested manually.

General note: The auth config extraction from the http header is not
implement for push.  Since it's not yet supported for other endpoints
either, I deferred it to future work.

Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2020-04-02 17:01:32 +02:00
OpenShift Merge Robot
82610d657d Merge pull request #5688 from baude/v2import
podmanv2 import
2020-04-02 14:20:57 +02:00