added RGW and rgw-admin to libcephd.
Signed-off-by: Bassam Tabbara <bassam.tabbara@quantum.com>
*/
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
cephd_cls_kvs
cephd_rados
cephd_rbd
+ cephd_rgw
cephd_common
common_utf8
erasure_code
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)
{
{
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);
+}
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
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
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()
}
};
-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);
}
}
-int signal_fd_init()
+static int signal_fd_init()
{
return socketpair(AF_UNIX, SOCK_STREAM, 0, signal_fd);
}
}
};
-int usage()
+static int usage()
{
cerr << "usage: radosgw [options...]" << std::endl;
cerr << "options:\n";
/*
* 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.