summaryrefslogtreecommitdiff
path: root/libpod/state.go
diff options
context:
space:
mode:
authorDaniel J Walsh <dwalsh@redhat.com>2018-12-06 03:20:16 -0500
committerDaniel J Walsh <dwalsh@redhat.com>2018-12-06 03:20:16 -0500
commit40678b119c0186bf7c56dc09d131e697c55cb9fd (patch)
treedfb1cc13b0bdc1abad1ada51970bf0ac03d46810 /libpod/state.go
parentdcb68d1aa24b2dd00d793f5a66f96cc5403b43c3 (diff)
parent75b19ca8abe1957f3c48035767960a6b20c10519 (diff)
downloadpodman-40678b119c0186bf7c56dc09d131e697c55cb9fd.tar.gz
podman-40678b119c0186bf7c56dc09d131e697c55cb9fd.tar.bz2
podman-40678b119c0186bf7c56dc09d131e697c55cb9fd.zip
Merge branch 'master' of github.com:containers/libpod into vendor
Diffstat (limited to 'libpod/state.go')
-rw-r--r--libpod/state.go26
1 files changed, 26 insertions, 0 deletions
diff --git a/libpod/state.go b/libpod/state.go
index 273e81318..06c2003d8 100644
--- a/libpod/state.go
+++ b/libpod/state.go
@@ -1,5 +1,15 @@
package libpod
+// DBConfig is a set of Libpod runtime configuration settings that are saved
+// in a State when it is first created, and can subsequently be retrieved.
+type DBConfig struct {
+ LibpodRoot string
+ LibpodTmp string
+ StorageRoot string
+ StorageTmp string
+ GraphDriver string
+}
+
// State is a storage backend for libpod's current state.
// A State is only initialized once per instance of libpod.
// As such, initialization methods for State implementations may safely assume
@@ -21,6 +31,22 @@ type State interface {
// Refresh clears container and pod states after a reboot
Refresh() error
+ // GetDBConfig retrieves several paths configured within the database
+ // when it was created - namely, Libpod root and tmp dirs, c/storage
+ // root and tmp dirs, and c/storage graph driver.
+ // This is not implemented by the in-memory state, as it has no need to
+ // validate runtime configuration.
+ GetDBConfig() (*DBConfig, error)
+
+ // ValidateDBConfig validates the config in the given Runtime struct
+ // against paths stored in the configured database.
+ // Libpod root and tmp dirs and c/storage root and tmp dirs and graph
+ // driver are validated.
+ // This is not implemented by the in-memory state, as it has no need to
+ // validate runtime configuration that may change over multiple runs of
+ // the program.
+ ValidateDBConfig(runtime *Runtime) error
+
// SetNamespace() sets the namespace for the store, and will determine
// what containers are retrieved with container and pod retrieval calls.
// A namespace of "", the empty string, acts as no namespace, and