From b367855d5f87bffc980cbce28b35363a4e21ba7c Mon Sep 17 00:00:00 2001 From: Daniel J Walsh Date: Mon, 7 Jan 2019 10:01:44 -0500 Subject: Add the configuration file used to setup storage to podman info Users have no idea what storage configuration file is used to setup storage, so adding this to podman info, should make it easier to discover. This requires a revendor of containers/storage Signed-off-by: Daniel J Walsh --- docs/podman-info.1.md | 1 + libpod/info.go | 2 ++ pkg/util/utils.go | 10 +++++++++- vendor/github.com/containers/storage/store.go | 5 +++-- 4 files changed, 15 insertions(+), 3 deletions(-) diff --git a/docs/podman-info.1.md b/docs/podman-info.1.md index 478f79467..836a2c420 100644 --- a/docs/podman-info.1.md +++ b/docs/podman-info.1.md @@ -61,6 +61,7 @@ registries: - docker.io - registry.access.redhat.com store: + ConfigFile: /etc/containers/storage.conf ContainerStore: number: 37 GraphDriverName: overlay diff --git a/libpod/info.go b/libpod/info.go index 7044eba6a..a98f93897 100644 --- a/libpod/info.go +++ b/libpod/info.go @@ -13,6 +13,7 @@ import ( "time" "github.com/containers/libpod/pkg/rootless" + "github.com/containers/libpod/pkg/util" "github.com/containers/libpod/utils" "github.com/containers/storage/pkg/system" "github.com/pkg/errors" @@ -115,6 +116,7 @@ func (r *Runtime) hostInfo() (map[string]interface{}, error) { func (r *Runtime) storeInfo() (map[string]interface{}, error) { // lets say storage driver in use, number of images, number of containers info := map[string]interface{}{} + info["ConfigFile"] = util.StorageConfigFile() info["GraphRoot"] = r.store.GraphRoot() info["RunRoot"] = r.store.RunRoot() info["GraphDriverName"] = r.store.GraphDriverName() diff --git a/pkg/util/utils.go b/pkg/util/utils.go index a6f52cb3e..20ba20a52 100644 --- a/pkg/util/utils.go +++ b/pkg/util/utils.go @@ -314,7 +314,7 @@ func GetDefaultStoreOptions() (storage.StoreOptions, string, error) { return storageOpts, volumePath, err } - storageConf := filepath.Join(os.Getenv("HOME"), ".config/containers/storage.conf") + storageConf := StorageConfigFile() if _, err := os.Stat(storageConf); err == nil { storage.ReloadConfigurationFile(storageConf, &storageOpts) } else if os.IsNotExist(err) { @@ -334,3 +334,11 @@ func GetDefaultStoreOptions() (storage.StoreOptions, string, error) { } return storageOpts, volumePath, nil } + +// StorageConfigFile returns the path to the storage config file used +func StorageConfigFile() string { + if rootless.IsRootless() { + return filepath.Join(os.Getenv("HOME"), ".config/containers/storage.conf") + } + return storage.DefaultConfigFile +} diff --git a/vendor/github.com/containers/storage/store.go b/vendor/github.com/containers/storage/store.go index a166799c6..5877c3b06 100644 --- a/vendor/github.com/containers/storage/store.go +++ b/vendor/github.com/containers/storage/store.go @@ -2992,7 +2992,8 @@ func copyStringInterfaceMap(m map[string]interface{}) map[string]interface{} { return ret } -const defaultConfigFile = "/etc/containers/storage.conf" +// DefaultConfigFile path to the system wide storage.conf file +const DefaultConfigFile = "/etc/containers/storage.conf" // ThinpoolOptionsConfig represents the "storage.options.thinpool" // TOML config table. @@ -3237,7 +3238,7 @@ func init() { DefaultStoreOptions.GraphRoot = "/var/lib/containers/storage" DefaultStoreOptions.GraphDriverName = "" - ReloadConfigurationFile(defaultConfigFile, &DefaultStoreOptions) + ReloadConfigurationFile(DefaultConfigFile, &DefaultStoreOptions) } func GetDefaultMountOptions() ([]string, error) { -- cgit v1.2.3-54-g00ecf