]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
rgw: udpate options yaml file so LDAP uri isn't an invalid example 56720/head
authorJ. Eric Ivancich <ivancich@redhat.com>
Wed, 3 Apr 2024 03:10:12 +0000 (23:10 -0400)
committerJ. Eric Ivancich <ivancich@redhat.com>
Thu, 4 Apr 2024 23:47:10 +0000 (19:47 -0400)
LDAP tries to bind the URI configuration option when RGW starts. The
default value is an example used to show the form of the URI and is
not itself valid. The default value is used, unless overrideen, and
can cause delays in start-up in some situations. The example is now
provided in the description and the default is the empty string.

Signed-off-by: J. Eric Ivancich <ivancich@redhat.com>
(cherry picked from commit 236f1dfa9ae507940a53301f31da7974456c82fe)

src/common/options/rgw.yaml.in
src/rgw/rgw_appmain.cc

index 52e69dae959ca45b6e9621468da278fe07fa78a8..27c76d6803ab62e442b214ce28c96861870de03c 100644 (file)
@@ -913,8 +913,8 @@ options:
 - name: rgw_ldap_uri
   type: str
   level: advanced
-  desc: Space-separated list of LDAP servers in URI format.
-  default: ldaps://<ldap.your.domain>
+  desc: Space-separated list of LDAP servers in URI format, e.g., "ldaps://<ldap.your.domain>".
+  default:
   services:
   - rgw
   with_legacy: true
index b4aa1019a73983924072f2b18baa9e2366853d20..bba32e3dfa8dc4c6601d366a640dd3185e3b0673 100644 (file)
@@ -381,6 +381,11 @@ void rgw::AppMain::init_ldap()
   const string &ldap_dnattr = cct->_conf->rgw_ldap_dnattr;
   std::string ldap_bindpw = parse_rgw_ldap_bindpw(cct);
 
+  if (ldap_uri.empty()) {
+    derr << "LDAP not started since no server URIs were provided in the configuration." << dendl;
+    return;
+  }
+
   ldh.reset(new rgw::LDAPHelper(ldap_uri, ldap_binddn,
             ldap_bindpw.c_str(), ldap_searchdn, ldap_searchfilter, ldap_dnattr));
   ldh->init();
@@ -603,7 +608,7 @@ void rgw::AppMain::shutdown(std::function<void(void)> finalize_async_signals)
     fe->stop();
   }
 
-  ldh.reset(nullptr); // deletes
+  ldh.reset(nullptr); // deletes ldap helper if it was created
   rgw_log_usage_finalize();
 
   delete olog;