#!/bin/sh -ex p=`uuidgen` # objects ceph osd pool create $p 12 ceph osd pool set-quota $p max_objects 10 ceph osd pool application enable $p rados for f in `seq 1 10` ; do rados -p $p put obj$f /etc/passwd done sleep 30 rados -p $p put onemore /etc/passwd & pid=$! ceph osd pool set-quota $p max_objects 100 wait $pid [ $? -ne 0 ] && exit 1 || true rados -p $p put twomore /etc/passwd # bytes ceph osd pool set-quota $p max_bytes 100 sleep 30 rados -p $p put two /etc/passwd & pid=$! ceph osd pool set-quota $p max_bytes 0 ceph osd pool set-quota $p max_objects 0 wait $pid [ $? -ne 0 ] && exit 1 || true rados -p $p put three /etc/passwd #one pool being full does not block a different pool pp=`uuidgen` ceph osd pool create $pp 12 ceph osd pool application enable $pp rados # set objects quota ceph osd pool set-quota $pp max_objects 10 sleep 30 for f in `seq 1 10` ; do rados -p $pp put obj$f /etc/passwd done sleep 30 rados -p $p put threemore /etc/passwd ceph osd pool set-quota $p max_bytes 0 ceph osd pool set-quota $p max_objects 0 sleep 30 # done ceph osd pool delete $p $p --yes-i-really-really-mean-it ceph osd pool delete $pp $pp --yes-i-really-really-mean-it echo OK