summaryrefslogtreecommitdiff
path: root/libpod/state.go
diff options
context:
space:
mode:
authorMatthew Heon <mheon@redhat.com>2018-11-28 15:27:09 -0500
committerMatthew Heon <mheon@redhat.com>2018-12-02 13:38:36 -0500
commit6e167029478e29d24ff75d259123e7f7e093b6ff (patch)
tree823dd8278ba5281ff5e588cbeddd222e278ec8db /libpod/state.go
parent41f250c4861b9950b63dc7501211d13b6e0bd5ed (diff)
downloadpodman-6e167029478e29d24ff75d259123e7f7e093b6ff.tar.gz
podman-6e167029478e29d24ff75d259123e7f7e093b6ff.tar.bz2
podman-6e167029478e29d24ff75d259123e7f7e093b6ff.zip
Add ability to retrieve runtime configuration from DB
When we create a Libpod database, we store a number of runtime configuration fields in it. If we can retrieve those, we can use them to configure the runtime to match the DB instead of inbuilt defaults, helping to ensure that we don't error in cases where our compiled-in defaults changed. Signed-off-by: Matthew Heon <mheon@redhat.com>
Diffstat (limited to 'libpod/state.go')
-rw-r--r--libpod/state.go17
1 files changed, 17 insertions, 0 deletions
diff --git a/libpod/state.go b/libpod/state.go
index 273e81318..7f4efa21b 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,13 @@ 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)
+
// 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