summaryrefslogtreecommitdiff
path: root/libpod
diff options
context:
space:
mode:
authorOpenShift Merge Robot <openshift-merge-robot@users.noreply.github.com>2019-07-03 00:37:31 +0200
committerGitHub <noreply@github.com>2019-07-03 00:37:31 +0200
commit3fa818a036c4df4987abd2e790d5c9f5259ccfec (patch)
tree6b43a58782e8e73813fcea12dfba498a79f721ff /libpod
parent55e028a12ee003e057c65e376fe4b723d28ae52e (diff)
parentd0a0a3fbd9ebb2942c761f14fc56f3a470ae1834 (diff)
downloadpodman-3fa818a036c4df4987abd2e790d5c9f5259ccfec.tar.gz
podman-3fa818a036c4df4987abd2e790d5c9f5259ccfec.tar.bz2
podman-3fa818a036c4df4987abd2e790d5c9f5259ccfec.zip
Merge pull request #3465 from baude/nostore
configure runtime without store
Diffstat (limited to 'libpod')
-rw-r--r--libpod/options.go9
-rw-r--r--libpod/runtime.go8
2 files changed, 17 insertions, 0 deletions
diff --git a/libpod/options.go b/libpod/options.go
index 0f23a6c97..78634e953 100644
--- a/libpod/options.go
+++ b/libpod/options.go
@@ -300,6 +300,15 @@ func WithTmpDir(dir string) RuntimeOption {
}
}
+// WithNoStore sets a bool on the runtime that we do not need
+// any containers storage.
+func WithNoStore() RuntimeOption {
+ return func(rt *Runtime) error {
+ rt.noStore = true
+ return nil
+ }
+}
+
// WithMaxLogSize sets the maximum size of container logs.
// Positive sizes are limits in bytes, -1 is unlimited.
func WithMaxLogSize(limit int64) RuntimeOption {
diff --git a/libpod/runtime.go b/libpod/runtime.go
index 02aa76731..e358fe4c4 100644
--- a/libpod/runtime.go
+++ b/libpod/runtime.go
@@ -125,6 +125,9 @@ type Runtime struct {
// mechanism to read and write even logs
eventer events.Eventer
+
+ // noStore indicates whether we need to interact with a store or not
+ noStore bool
}
// RuntimeConfig contains configuration options used to set up the runtime
@@ -784,11 +787,14 @@ func makeRuntime(ctx context.Context, runtime *Runtime) (err error) {
var store storage.Store
if os.Geteuid() != 0 {
logrus.Debug("Not configuring container store")
+ } else if runtime.noStore {
+ logrus.Debug("No store required. Not opening container store.")
} else {
store, err = storage.GetStore(runtime.config.StorageConfig)
if err != nil {
return err
}
+ err = nil
defer func() {
if err != nil && store != nil {
@@ -1148,6 +1154,8 @@ func (r *Runtime) Shutdown(force bool) error {
}
var lastError error
+ // If no store was requested, it can bew nil and there is no need to
+ // attempt to shut it down
if r.store != nil {
if _, err := r.store.Shutdown(force); err != nil {
lastError = errors.Wrapf(err, "Error shutting down container storage")