From: Jason Dillaman Date: Fri, 31 Aug 2018 18:17:51 +0000 (-0400) Subject: objclass: expose the required OSD release setting X-Git-Tag: v14.0.1~241^2~20 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=d592c865b9430fa58018e9244a8d6600bf81180b;p=ceph.git objclass: expose the required OSD release setting This can be utilized to determine when it's safe to enable new cls features. Signed-off-by: Jason Dillaman --- diff --git a/src/objclass/class_api.cc b/src/objclass/class_api.cc index c3d0a122cf8..97241135aac 100644 --- a/src/objclass/class_api.cc +++ b/src/objclass/class_api.cc @@ -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) diff --git a/src/objclass/objclass.h b/src/objclass/objclass.h index f1d08f8c20c..e25ea8951c9 100644 --- a/src/objclass/objclass.h +++ b/src/objclass/objclass.h @@ -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); diff --git a/src/test/librados_test_stub/LibradosTestStub.cc b/src/test/librados_test_stub/LibradosTestStub.cc index c1cbb26d902..0a798e195f6 100644 --- a/src/test/librados_test_stub/LibradosTestStub.cc +++ b/src/test/librados_test_stub/LibradosTestStub.cc @@ -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; +}