-
Notifications
You must be signed in to change notification settings - Fork 2.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
API: container wait endpoint regression in 3.0.0 #9351
Comments
We were OK with this as 3.0 is a major version bump, including a major API version bump (to v3.0.0). It's obviously not ideal and we would like to keep breaking changes to a minimum, but 3.0 offered an opportunity to batch necessary ones together in one release - this was one of those. |
Though it looks like the v1.0.0 in the URL should be causing errors... @jwhonce Minimum API version is set to 3.0.0, but we're happily accepting v1.0.0 URLs still. |
But note that the #9048 (comment) implies that this wasn't intentional. Moreover, current 3.0 API docs show that the parameter is named This prevents the proper API bindings to be generated from the Swagger spec, which is currently the only realistic way to get things working for Golang consumers (aside from writing everything by hand), because the Podman package cannot be used directly due to multiple dependency issues. |
Alright, that definitely sounds like a bug - the expectation was to change parameter type but keep the name, from my understanding. |
Looks like this:
...actually "works" only in terms of API simply ignoring the parameter by the virtue of: podman/pkg/api/handlers/decoder.go Line 19 in a5e37ad
So the actual parameter name remained the same (
...to an
|
* Work around containers/podman#9390 * Work around containers/podman#9393 * Stream launched container's logs to the CLI's logger * Work around containers/podman#9351 * Ignore bodyclose linter false-positive * .cirrus.yml: run "go test" on Windows verbosely * Use sub-context for the ContainerLogs() call To avoid potential hangs in stdcopy.StdCopy(). * ContainerLogs: use buffered channels To avoid a case when stdcopy.StdCopy() waits for the io.Pipe() to unlock, while the connection from which it reads the logs gets closed. This presumably results in the tail part of the logs getting lost. * TestContainerLogs: skip last line check for Podman
@edigaryev Can you open a PR to fix this? |
See #9414. |
I believe the incompatibility is not related to the "slice thing". I suspect it's caused by preceding PR: https://github.com/containers/podman/pull/9051/files#diff-58b335c77eb3163bb2dec31c4e20ba5a62bafa143a1fbafe1a0e02dc1372fa31R327-R330 |
In #9048, which was included in the 3.0.0, the
condition
parameter was changed to be a slice, however, the assumptions behind the change explained in #9048 (comment) does not seem to be valid. Two examples to demonstrate this:Here's a Podman 3.0.0 with the fix from #9347 applied:
However, in 2.2.1 everything works fine:
The text was updated successfully, but these errors were encountered: