From efefc871d2c8835a2939e56710182bc2ce519c80 Mon Sep 17 00:00:00 2001 From: Jeff Layton Date: Wed, 9 Jan 2019 07:49:46 -0500 Subject: [PATCH] ceph: add --force to mgr settings Signed-off-by: Jeff Layton --- pkg/daemon/ceph/client/mgr.go | 7 +++++-- pkg/daemon/ceph/mgr/init.go | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/pkg/daemon/ceph/client/mgr.go b/pkg/daemon/ceph/client/mgr.go index 82a070f41..b1eb34bb8 100755 --- a/pkg/daemon/ceph/client/mgr.go +++ b/pkg/daemon/ceph/client/mgr.go @@ -20,11 +20,11 @@ func MgrDisableModule(context *clusterd.Context, clusterName, name string) error // MgrSetAllConfig applies a setting for all mgr daemons func MgrSetAllConfig(context *clusterd.Context, clusterName, cephVersionName, key, val string) (bool, error) { - return MgrSetConfig(context, clusterName, "", cephVersionName, key, val) + return MgrSetConfig(context, clusterName, "", cephVersionName, key, val, false) } // MgrSetConfig applies a setting for a single mgr daemon -func MgrSetConfig(context *clusterd.Context, clusterName, mgrName, cephVersionName, key, val string) (bool, error) { +func MgrSetConfig(context *clusterd.Context, clusterName, mgrName, cephVersionName, key, val string, force bool) (bool, error) { var getArgs, setArgs []string mgrID := fmt.Sprintf("mgr.%s", mgrName) if cephVersionName == cephv1.Luminous || cephVersionName == "" { @@ -41,6 +41,9 @@ func MgrSetConfig(context *clusterd.Context, clusterName, mgrName, cephVersionNa } else { setArgs = append(setArgs, "config", "set", mgrID, key, val) } + if force && cephv1.VersionAtLeast(cephVersionName, cephv1.Nautilus) { + setArgs = append(setArgs, "--force") + } } // Retrieve previous value to monitor changes diff --git a/pkg/daemon/ceph/mgr/init.go b/pkg/daemon/ceph/mgr/init.go index 98b289040..58ea60250 100644 --- a/pkg/daemon/ceph/mgr/init.go +++ b/pkg/daemon/ceph/mgr/init.go @@ -86,7 +86,7 @@ func setServerAddr(context *clusterd.Context, config *Config) error { modules := []string{"prometheus", "dashboard"} for _, module := range modules { settingPath := fmt.Sprintf("mgr/%s/server_addr", module) - if _, err := client.MgrSetConfig(context, clusterName, config.Name, config.CephVersionName, settingPath, config.ModuleServerAddr); err != nil { + if _, err := client.MgrSetConfig(context, clusterName, config.Name, config.CephVersionName, settingPath, config.ModuleServerAddr, true); err != nil { return fmt.Errorf("setting %s server_addr failed. %+v", module, err) } }