]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
common/config_proxy: added 'get_config_values' method
authorJason Dillaman <dillaman@redhat.com>
Thu, 29 Oct 2020 14:06:06 +0000 (10:06 -0400)
committerJason Dillaman <dillaman@redhat.com>
Thu, 29 Oct 2020 18:14:38 +0000 (14:14 -0400)
Expose the ability to retrieve the ConfigValues from an existing
ConfigProxy object. When combined with the newly exposed
'set_config_values' method, it will allow the safe bulk-updating
of configuration options. This also removes the original private
static version of 'get_config_values'.

Signed-off-by: Jason Dillaman <dillaman@redhat.com>
src/common/config_proxy.h

index fd7c2b98063cb3a4516b4abe6524e71fb38f4cbe..2d96cf01d66c62107837b33dceb01662d3d0fcbf 100644 (file)
 // member methods.
 namespace ceph::common {
 class ConfigProxy {
-  static ConfigValues get_config_values(const ConfigProxy &config_proxy) {
-    std::lock_guard locker(config_proxy.lock);
-    return config_proxy.values;
-  }
-
   /**
    * The current values of all settings described by the schema
    */
@@ -115,7 +110,7 @@ public:
     : config{values, obs_mgr, is_daemon}
   {}
   explicit ConfigProxy(const ConfigProxy &config_proxy)
-    : values(get_config_values(config_proxy)),
+    : values(config_proxy.get_config_values()),
       config{values, obs_mgr, config_proxy.config.is_daemon}
   {}
   const ConfigValues* operator->() const noexcept {
@@ -124,6 +119,10 @@ public:
   ConfigValues* operator->() noexcept {
     return &values;
   }
+  ConfigValues get_config_values() const {
+    std::lock_guard l{lock};
+    return values;
+  }
   void set_config_values(const ConfigValues& val) {
 #ifndef WITH_SEASTAR
     std::lock_guard l{lock};