]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
objclass: expose the required OSD release setting
authorJason Dillaman <dillaman@redhat.com>
Fri, 31 Aug 2018 18:17:51 +0000 (14:17 -0400)
committerJason Dillaman <dillaman@redhat.com>
Wed, 19 Sep 2018 12:04:12 +0000 (08:04 -0400)
This can be utilized to determine when it's safe to enable new
cls features.

Signed-off-by: Jason Dillaman <dillaman@redhat.com>
src/objclass/class_api.cc
src/objclass/objclass.h
src/test/librados_test_stub/LibradosTestStub.cc

index c3d0a122cf8bc6653de97e040f591027804d619e..97241135aac43337cf1c809bfa56983880e1c708 100644 (file)
@@ -692,6 +692,12 @@ uint64_t cls_get_client_features(cls_method_context_t hctx)
   return ctx->op->get_req()->get_connection()->get_features();
 }
 
+int8_t cls_get_required_osd_release(cls_method_context_t hctx)
+{
+  PrimaryLogPG::OpContext *ctx = *(PrimaryLogPG::OpContext **)hctx;
+  return ctx->pg->get_osdmap()->require_osd_release;
+}
+
 void cls_cxx_subop_version(cls_method_context_t hctx, string *s)
 {
   if (!s)
index f1d08f8c20cc3101e7884cc854e1bc8ed35a388c..e25ea8951c94ba02bb2ea5abc946799bbf73ff89 100644 (file)
@@ -156,6 +156,7 @@ extern uint64_t cls_current_version(cls_method_context_t hctx);
 extern int cls_current_subop_num(cls_method_context_t hctx);
 extern uint64_t cls_get_features(cls_method_context_t hctx);
 extern uint64_t cls_get_client_features(cls_method_context_t hctx);
+extern int8_t cls_get_required_osd_release(cls_method_context_t hctx);
 
 /* helpers */
 extern void cls_cxx_subop_version(cls_method_context_t hctx, string *s);
index c1cbb26d9024e75a0f01b89a28e025ef19f3b84c..0a798e195f60a351c9429cbe87995ac534ffb77f 100644 (file)
@@ -1417,3 +1417,7 @@ int cls_register_cxx_filter(cls_handle_t hclass,
   librados::TestClassHandler *cls = get_class_handler();
   return cls->create_filter(hclass, filter_name, fn);
 }
+
+int8_t cls_get_required_osd_release(cls_handle_t hclass) {
+  return CEPH_FEATURE_SERVER_NAUTILUS;
+}