Accepting request 756110 from devel:kubic

OBS-URL: https://build.opensuse.org/request/show/756110
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/podman?expand=0&rev=51
This commit is contained in:
Dominique Leuenberger 2019-12-18 13:43:33 +00:00 committed by Git OBS Bridge
parent 92a80312cf
commit cd3d2c182d
6 changed files with 22 additions and 112 deletions

View File

@ -4,8 +4,8 @@
<param name="url">https://github.com/containers/libpod.git</param>
<param name="scm">git</param>
<param name="filename">podman</param>
<param name="versionformat">1.6.2</param>
<param name="revision">v1.6.2</param>
<param name="versionformat">1.6.4</param>
<param name="revision">v1.6.4</param>
</service>
<service name="set_version" mode="disabled">

View File

@ -1,101 +0,0 @@
From 2e3f46da4f874f0c50c6b630fb6badbb052a31f2 Mon Sep 17 00:00:00 2001
From: Valentin Rothberg <rothberg@redhat.com>
Date: Thu, 31 Oct 2019 13:03:08 +0100
Subject: [PATCH] container start: fix regression when using name
When starting a container by using its name as a reference, we should
print the name instead of the ID. We regressed on this behaviour
with commit b4124485ae7e which made it into Podman v1.6.2.
Kudos to openSUSE testing for catching it. To prevent future
regressions, extend the e2e tests to check the printed container
name/ID.
Reported-by: @sysrich
Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
---
pkg/adapter/containers.go | 29 +++++++++++++++++------------
test/e2e/start_test.go | 18 ++++++++++++++++--
2 files changed, 33 insertions(+), 14 deletions(-)
diff --git a/pkg/adapter/containers.go b/pkg/adapter/containers.go
index 430b6925..207cf5c6 100644
--- a/pkg/adapter/containers.go
+++ b/pkg/adapter/containers.go
@@ -656,20 +656,25 @@ func (r *LocalRuntime) Start(ctx context.Context, c *cliconfig.StartValues, sigP
return exitCode, nil
}
- if ctrRunning {
- fmt.Println(ctr.ID())
- continue
- }
- // Handle non-attach start
- // If the container is in a pod, also set to recursively start dependencies
- if err := ctr.Start(ctx, ctr.PodID() != ""); err != nil {
- if lastError != nil {
- fmt.Fprintln(os.Stderr, lastError)
+ // Start the container if it's not running already.
+ if !ctrRunning {
+ // Handle non-attach start
+ // If the container is in a pod, also set to recursively start dependencies
+ if err := ctr.Start(ctx, ctr.PodID() != ""); err != nil {
+ if lastError != nil {
+ fmt.Fprintln(os.Stderr, lastError)
+ }
+ lastError = errors.Wrapf(err, "unable to start container %q", container)
+ continue
}
- lastError = errors.Wrapf(err, "unable to start container %q", container)
- continue
}
- fmt.Println(ctr.ID())
+ // Check if the container is referenced by ID or by name and print
+ // it accordingly.
+ if strings.HasPrefix(ctr.ID(), container) {
+ fmt.Println(ctr.ID())
+ } else {
+ fmt.Println(container)
+ }
}
return exitCode, lastError
}
diff --git a/test/e2e/start_test.go b/test/e2e/start_test.go
index da581f15..09b8d201 100644
--- a/test/e2e/start_test.go
+++ b/test/e2e/start_test.go
@@ -57,15 +57,29 @@ var _ = Describe("Podman start", func() {
session = podmanTest.Podman([]string{"container", "start", cid})
session.WaitWithDefaultTimeout()
Expect(session.ExitCode()).To(Equal(0))
+ Expect(session.OutputToString()).To(Equal(cid))
+ })
+
+ It("podman container start single container by short id", func() {
+ session := podmanTest.Podman([]string{"container", "create", "-d", ALPINE, "ls"})
+ session.WaitWithDefaultTimeout()
+ Expect(session.ExitCode()).To(Equal(0))
+ cid := session.OutputToString()
+ session = podmanTest.Podman([]string{"container", "start", cid[0:10]})
+ session.WaitWithDefaultTimeout()
+ Expect(session.ExitCode()).To(Equal(0))
+ Expect(session.OutputToString()).To(Equal(cid))
})
It("podman start single container by name", func() {
- session := podmanTest.Podman([]string{"create", "-d", "--name", "foobar99", ALPINE, "ls"})
+ name := "foobar99"
+ session := podmanTest.Podman([]string{"create", "-d", "--name", name, ALPINE, "ls"})
session.WaitWithDefaultTimeout()
Expect(session.ExitCode()).To(Equal(0))
- session = podmanTest.Podman([]string{"start", "foobar99"})
+ session = podmanTest.Podman([]string{"start", name})
session.WaitWithDefaultTimeout()
Expect(session.ExitCode()).To(Equal(0))
+ Expect(session.OutputToString()).To(Equal(name))
})
It("podman start multiple containers", func() {
--
2.23.0

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:1bdd4c8c03924180feea514d64128946fd788b283fbf9bd0a5be1554dfdf79e0
size 4445468

3
podman-1.6.4.tar.xz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:522b37fa9dc089eb37c9c549d9be9490ba3992906c38cbc75f8eb8e6c682c44c
size 4479912

View File

@ -1,3 +1,15 @@
-------------------------------------------------------------------
Thu Dec 12 14:30:34 UTC 2019 - Richard Brown <rbrown@suse.com>
- Update podman to v1.6.4
- Remove winsz FIFO on container restart to allow use with Conmon 2.03 and higher
- Ensure volumes reacquire locks on system restart, preventing deadlocks when starting containers
- Suppress spurious log messages when running rootless Podman
- Update vendored containers/storage to v1.13.6
- Fix a deadlock related to writing events
- Do not use the journald event logger when it is not available
- Remove obsolete patch container-start-fix.patch
-------------------------------------------------------------------
Thu Oct 31 13:05:29 UTC 2019 - Richard Brown <rbrown@suse.com>

View File

@ -22,7 +22,7 @@
%define with_libostree 1
%endif
Name: podman
Version: 1.6.2
Version: 1.6.4
Release: 0
Summary: Daemon-less container engine for managing containers, pods and images
License: Apache-2.0
@ -31,8 +31,6 @@ Url: https://github.com/containers/libpod
Source0: %{name}-%{version}.tar.xz
Source2: libpod.conf
Source3: %{name}-rpmlintrc
# https://github.com/containers/libpod/pull/4394/files
Patch0: container-start-fix.patch
BuildRequires: bash-completion
BuildRequires: cni
BuildRequires: device-mapper-devel
@ -83,7 +81,8 @@ skopeo, as they all share the same datastore backend.
%prep
%setup -q
%patch0 -p1
#WORKAROUND https://github.com/containers/libpod/issues/4688
mv docs/*.5.md docs/source/markdown/
%package cni-config
Summary: Basic CNI configuration for podman
@ -143,9 +142,9 @@ cd $HOME/go/src/%{project}
install -D -m 0755 bin/podman %{buildroot}/%{_bindir}/podman
install -D -m 0755 bin/podman-remote %{buildroot}/%{_bindir}/podman-remote
install -d %{buildroot}/%{_mandir}/man1
install -m 0644 docs/podman*.1 %{buildroot}/%{_mandir}/man1
install -m 0644 docs/build/man/podman*.1 %{buildroot}/%{_mandir}/man1
install -d %{buildroot}/%{_mandir}/man5
install -m 0644 docs/libpod*.5 %{buildroot}/%{_mandir}/man5
install -m 0644 docs/build/man/libpod*.5 %{buildroot}/%{_mandir}/man5
install -D -m 0644 cni/87-podman-bridge.conflist %{buildroot}/%{_sysconfdir}/cni/net.d/87-podman-bridge.conflist
install -D -m 0644 %{SOURCE2} %{buildroot}/%{_sysconfdir}/containers/libpod.conf
install -D -m 0644 %{SOURCE2} %{buildroot}/%{_datadir}/containers/libpod.conf