]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
embedded: add RGW to libcephd
authorBassam Tabbara <bassam.tabbara@quantum.com>
Mon, 21 Nov 2016 04:14:04 +0000 (20:14 -0800)
committerBassam Tabbara <bassam.tabbara@quantum.com>
Wed, 11 Jan 2017 22:02:59 +0000 (14:02 -0800)
added RGW and rgw-admin to libcephd.

Signed-off-by: Bassam Tabbara <bassam.tabbara@quantum.com>
src/include/cephd/libcephd.h
src/libcephd/CMakeLists.txt
src/libcephd/libcephd.cc
src/rgw/CMakeLists.txt
src/rgw/rgw_admin.cc
src/rgw/rgw_main.cc

index 5538c058ad15d81576f9f295fe74c63e3e6c594a..0ec6bb7694b17106a947cff7ad6822801a705778 100644 (file)
@@ -85,6 +85,24 @@ CEPH_LIBCEPHD_API int cephd_run_osd(int argc, const char **argv);
  */
 CEPH_LIBCEPHD_API int cephd_run_mds(int argc, const char **argv);
 
+/**
+ * Runs ceph-rgw passing in command line args
+ *
+ * @param argc number of parameters
+ * @param argv array of string arguments
+ * @returns 0 on success, negative error code on failure
+ */
+CEPH_LIBCEPHD_API int cephd_run_rgw(int argc, const char **argv);
+
+/**
+ * Runs radosgw-admin passing in command line args
+ *
+ * @param argc number of parameters
+ * @param argv array of string arguments
+ * @returns 0 on success, negative error code on failure
+ */
+CEPH_LIBCEPHD_API int cephd_run_rgw_admin(int argc, const char **argv);
+
 #ifdef __cplusplus
 }
 #endif
index 0eb06371f2a0f0677b2a167612b9c6475bcfe9f6..c2805ea753099f7874897d9752118d618c8bd9de 100644 (file)
@@ -16,6 +16,7 @@ set(merge_libs
   cephd_cls_kvs
   cephd_rados
   cephd_rbd
+  cephd_rgw
   cephd_common
   common_utf8
   erasure_code
index 1139b5eb5db13f3cdf00dbf5f2fc7a3e2764b9d9..c653879d6c910c09eb330955d0aa797057110d58 100644 (file)
@@ -224,6 +224,8 @@ void cephd_preload_rados_classes(OSD *osd)
 extern "C" int cephd_mon(int argc, const char **argv);
 extern "C" int cephd_osd(int argc, const char **argv);
 extern "C" int cephd_mds(int argc, const char **argv);
+extern "C" int cephd_rgw(int argc, const char **argv);
+extern "C" int cephd_rgw_admin(int argc, const char **argv);
 
 int cephd_run_mon(int argc, const char **argv)
 {
@@ -239,3 +241,14 @@ int cephd_run_mds(int argc, const char **argv)
 {
     return cephd_mds(argc, argv);
 }
+
+
+int cephd_run_rgw(int argc, const char **argv)
+{
+    return cephd_rgw(argc, argv);
+}
+
+int cephd_run_rgw_admin(int argc, const char **argv)
+{
+    return cephd_rgw_admin(argc, argv);
+}
index 2ba6267326e47554782f63dc57317e30ae578024..cd8a8f5193157c4e0396078efc5004f5713183eb 100644 (file)
@@ -121,8 +121,7 @@ set(radosgw_srcs
   rgw_loadgen_process.cc
   rgw_civetweb.cc
   rgw_civetweb_frontend.cc
-  rgw_civetweb_log.cc
-  rgw_main.cc)
+  rgw_civetweb_log.cc)
 
 if (WITH_RADOSGW_ASIO_FRONTEND)
   list(APPEND radosgw_srcs
@@ -130,8 +129,12 @@ if (WITH_RADOSGW_ASIO_FRONTEND)
     rgw_asio_frontend.cc)
 endif (WITH_RADOSGW_ASIO_FRONTEND)
 
-add_executable(radosgw ${radosgw_srcs}  $<TARGET_OBJECTS:civetweb_common_objs>)
-target_link_libraries(radosgw rgw_a librados
+add_library(radosgw_a STATIC ${radosgw_srcs}
+  $<TARGET_OBJECTS:civetweb_common_objs>)
+target_link_libraries(radosgw_a rgw_a)
+
+add_executable(radosgw rgw_main.cc)
+target_link_libraries(radosgw radosgw_a librados
   cls_rgw_client cls_lock_client cls_refcount_client
   cls_log_client cls_statelog_client cls_timeindex_client
   cls_version_client cls_replica_log_client cls_user_client
@@ -197,3 +200,11 @@ target_link_libraries(rgw LINK_PRIVATE
 set_target_properties(rgw PROPERTIES OUTPUT_NAME rgw VERSION 2.0.0
   SOVERSION 2)
 install(TARGETS rgw DESTINATION ${CMAKE_INSTALL_LIBDIR})
+
+if(WITH_EMBEDDED)
+  include(MergeStaticLibraries)
+  add_library(cephd_rgw_base STATIC rgw_main.cc ${radosgw_admin_srcs})
+  set_target_properties(cephd_rgw_base PROPERTIES COMPILE_DEFINITIONS BUILDING_FOR_EMBEDDED)
+  merge_static_libraries(cephd_rgw cephd_rgw_base rgw_a radosgw_a)
+  target_link_libraries(cephd_rgw fcgi)
+endif()
index 594fdc62f43bcda85fb6845f94c6381f79f9375c..325de4f58884969532363faa1ea7eb4217b8b2df 100644 (file)
@@ -2238,7 +2238,11 @@ public:
   }
 };
 
-int main(int argc, char **argv)
+#ifdef BUILDING_FOR_EMBEDDED
+extern "C" int cephd_rgw_admin(int argc, const char **argv)
+#else
+int main(int argc, const char **argv)
+#endif
 {
   vector<const char*> args;
   argv_to_vec(argc, (const char **)argv, args);
index 4c4685ec1434b14bb09abe742a785ab3b002ca1c..88be22651f101eb3c7021d2069b9d89c5bc8f57b 100644 (file)
@@ -96,7 +96,7 @@ static void wait_shutdown()
   }
 }
 
-int signal_fd_init()
+static int signal_fd_init()
 {
   return socketpair(AF_UNIX, SOCK_STREAM, 0, signal_fd);
 }
@@ -153,7 +153,7 @@ public:
   }
 };
 
-int usage()
+static int usage()
 {
   cerr << "usage: radosgw [options...]" << std::endl;
   cerr << "options:\n";
@@ -190,7 +190,11 @@ static void reloader_handler(int signum)
 /*
  * start up the RADOS connection and then handle HTTP messages as they come in
  */
+#ifdef BUILDING_FOR_EMBEDDED
+extern "C" int cephd_rgw(int argc, const char **argv)
+#else
 int main(int argc, const char **argv)
+#endif
 {
   // dout() messages will be sent to stderr, but FCGX wants messages on stdout
   // Redirect stderr to stdout.