diff options
author | Matthew Heon <mheon@redhat.com> | 2018-11-28 15:27:09 -0500 |
---|---|---|
committer | Matthew Heon <mheon@redhat.com> | 2018-12-02 13:38:36 -0500 |
commit | 6e167029478e29d24ff75d259123e7f7e093b6ff (patch) | |
tree | 823dd8278ba5281ff5e588cbeddd222e278ec8db /libpod/state.go | |
parent | 41f250c4861b9950b63dc7501211d13b6e0bd5ed (diff) | |
download | podman-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.go | 17 |
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 |