]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
crimson/os: add CyanStore::stat()
authorKefu Chai <kchai@redhat.com>
Fri, 21 Jun 2019 10:59:33 +0000 (18:59 +0800)
committerKefu Chai <kchai@redhat.com>
Fri, 21 Jun 2019 12:31:47 +0000 (20:31 +0800)
so crimson-osd can add itself to CRUSH map when booting up.

Signed-off-by: Kefu Chai <kchai@redhat.com>
src/crimson/os/cyan_store.cc
src/crimson/os/cyan_store.h
src/crimson/os/futurized_store.h

index 016a63e5f644dc9c8e0ca4bb8c69ff36dd09d1fb..2c2aa06ce086ce4e2c484fdad21deac5993237d6 100644 (file)
@@ -4,10 +4,12 @@
 #include <fmt/ostream.h>
 
 #include "common/safe_io.h"
+#include "os/Transaction.h"
+
 #include "crimson/common/buffer_io.h"
+#include "crimson/common/config_proxy.h"
 #include "crimson/os/cyan_collection.h"
 #include "crimson/os/cyan_object.h"
-#include "os/Transaction.h"
 
 namespace {
   seastar::logger& logger() {
@@ -99,6 +101,15 @@ seastar::future<> CyanStore::mkfs()
   });
 }
 
+store_statfs_t CyanStore::stat() const
+{
+  logger().debug("{}", __func__);
+  store_statfs_t st;
+  st.total = ceph::common::local_conf().get_val<Option::size_t>("memstore_device_bytes");
+  st.available = st.total - used_bytes;
+  return st;
+}
+
 seastar::future<std::vector<ghobject_t>, ghobject_t>
 CyanStore::list_objects(CollectionRef c,
                         const ghobject_t& start,
index 4da2373b968efa92f4643096263727a76c52e5d9..028e733fad93f477b3d0c78c8ff4e268b29fa253 100644 (file)
@@ -42,6 +42,8 @@ public:
   seastar::future<> umount() final;
 
   seastar::future<> mkfs() final;
+  store_statfs_t stat() const final;
+
   seastar::future<ceph::bufferlist> read(CollectionRef c,
                                   const ghobject_t& oid,
                                   uint64_t offset,
index 49ad867c123ea45ff7c52012975bf701dceba491..ab4adfd35275bc2dc095493c25298b6885ece35b 100644 (file)
@@ -62,6 +62,8 @@ public:
   virtual seastar::future<> umount() = 0;
 
   virtual seastar::future<> mkfs() = 0;
+  virtual store_statfs_t stat() const = 0;
+
   using CollectionRef = boost::intrusive_ptr<Collection>;
   virtual seastar::future<ceph::bufferlist> read(CollectionRef c,
                                   const ghobject_t& oid,