summaryrefslogtreecommitdiff
path: root/libpod
diff options
context:
space:
mode:
authorOpenShift Merge Robot <openshift-merge-robot@users.noreply.github.com>2021-09-29 04:36:08 -0400
committerGitHub <noreply@github.com>2021-09-29 04:36:08 -0400
commit453c49c488dd6518b33393e04c04ebc32ce61ee9 (patch)
tree7ca8e1f95ff893e8665890a042ef3f97f4bb5049 /libpod
parentcd10304dca72ef030b64142885518e6dc0d3e4af (diff)
parent678b554b1fe74bf636802632224c994b4768edc9 (diff)
downloadpodman-453c49c488dd6518b33393e04c04ebc32ce61ee9.tar.gz
podman-453c49c488dd6518b33393e04c04ebc32ce61ee9.tar.bz2
podman-453c49c488dd6518b33393e04c04ebc32ce61ee9.zip
Merge pull request #11774 from mheon/fix_11750
Ensure pod ID bucket is properly updated on rename
Diffstat (limited to 'libpod')
-rw-r--r--libpod/boltdb_state.go17
1 files changed, 17 insertions, 0 deletions
diff --git a/libpod/boltdb_state.go b/libpod/boltdb_state.go
index 612908ac2..1242a8d6b 100644
--- a/libpod/boltdb_state.go
+++ b/libpod/boltdb_state.go
@@ -1756,6 +1756,23 @@ func (s *BoltState) SafeRewriteContainerConfig(ctr *Container, oldName, newName
if err := allCtrsBkt.Put([]byte(ctr.ID()), []byte(newName)); err != nil {
return errors.Wrapf(err, "error renaming container %s in all containers bucket in DB", ctr.ID())
}
+ if ctr.config.Pod != "" {
+ podsBkt, err := getPodBucket(tx)
+ if err != nil {
+ return err
+ }
+ podBkt := podsBkt.Bucket([]byte(ctr.config.Pod))
+ if podBkt == nil {
+ return errors.Wrapf(define.ErrInternal, "bucket for pod %s does not exist", ctr.config.Pod)
+ }
+ podCtrBkt := podBkt.Bucket(containersBkt)
+ if podCtrBkt == nil {
+ return errors.Wrapf(define.ErrInternal, "pod %s does not have a containers bucket", ctr.config.Pod)
+ }
+ if err := podCtrBkt.Put([]byte(ctr.ID()), []byte(newName)); err != nil {
+ return errors.Wrapf(err, "error renaming container %s in pod %s members bucket", ctr.ID(), ctr.config.Pod)
+ }
+ }
}
}