]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
qa/workunits/mon: add check for min_size 34585/head
authorDeepika Upadhyay <dupadhya@redhat.com>
Thu, 2 Apr 2020 07:01:16 +0000 (12:31 +0530)
committerNathan Cutler <ncutler@suse.com>
Thu, 16 Apr 2020 09:37:02 +0000 (11:37 +0200)
verify whether min_size is recalculated when osd
pool size is changed.

fixes: https://tracker.ceph.com/issues/44862
Signed-off-by: Deepika Upadhyay <dupadhya@redhat.com>
(cherry picked from commit 0a7325a2b2ee82752b4191c240e7c7a6f14a2b3e)

Conflicts:
qa/workunits/mon/pool_ops.sh
- in nautilus, "ceph osd pool set foo size 1" does not take
  a "--yes-i-really-mean-it" option

qa/workunits/mon/pool_ops.sh

index 4098795b98923171a11ae7038b07cca964288348..b02077691f25b36710265cab00b08daef8e5972b 100755 (executable)
@@ -8,6 +8,41 @@ function expect_false()
        if "$@"; then return 1; else return 0; fi
 }
 
+function get_config_value_or_die()
+{
+  local pool_name config_opt raw val
+
+  pool_name=$1
+  config_opt=$2
+
+  raw="`$SUDO ceph osd pool get $pool_name $config_opt 2>/dev/null`"
+  if [[ $? -ne 0 ]]; then
+    echo "error obtaining config opt '$config_opt' from '$pool_name': $raw"
+    exit 1
+  fi
+
+  raw=`echo $raw | sed -e 's/[{} "]//g'`
+  val=`echo $raw | cut -f2 -d:`
+
+  echo "$val"
+  return 0
+}
+
+function expect_config_value()
+{
+  local pool_name config_opt expected_val val
+  pool_name=$1
+  config_opt=$2
+  expected_val=$3
+
+  val=$(get_config_value_or_die $pool_name $config_opt)
+
+  if [[ "$val" != "$expected_val" ]]; then
+    echo "expected '$expected_val', got '$val'"
+    exit 1
+  fi
+}
+
 # note: we need to pass the other args or ceph_argparse.py will take
 # 'invalid' that is not replicated|erasure and assume it is the next
 # argument, which is a string.
@@ -20,8 +55,11 @@ ceph osd pool create foooo 123
 ceph osd pool create foo 123 # idempotent
 
 ceph osd pool set foo size 1
+expect_config_value "foo" "min_size" 1
 ceph osd pool set foo size 4
+expect_config_value "foo" "min_size" 2
 ceph osd pool set foo size 10
+expect_config_value "foo" "min_size" 5
 expect_false ceph osd pool set foo size 0
 expect_false ceph osd pool set foo size 20