summaryrefslogtreecommitdiff
path: root/pkg/systemd/generate
diff options
context:
space:
mode:
authorPaul Holzinger <paul.holzinger@web.de>2021-02-15 15:46:00 +0100
committerPaul Holzinger <paul.holzinger@web.de>2021-02-16 09:51:09 +0100
commitbf083c185d766fb9eb79c08b2d831da0fa2abafd (patch)
treebff7197bd3fd501d49c9baa3ec605b0f7b06caae /pkg/systemd/generate
parentdf8ba7f4a92750bfb173b5486a663d1735d70b2d (diff)
downloadpodman-bf083c185d766fb9eb79c08b2d831da0fa2abafd.tar.gz
podman-bf083c185d766fb9eb79c08b2d831da0fa2abafd.tar.bz2
podman-bf083c185d766fb9eb79c08b2d831da0fa2abafd.zip
Fix broken podman generate systemd --new with pods
The unit generation accidentally escaped the %t in the pod id file path. This is a regression caused by #9178. This was not caught by the tests because the test itself was wrong. It used a full path instead of the systemd variable %t like the actual code does. Fixes #9373 Signed-off-by: Paul Holzinger <paul.holzinger@web.de>
Diffstat (limited to 'pkg/systemd/generate')
-rw-r--r--pkg/systemd/generate/containers.go6
-rw-r--r--pkg/systemd/generate/containers_test.go6
-rw-r--r--pkg/systemd/generate/pods.go2
3 files changed, 7 insertions, 7 deletions
diff --git a/pkg/systemd/generate/containers.go b/pkg/systemd/generate/containers.go
index abe159812..acee7be65 100644
--- a/pkg/systemd/generate/containers.go
+++ b/pkg/systemd/generate/containers.go
@@ -68,7 +68,7 @@ type containerInfo struct {
// If not nil, the container is part of the pod. We can use the
// podInfo to extract the relevant data.
- pod *podInfo
+ Pod *podInfo
}
const containerTemplate = headerTemplate + `
@@ -215,8 +215,8 @@ func executeContainerTemplate(info *containerInfo, options entities.GenerateSyst
)
// If the container is in a pod, make sure that the
// --pod-id-file is set correctly.
- if info.pod != nil {
- podFlags := []string{"--pod-id-file", info.pod.PodIDFile}
+ if info.Pod != nil {
+ podFlags := []string{"--pod-id-file", "{{{{.Pod.PodIDFile}}}}"}
startCommand = append(startCommand, podFlags...)
info.CreateCommand = filterPodFlags(info.CreateCommand)
}
diff --git a/pkg/systemd/generate/containers_test.go b/pkg/systemd/generate/containers_test.go
index be14e4c28..dad14ece9 100644
--- a/pkg/systemd/generate/containers_test.go
+++ b/pkg/systemd/generate/containers_test.go
@@ -170,7 +170,7 @@ Environment=PODMAN_SYSTEMD_UNIT=%n
Restart=always
TimeoutStopSec=70
ExecStartPre=/bin/rm -f %t/jadda-jadda.pid %t/jadda-jadda.ctr-id
-ExecStart=/usr/bin/podman run --conmon-pidfile %t/jadda-jadda.pid --cidfile %t/jadda-jadda.ctr-id --cgroups=no-conmon --pod-id-file /tmp/pod-foobar.pod-id-file --replace -d --name jadda-jadda --hostname hello-world awesome-image:latest command arg1 ... argN
+ExecStart=/usr/bin/podman run --conmon-pidfile %t/jadda-jadda.pid --cidfile %t/jadda-jadda.ctr-id --cgroups=no-conmon --pod-id-file %t/pod-foobar.pod-id-file --replace -d --name jadda-jadda --hostname hello-world awesome-image:latest command arg1 ... argN
ExecStop=/usr/bin/podman stop --ignore --cidfile %t/jadda-jadda.ctr-id -t 10
ExecStopPost=/usr/bin/podman rm --ignore -f --cidfile %t/jadda-jadda.ctr-id
PIDFile=%t/jadda-jadda.pid
@@ -487,8 +487,8 @@ WantedBy=multi-user.target default.target
PodmanVersion: "CI",
CreateCommand: []string{"I'll get stripped", "run", "-d", "--name", "jadda-jadda", "--hostname", "hello-world", "awesome-image:latest", "command", "arg1", "...", "argN"},
EnvVariable: EnvVariable,
- pod: &podInfo{
- PodIDFile: "/tmp/pod-foobar.pod-id-file",
+ Pod: &podInfo{
+ PodIDFile: "%t/pod-foobar.pod-id-file",
},
},
goodNameNewWithPodFile,
diff --git a/pkg/systemd/generate/pods.go b/pkg/systemd/generate/pods.go
index d6ede19af..ff8ce3a03 100644
--- a/pkg/systemd/generate/pods.go
+++ b/pkg/systemd/generate/pods.go
@@ -162,7 +162,7 @@ func PodUnits(pod *libpod.Pod, options entities.GenerateSystemdOptions) (map[str
}
units[podInfo.ServiceName] = out
for _, info := range containerInfos {
- info.pod = podInfo
+ info.Pod = podInfo
out, err := executeContainerTemplate(info, options)
if err != nil {
return nil, err