]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mon/OSDMonitor: do not allow crush device classes until luminous 16188/head
authorSage Weil <sage@redhat.com>
Thu, 6 Jul 2017 18:58:37 +0000 (14:58 -0400)
committerSage Weil <sage@redhat.com>
Thu, 6 Jul 2017 18:58:37 +0000 (14:58 -0400)
Signed-off-by: Sage Weil <sage@redhat.com>
src/mon/OSDMonitor.cc

index 405c05a8ee06a5bbe8b6eb8d66c2c2d42921ea09..032a42bb7e024202b0d7659e3cb2fb74dec946b6 100644 (file)
@@ -7171,7 +7171,12 @@ bool OSDMonitor::prepare_command_impl(MonOpRequestRef op,
       err = -EINVAL; // no value!
       goto reply;
     }
-
+    if (osdmap.require_osd_release < CEPH_RELEASE_LUMINOUS) {
+      ss << "you must complete the upgrade and set require_osd_release ="
+        << "luminous before using crush device classes";
+      err = -EPERM;
+      goto reply;
+    }
     if (!_have_pending_crush() &&
        _get_stable_crush().class_exists(device_class)) {
       ss << "class '" << device_class << "' already exists";
@@ -7200,6 +7205,12 @@ bool OSDMonitor::prepare_command_impl(MonOpRequestRef op,
       err = -EINVAL; // no value!
       goto reply;
     }
+    if (osdmap.require_osd_release < CEPH_RELEASE_LUMINOUS) {
+      ss << "you must complete the upgrade and set require_osd_release ="
+        << "luminous before using crush device classes";
+      err = -EPERM;
+      goto reply;
+    }
 
     CrushWrapper newcrush;
     _get_pending_crush(newcrush);
@@ -7237,6 +7248,12 @@ bool OSDMonitor::prepare_command_impl(MonOpRequestRef op,
       err = -EINVAL;
       goto reply;
     }
+    if (osdmap.require_osd_release < CEPH_RELEASE_LUMINOUS) {
+      ss << "you must complete the upgrade and set require_osd_release ="
+        << "luminous before using crush device classes";
+      err = -EPERM;
+      goto reply;
+    }
 
     if (!cmd_getval(g_ceph_context, cmdmap, "dstname", dstname)) {
       err = -EINVAL;