summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libpod/boltdb_state.go8
-rw-r--r--libpod/boltdb_state_internal.go20
2 files changed, 28 insertions, 0 deletions
diff --git a/libpod/boltdb_state.go b/libpod/boltdb_state.go
index 5502ec1b4..3584c9a9d 100644
--- a/libpod/boltdb_state.go
+++ b/libpod/boltdb_state.go
@@ -69,6 +69,14 @@ func NewBoltState(path, lockDir string, runtime *Runtime) (State, error) {
if err != nil {
return errors.Wrapf(err, "error creating container-depends bucket")
}
+ _, err = tx.CreateBucketIfNotExists(podBkt)
+ if err != nil {
+ return errors.Wrapf(err, "error creating pod bucket")
+ }
+ _, err = tx.CreateBucketIfNotExists(podContainersBkt)
+ if err != nil {
+ return errors.Wrapf(err, "error creating pod-containers bucket")
+ }
return nil
})
if err != nil {
diff --git a/libpod/boltdb_state_internal.go b/libpod/boltdb_state_internal.go
index 8b4e8e28c..c8aa4adbf 100644
--- a/libpod/boltdb_state_internal.go
+++ b/libpod/boltdb_state_internal.go
@@ -17,6 +17,8 @@ const (
netNSName = "net-ns"
runtimeConfigName = "runtime-config"
ctrDependsName = "container-depends"
+ podName = "pod"
+ podContainersName = "pod-containers"
)
var (
@@ -27,6 +29,8 @@ var (
netNSBkt = []byte(netNSName)
runtimeConfigBkt = []byte(runtimeConfigName)
ctrDependsBkt = []byte(ctrDependsName)
+ podBkt = []byte(podName)
+ podContainersBkt = []byte(podContainersName)
)
// Check if the configuration of the database is compatible with the
@@ -158,6 +162,22 @@ func getCtrDependsBucket(tx *bolt.Tx) (*bolt.Bucket, error) {
return bkt, nil
}
+func getPodBucket(tx *bolt.Tx) (*bolt.Bucket, error) {
+ bkt := tx.Bucket(podBkt)
+ if bkt == nil {
+ return nil, errors.Wrapf(ErrDBBadConfig, "pods bucket not found in DB")
+ }
+ return bkt, nil
+}
+
+func getPodContainersBucket(tx *bolt.Tx) (*bolt.Bucket, error) {
+ bkt := tx.Bucket(podContainersBkt)
+ if bkt == nil {
+ return nil, errors.Wrapf(ErrDBBadConfig, "pod containers bucket not found in DB")
+ }
+ return bkt, nil
+}
+
func (s *BoltState) getContainerFromDB(id []byte, ctr *Container, config, state, netNS *bolt.Bucket) error {
configBytes := config.Get(id)
if configBytes == nil {