rgw/rgw_rest_log.cc \
rgw/rgw_rest_opstate.cc \
rgw/rgw_rest_replica_log.cc \
+ rgw/rgw_rest_config.cc \
rgw/rgw_http_client.cc \
rgw/rgw_swift.cc \
rgw/rgw_swift_auth.cc \
rgw/rgw_rest_log.h\
rgw/rgw_rest_opstate.h\
rgw/rgw_rest_replica_log.h\
+ rgw/rgw_rest_config.h\
rgw/rgw_usage.h\
rgw/rgw_user.h\
rgw/rgw_bucket.h\
#include "rgw_rest_opstate.h"
#include "rgw_replica_log.h"
#include "rgw_rest_replica_log.h"
+#include "rgw_rest_config.h"
#include "rgw_swift_auth.h"
#include "rgw_swift.h"
#include "rgw_log.h"
admin_resource->register_resource("log", new RGWRESTMgr_Log);
admin_resource->register_resource("opstate", new RGWRESTMgr_Opstate);
admin_resource->register_resource("replica_log", new RGWRESTMgr_ReplicaLog);
+ admin_resource->register_resource("config", new RGWRESTMgr_Config);
rest.register_resource(g_conf->rgw_admin_entry, admin_resource);
}
--- /dev/null
+// -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*-
+// vim: ts=8 sw=2 smarttab
+/*
+ * Ceph - scalable distributed file system
+ *
+ * Copyright (C) 2013 eNovance SAS <licensing@enovance.com>
+ *
+ * This is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software
+ * Foundation. See file COPYING.
+ *
+ */
+#include "common/ceph_json.h"
+#include "common/strtol.h"
+#include "rgw_rest.h"
+#include "rgw_op.h"
+#include "rgw_rados.h"
+#include "rgw_rest_s3.h"
+#include "rgw_rest_config.h"
+#include "rgw_client_io.h"
+#include "common/errno.h"
+
+#define dout_subsys ceph_subsys_rgw
+
+void RGWOp_RegionMap_Get::execute() {
+ http_ret = regionmap.read(g_ceph_context, store);
+ if (http_ret < 0) {
+ dout(5) << "failed to read region map" << dendl;
+ }
+}
+
+void RGWOp_RegionMap_Get::send_response() {
+ set_req_state_err(s, http_ret);
+ dump_errno(s);
+ end_header(s);
+
+ if (http_ret < 0)
+ return;
+
+ encode_json("region-map", regionmap, s->formatter);
+ flusher.flush();
+}
+
+RGWOp* RGWHandler_Config::op_get() {
+ return new RGWOp_RegionMap_Get;
+}
--- /dev/null
+// -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*-
+// vim: ts=8 sw=2 smarttab
+/*
+ * Ceph - scalable distributed file system
+ *
+ * Copyright (C) 2013 eNovance SAS <licensing@enovance.com>
+ *
+ * This is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software
+ * Foundation. See file COPYING.
+ *
+ */
+#ifndef CEPH_RGW_REST_CONFIG_H
+#define CEPH_RGW_REST_CONFIG_H
+
+class RGWOp_RegionMap_Get : public RGWRESTOp {
+ RGWRegionMap regionmap;
+public:
+ RGWOp_RegionMap_Get() {}
+ ~RGWOp_RegionMap_Get() {}
+
+ int verify_permission() {
+ return 0;
+ }
+ void execute();
+ virtual void send_response();
+ virtual const char *name() {
+ return "get_region_map";
+ }
+};
+
+class RGWHandler_Config : public RGWHandler_Auth_S3 {
+protected:
+ RGWOp *op_get();
+
+ int read_permissions(RGWOp*) {
+ return 0;
+ }
+public:
+ RGWHandler_Config() : RGWHandler_Auth_S3() {}
+ virtual ~RGWHandler_Config() {}
+};
+
+class RGWRESTMgr_Config : public RGWRESTMgr {
+public:
+ RGWRESTMgr_Config() {}
+ virtual ~RGWRESTMgr_Config() {}
+
+ virtual RGWHandler *get_handler(struct req_state *s){
+ return new RGWHandler_Config;
+ }
+};
+
+#endif