]> git.proxmox.com Git - ceph.git/blobdiff - ceph/src/rgw/rgw_main.cc
update sources to v12.1.1
[ceph.git] / ceph / src / rgw / rgw_main.cc
index f4e57be713a9268fd22fc28072775ff46955d0d8..85ec5fec0c0ecf0174841a2255b1598e9f0bcac2 100644 (file)
@@ -26,6 +26,7 @@
 #include "common/safe_io.h"
 #include "include/compat.h"
 #include "include/str_list.h"
+#include "include/stringify.h"
 #include "rgw_common.h"
 #include "rgw_rados.h"
 #include "rgw_user.h"
@@ -470,15 +471,21 @@ int main(int argc, const char **argv)
   register_async_signal_handler(SIGUSR1, handle_sigterm);
   sighandler_alrm = signal(SIGALRM, godown_alarm);
 
+  map<string, string> service_map_meta;
+  service_map_meta["pid"] = stringify(getpid());
+
   list<RGWFrontend *> fes;
 
+  int fe_count = 0;
+
   for (multimap<string, RGWFrontendConfig *>::iterator fiter = fe_map.begin();
-       fiter != fe_map.end(); ++fiter) {
+       fiter != fe_map.end(); ++fiter, ++fe_count) {
     RGWFrontendConfig *config = fiter->second;
     string framework = config->get_framework();
     RGWFrontend *fe = NULL;
 
     if (framework == "civetweb" || framework == "mongoose") {
+      framework = "civetweb";
       std::string uri_prefix;
       config->get_val("prefix", "", &uri_prefix);
 
@@ -509,6 +516,7 @@ int main(int argc, const char **argv)
 #endif /* WITH_RADOSGW_BEAST_FRONTEND */
 #if defined(WITH_RADOSGW_FCGI_FRONTEND)
     else if (framework == "fastcgi" || framework == "fcgi") {
+      framework = "fastcgi";
       std::string uri_prefix;
       config->get_val("prefix", "", &uri_prefix);
       RGWProcessEnv fcgi_pe = { store, &rest, olog, 0, uri_prefix, auth_registry };
@@ -517,6 +525,9 @@ int main(int argc, const char **argv)
     }
 #endif /* WITH_RADOSGW_FCGI_FRONTEND */
 
+    service_map_meta["frontend_type#" + stringify(fe_count)] = framework;
+    service_map_meta["frontend_config#" + stringify(fe_count)] = config->get_config();
+
     if (fe == NULL) {
       dout(0) << "WARNING: skipping unknown framework: " << framework << dendl;
       continue;
@@ -537,10 +548,18 @@ int main(int argc, const char **argv)
     fes.push_back(fe);
   }
 
+  r = store->register_to_service_map("rgw", service_map_meta);
+  if (r < 0) {
+    derr << "ERROR: failed to register to service map: " << cpp_strerror(-r) << dendl;
+
+    /* ignore error */
+  }
+
+
   // add a watcher to respond to realm configuration changes
   RGWPeriodPusher pusher(store);
   RGWFrontendPauser pauser(fes, &pusher);
-  RGWRealmReloader reloader(store, &pauser);
+  RGWRealmReloader reloader(store, service_map_meta, &pauser);
 
   preloader = &reloader;