]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
mon/OSDMonitor: max_osds must be > 0 for reweight-by-* 8837/head
authorSage Weil <sage@redhat.com>
Sat, 30 Apr 2016 02:01:56 +0000 (22:01 -0400)
committerSage Weil <sage@redhat.com>
Sat, 30 Apr 2016 02:01:56 +0000 (22:01 -0400)
Include a few test cases.

Signed-off-by: Sage Weil <sage@redhat.com>
qa/workunits/cephtool/test.sh
src/mon/OSDMonitor.cc

index d8cb7249bd99f2a16af900e1bfcad41bfe080a82..1e18b78111abfb1365aaa900a1dd86136c9fe1d2 100755 (executable)
@@ -1625,7 +1625,12 @@ function test_mon_osd_misc()
 
   ceph osd reweight-by-utilization 110
   ceph osd reweight-by-utilization 110 .5
+  expect_false ceph osd reweight-by-utilization 110 0
+  expect_false ceph osd reweight-by-utilization 110 -0.1
   ceph osd test-reweight-by-utilization 110 .5 --no-increasing
+  ceph osd test-reweight-by-utilization 110 .5 4 --no-increasing
+  expect_false ceph osd test-reweight-by-utilization 110 .5 0 --no-increasing
+  expect_false ceph osd test-reweight-by-utilization 110 .5 -10 --no-increasing
   ceph osd reweight-by-pg 110
   ceph osd test-reweight-by-pg 110 .5
   ceph osd reweight-by-pg 110 rbd
index b7b48927541a2d64e4c6c84c8a59d3ec32788c4f..a1ec856e6d87a8128890d7eb0283f5757aa89832 100644 (file)
@@ -7645,6 +7645,11 @@ done:
     }
     int64_t max_osds = g_conf->mon_reweight_max_osds;
     cmd_getval(g_ceph_context, cmdmap, "max_osds", max_osds);
+    if (max_osds <= 0) {
+      ss << "max_osds " << max_osds << " must be positive";
+      err = -EINVAL;
+      goto reply;
+    }
     string no_increasing;
     cmd_getval(g_ceph_context, cmdmap, "no_increasing", no_increasing);
     string out_str;