Commit Graph

119 Commits

Author SHA1 Message Date
Jhon Honce 31112e4b08 Refactor handler packages
To help with packaging, the handlers in pkg/api/handlers are now found
in pkg/api/handler/compat.

Signed-off-by: Jhon Honce <jhonce@redhat.com>
2020-03-10 08:03:41 -07:00
Daniel J Walsh ac354ac94a
Fix spelling mistakes in code found by codespell
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-03-07 10:30:44 -05:00
OpenShift Merge Robot c8de26fb08
Merge pull request #5374 from baude/create
add default network for apiv2 create
2020-03-07 14:16:43 +01:00
Brent Baude 8b5e2a6297 add default network for apiv2 create
during container creation, if no network is provided, we need to add a default value so the container can be later started.

use apiv2 container creation for RunTopContainer instead of an exec to the system podman. RunTopContainer now also returns the container id and an error.

added a libpod commit endpoint.

also, changed the use of the connections and bindings slightly to make it more convenient to write tests.

Fixes: 5366
Signed-off-by: Brent Baude <bbaude@redhat.com>
2020-03-06 14:31:45 -06:00
OpenShift Merge Robot c3177b781b
Merge pull request #5410 from st1971/api-fixes
APIv2: compatible api fixes
2020-03-06 21:19:55 +01:00
Steve Taylor 06f5664e9d Removed extraneous comments and defaults plus amended variable declaration
Signed-off-by: Steve Taylor <steven@taylormuff.co.uk>
2020-03-06 13:19:21 +00:00
Steve Taylor 920d09c174 Removed the unnecessary code
removed defaulting of  query.Size
amended types.LibpodToContainer, removed hard coded true from inspect call

Signed-off-by: Steve Taylor <steven@taylormuff.co.uk>
2020-03-06 13:17:56 +00:00
Steve Taylor 83e52cf787 Implemented size parameter on GetContainer
Signed-off-by: Steve Taylor <steven@taylormuff.co.uk>
2020-03-05 23:02:45 +00:00
Steve Taylor da15f2f881 Implement size parameter on ListContainers
Signed-off-by: Steve Taylor <steven@taylormuff.co.uk>
2020-03-05 22:53:50 +00:00
Steve Taylor 1ef96364fe Map configured status to created to match docker API states
Signed-off-by: Steve Taylor <steven@taylormuff.co.uk>
2020-03-05 22:47:11 +00:00
Steve Taylor 9088a8a387 Fix to remove null entry from end of images json
Signed-off-by: Steve Taylor <steven@taylormuff.co.uk>
2020-03-05 22:37:31 +00:00
Steve Taylor 89b083f8b4 Register handlers without version to align with docker API
Signed-off-by: Steve Taylor <steven@taylormuff.co.uk>
2020-03-05 22:28:22 +00:00
Valentin Rothberg 593eb7625a golangci: enable goimports
Enable the goimports linter and fix reports.

Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2020-03-05 20:03:44 +01:00
OpenShift Merge Robot 1641ee6180
Merge pull request #5371 from edsantiago/apiv2_fixes
more swagger fixes
2020-03-02 23:52:28 +01:00
Ed Santiago c3c334a323 more swagger fixes
Signed-off-by: Ed Santiago <santiago@redhat.com>
2020-03-02 12:01:56 -07:00
Brent Baude 0904873100 rework apiv2 wait endpoint|binding
added the ability to wait on a condition (stopped, running, paused...) for a container.  if a condition is not provided, wait will default to the stopped condition which uses the original wait code paths.  if the condition is stopped, the container exit code will be returned.

also, correct a mux issue we discovered.

Signed-off-by: Brent Baude <bbaude@redhat.com>
2020-02-28 09:36:53 -06:00
Brent Baude 306b44380f binding tests for volumes
add binding tests for volumes: inspect(get), create, remove, prune, and list

implement filters ability for volumes

Signed-off-by: Brent Baude <bbaude@redhat.com>
2020-02-27 13:11:42 -06:00
Jhon Honce 997e3c8863 Remove 1 sec delay
* Stop closing net.Listener() twice on interrupt
 * Do not report error if closing server twice

Fixes #5311

Signed-off-by: Jhon Honce <jhonce@redhat.com>
2020-02-25 11:04:20 -07:00
Brent Baude d92b9b8859 more image binding tests
add two additional bindings tests for image usage.

add ability to use search filter on the endpoint.

Signed-off-by: Brent Baude <bbaude@redhat.com>
2020-02-23 11:01:21 -06:00
Brent Baude f0df07b593 add more image tests for go bindings
adding more image tests for go bindings.  one big change is that the params were converted from map[string]string to url.values to account for the ability to send []string as query params

Signed-off-by: Brent Baude <bbaude@redhat.com>
2020-02-21 16:11:39 -06:00
Brent Baude ea153c8e2e search endpoint failure correction
when returning an invalid search, a return was omitted triggering a null on the consumer end.

Fixes: #5228

Signed-off-by: Brent Baude <bbaude@redhat.com>
2020-02-21 12:53:39 -06:00
OpenShift Merge Robot a554e97adc
Merge pull request #5236 from marusak/filter_by_id
apiv2: Image filtering and fixup docs
2020-02-21 12:17:38 -05:00
OpenShift Merge Robot 585649df46
Merge pull request #5178 from marusak/expose_cpu
stats: Expose CPU usage in API
2020-02-21 11:04:16 -05:00
OpenShift Merge Robot 4e35c0824f
Merge pull request #5279 from edsantiago/swagger_fixes
Swagger: yet more fixes
2020-02-21 10:00:14 -05:00
OpenShift Merge Robot aae8874204
Merge pull request #5262 from schubter/signal-decode
APIv2: Fixed syscall.Signal not convertable by decoder
2020-02-21 07:33:22 -05:00
Ed Santiago 63a2fec6cb Swagger: yet more fixes
PR #5204 added /libpod/containers/create but with the wrong
swagger comment. Fix that.

Also fix some other inconsistencies: missing 'libpod' prefix,
missing 'Container' suffix, and change 'ContainerCreate'
to 'CreateContainer'; all of these changes preserve consistency
with both the invoked function as well as the overall naming
conventions used in this module.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2020-02-20 12:21:52 -07:00
OpenShift Merge Robot 3e5699224b
Merge pull request #5251 from sujil02/pod-test
Add test to validate the pod bindings api
2020-02-20 17:06:36 +01:00
Ed Santiago 1d8437d3ca Swagger: fix one incorrect comment
PR #5235 updated a bunch of entrypoints from {name} to {name:.*},
requiring matching changes to swagger comments. Looks like one
got missed due to the manual nature of this work.

Have I mentioned lately that manual maintenance of duplicate
information is not a great idea?

Discrepancy caught by my script, which I would really like to
look into getting into CI, but is gating on #5238. (I would
actually not like to get this script into CI, I would prefer
to have the duplicate information be autogenerated from
the function calls themselves, but I seem to have lost
that battle)

Signed-off-by: Ed Santiago <santiago@redhat.com>
2020-02-19 16:21:11 -07:00
Brent Baude d65ff6b3ec apiv2 container create using specgen
this uses the specgen structure to create containers rather than the outdated createconfig.  right now, only the apiv2 create is wired up.  eventually the cli will also have to be done.

Signed-off-by: Brent Baude <bbaude@redhat.com>
2020-02-19 15:20:15 -06:00
Sujil02 3db43dcce3 Add test to validate the pod bindings api
Include test to validate pod create, start, stop, restart,
pause, unpause, list, and inspect api bindings.
Also includes bug fixes that resulted in invalid api responses.

Signed-off-by: Sujil02 <sushah@redhat.com>
2020-02-19 16:05:27 -05:00
OpenShift Merge Robot aa1bb0b579
Merge pull request #5259 from schubter/apiv2-create-image
APIv2: Fixed CreateImageFromImage not respecting supplied Tag parameter
2020-02-19 17:30:37 +01:00
Andreas Schubert 3aa32dff1d
Fixed syscall.Signal not convertable by decoder
Signed-off-by: Andreas Schubert <schubter@gmail.com>
2020-02-19 15:04:24 +01:00
Andreas Schubert 1e4129a19d
Fixed typo in KillContainer
Signed-off-by: Andreas Schubert <schubter@gmail.com>
2020-02-19 13:48:10 +01:00
Andreas Schubert 6e5cf818e9
Fixed CreateImageFromImage not respecting supplied Tag parameter
Signed-off-by: Andreas Schubert <schubter@gmail.com>
2020-02-19 10:36:44 +01:00
OpenShift Merge Robot 1bed53b02c
Merge pull request #5247 from schubter/5242
APIv2: fixes decoder issue
2020-02-19 03:45:02 +01:00
Andreas Schubert 4b96c3b2c8
adds missing query struct tags and exports the fields
Signed-off-by: Andreas Schubert <schubter@gmail.com>
2020-02-18 21:10:55 +01:00
Ed Santiago 2a411bcbfa Swagger: fix inconsistencies (try #2)
As I've mentioned once or twice, hand-maintained swagger docs
are evil. This commit attempts to fix:

  * Inconsistent methods (swagger says POST but code signature
    says GET)

  * Inconsistent capitalization

  * Typos ("Mounter", "pood")

  * Completely wrong paths (/inspect vs /json)

  * Missing .Method() registrations

  * Missing /libpod in some /volumes paths

  * Incorrect method declaration: /libpod/containers/.../kill
    was correct (POST) in swagger but wrong in the code itself
    (http.MethodGet). Correct the latter to MethodPost

This is two hours' work, even with a script I have that
tries to cross-check everything.

Swagger docs should not be human-maintained.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2020-02-18 11:07:07 -07:00
Jhon Honce 024ddda123 Update mux rules to allow slashes in image names
%2F escaping is also supported.
Return better response on bad search terms

Fixes #5229

Signed-off-by: Jhon Honce <jhonce@redhat.com>
2020-02-18 09:38:37 -07:00
Matej Marusak 98774e1476 stats: Expose CPU usage in API
`stats.CPU` is a number representing CPU usage in percents. It is possible
to calculate it from other exposed fields (once they are implemented
correctly) but why to do it, when this is already calculated.

This does not break API, it just adds another field.

Signed-off-by: Matej Marusak <mmarusak@redhat.com>
2020-02-17 20:05:14 +01:00
Matej Marusak b6e0692466 apiv2: Fixup /containers/json filters documentation
Mention what is the input format plus put literals into quotation marks
for better readability (plus it seems that some tags were not rendered).

Signed-off-by: Matej Marusak <mmarusak@redhat.com>
2020-02-17 18:54:50 +01:00
Matej Marusak d08e0c728f apiv2: Enable filtering images by ID
It is more practical for API usage and also it is more in sync how
filtering of containers works.

Signed-off-by: Matej Marusak <mmarusak@redhat.com>
2020-02-17 18:44:46 +01:00
Jhon Honce c0c44ae8a3 Fix handler and systemd activation errors
On panic from handler: log warning and stack trace, report
InternalServerError to client

When using `podman system service` make determining the listening endpoint deterministic.

  // When determining _*THE*_ listening endpoint --
  // 1) User input wins always
  // 2) systemd socket activation
  // 3) rootless honors XDG_RUNTIME_DIR
  // 4) if varlink -- adapter.DefaultVarlinkAddress
  // 5) lastly adapter.DefaultAPIAddress

Fixes #5150
Fixes #5151

Signed-off-by: Jhon Honce <jhonce@redhat.com>
2020-02-17 10:29:32 -07:00
Sascha Grunert 93358ef915
Refactor image tree for API usage
Signed-off-by: Sascha Grunert <sgrunert@suse.com>
2020-02-17 11:12:35 +01:00
OpenShift Merge Robot 92dbcb8841
Merge pull request #5217 from mheon/rework_label_parsing
Rework label parsing
2020-02-15 12:50:48 +01:00
Matthew Heon 36a0ed9702 Rework label parsing
We attempted to share all logic for parsing labels and
environment variables, which on the surface makes lots of sense
(both are formatted key=value so parsing logic should be
identical) but has begun to fall apart now that we have added
additional logic to environment variable handling. Environment
variables that are unset, for example, are looked up against
environment variables set for the process. We don't want this for
labels, so we have to split parsing logic.

Fixes #3854

Signed-off-by: Matthew Heon <matthew.heon@pm.me>
2020-02-14 16:06:20 -05:00
OpenShift Merge Robot 9e9b157aa9
Merge pull request #5214 from baude/apiv2loglibpod
apiv2 libpod container logs
2020-02-14 21:21:35 +01:00
OpenShift Merge Robot ca303586b3
Merge pull request #5216 from baude/bindingstestcache
add caching for binding tests
2020-02-14 20:49:54 +01:00
Brent Baude 08bb9317cb add caching for binding tests
add the ability to cache images instead of pull them.  makes tests faster and less network use when we flip on CI.

Also added list images with filter test

Signed-off-by: Brent Baude <bbaude@redhat.com>
2020-02-14 12:11:23 -06:00
Brent Baude b1034eabe3 apiv2 libpod container logs
wire up containers logs for libpod side of the house, same as compat.

Signed-off-by: Brent Baude <bbaude@redhat.com>
2020-02-14 10:18:17 -06:00
Valentin Rothberg 85b7374491 add pkg/signal
Add pkg/signal to deal with parts of signal processing and translating
signals from string to numeric representations.  The code has been
copied from docker/docker (and attributed with the copyright) but been
reduced to only what libpod needs (on Linux).

Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2020-02-14 15:04:14 +01:00